How Can I Inspect the Size Impact of Symbols in an App Binary: A Practical Guide for Apple Developers

In the previous posts we talked about Build Pipeline, Jargon, Static Linker vs Dynamic Linker. In this post we’ll benefit from the knowledge gained about the app wrapper’s folder structure and the placement of all the different binaries (frameworks and main app’s executable) to know where to look for. New in this post is learning how to use the nm command to inspect and count the number of symbols of each binary....

August 11, 2023 · 9 min
Difference between an app bundle and a binary

Whats the Difference Between an App (bundle) and a Binary

A binary is the linked product of all your source code. It’s executable. You can run commands against it. An app, is merely a wrapper/directory, which includes that binary and other things. How do you create a binary? First it’s important to understand what a binary is. You’ve used them every day in the terminal. Examples: ls, cp, mkdir. You pass certain parameters to them. They don’t have any file extension....

March 28, 2023 · 3 min
self-contained rv

What Resources Does Apple Provide for teaching iOS to students?

Note: This post has got a bit longer than what I originally intended. You might want to skip to the very end to see the verdict and table first and then read again. I’ve started an iOS training course in my local community. At the beginning I thought it would be easy for me to just start training people with whatever I know. Later I decided to look at some available resources....

September 21, 2022 · 9 min

UIApplication BackgroundTasks Through The Lens of Closures

The sync closure func processTwoNumbers(_ num1: Int, _ num2: Int, handler: (Int, Int) -> ()) { handler(num1, num2) } processTwoNumbers(10, 22, handler: { num1, num2 in print(num1 + num2) }) In the above, the handler is called in a sync matter. Same as below (1...100).forEach { val in print(val) } print(101) Uniqueness: The block passed in is executed immediately at the call site. The async closure — block isn’t stored. enum Result { case success(Data?...

February 22, 2022 · 5 min

What is UITransitionView about?

I was using Xcode’s View Hierarchy and noticed this UITransitionView in my view hierarchy. ... UIWindow UITransitionView FooVC UITransitionView BarVC This was odd because I was expected a view hierarchy as such: ... UIWindow UITransitionView FooVC BarVC What made it more perplexing was that the canvas was showing things correct, but the View Hierarchy didn’t make sense. To be clear on jargon, the following is the name of each section of Apple’s view debugger:...

February 1, 2022 · 1 min