Ancient Secrets of the Objective-C Runtime
Applied ObjC for modern Swift apps
Don’t go anywhere! Seriously.
This is not some theoretical archaeological deep-delve.
I’m going to give you something you can use in your Swift apps today.
I’m NOT talking about #selector, @objc-marked methods, or dynamic functions.
This post is about Objective-C runtime internals. How ObjC is built, the powerful features it offers, and how to apply these features to simplify your modern Swift codebase.
I’ve been doing iOS for just under 10 years. I went into consulting in 2016, just after the Grand Renaming™ of Swift 2.0 to Swift 3.0.
It was kind of an annoying time to begin tbh.
I spent month #1 of my first ever job working through the Big Nerd Ranch Swift textbook, but Deloitte didn’t want to shell out $21 for the Swift 3 edition, so I spent half my time Googling each line of syntax to find the renamed version.
I dipped my toe into a few hairy legacy ObjC codebases back in the day, but I’ve managed to spend about 98% of my career rolling Swift. Yay me.
Most iOS devs today are similar. Many of you have likely never touched Objective-C.
So why am I darkening your doorstep with a d̵͈͚̈́́̑e̴͙͐̍ä̶̠̺̣́͆́d̸̳͠ ̵̰͉̾̓l̵͚̬͆͂́ā̵̧̛̼̈́ǹ̸̡͎̟̔g̶̣̜̋̊̃u̷̙̇̂͗ą̸͉͕͘͝͝g̶̢̞̈̀e̷̫͔̿?
3 reasons:
We can learn a lot from ObjC’s design and runtime internals.
There are useful practical applications that work in UIKit apps today.
It’s really bloody interesting.
Sound good? Come along for the ride.
Upgrade to unlock this article, plus much more:
🌟 Access Elite Hacks, my exclusive advanced content
🚀 Read my free articles a month before anyone else
🧵 Master concurrency with my course and advanced training
Keep reading with a 7-day free trial
Subscribe to Jacob’s Tech Tavern to keep reading this post and get 7 days of free access to the full post archives.


