Jacob’s Tech Tavern

Jacob’s Tech Tavern

Ancient Secrets of the Objective-C Runtime

Applied ObjC for modern Swift apps

Jacob Bartlett's avatar
Jacob Bartlett
Dec 09, 2025
∙ Paid

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.

  • A (very) brief history of Objective-C

  • What makes Objective-C special?

  • The ObjC Runtime

  • objc_msgSend and Message Dispatch

  • The power of the runtime

  • Modern Practical Applications

    • Screen tracking and Swizzling

    • Tracking dwell time with Associated Objects

    • Active screens and introspection

    • Interacting with collections via Message Forwarding and NSProxy

  • Last Orders

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.

Already a paid subscriber? Sign in
© 2025 Jacob Bartlett · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture