I’ve mostly moved away from using Objective-C over the years. While it still appears in some of the projects I work on, it’s been quite some time since I last had to work on a feature written entirely in Objective-C. These days, I typically encounter it when integrating a new feature written in Swift into an older codebase.
Recently, however, I needed to brush up on Objective-C for a job I was interviewing for.
Below is a list of strategies that helped me quickly get back up to speed with Objective-C in about 6–8 hours. The list is fairly comprehensive—it should refresh your memory and might even teach you something new. That said, if you’re completely new to the language, YMMV.
Language Fundamentals: Objective-C for Swift Developers by Paul Hudson
I can’t recommend this book enough. It’s only 150 pages long and covers a wide range of language features and quirks you’ve likely forgotten—block syntax, anyone?
One tip: have a playground project open in Xcode while you read. If you’re not sure how to create an Objective-C project in Xcode 16, use this guide.
LeetCode Challenges
LeetCode doesn’t support Objective-C directly in its web interface, but that’s not an issue in the age of LLMs!
Since my goal was to refresh my knowledge of basic language features, I focused primarily on easy challenges. By “basic language features,” I mean working with strings, arrays, and simple data structures.
I definitely didn’t want to spend time solving complex problems like counting islands in a binary matrix (looking at you, “Number of Islands II,” problem #305).
I selected a few easy problems and worked through them in Xcode. Claude was particularly helpful in generating test cases to validate my solutions.
Working with Large Codebases
The final exercise was exploring a larger project written entirely in Objective-C. I started with the App Delegate and used an LLM to answer questions about anything that seemed unclear. I focused on understanding how common patterns were implemented—things like singletons, callback-based APIs, and delegate patterns.
Here are some projects I recommend checking out:
That’s it! I was genuinely surprised by how much fun this process turned out to be—and also by how much I’d forgotten about Objective-C. Hopefully, this time around, the block syntax will stick with me longer!