iOS Programming: The Big Nerd Ranch Guide – 7th Edition Launches!
We’ve just released the 7th edition of iOS Programming: The Big Nerd Ranch Guide. It’s pretty crazy to write that! That means seven editions and ten years since the original release of iPhone Programming: The Big Nerd Ranch Guide.
iOS development continues to evolve year after year, and so what is considered essential knowledge likewise changes. In this edition, we’ve added new discussions on topics that all iOS developers should be comfortable with, removed some discussions that are not as relevant these days, and continued to refine the book as a whole—in large part from the feedback of students that have taken our bootcamps.
iOS has had a couple of significant visual changes in the past few years.
New discussions and deep dives into the “safe area”: In 2017, iPhone X was released. With it came the introduction of the sensor housing (aka the “notch”) along the top and the home indicator along the bottom. Developers need to account for these elements within their apps, and so the book has been updated to dig into the details across a number of chapters.
Expanded coverage on adaptive interfaces including dark mode: Last year, in 2019, dark mode came to iOS with the release of iOS 13. (Technically it came to iOS with the release of tvOS 10 in 2016, but it was never usable on iPhone and iPads.) Dark mode joins a number of other external changes, including the user’s preferred text size (“Dynamic Type”) and the app’s interface size (“size classes”), that the book discusses. Good apps need to adapt to these external changes, and the 7th edition shows you how.
Hello to some new friends …
A new chapter on “Container View Controllers”: A problem we often see in our consulting work is the “Massive View Controller” problem—a situation where developers add too many responsibilities to a single view controller. Sometimes a view controller can be split up into multiple smaller view controllers, each with their own responsibility. These smaller view controllers are recomposed using a container view controller, and we have a new chapter implementing a custom container view controller in a project new to the 7th edition.
A new chapter on “Custom UIControl Subclasses”: You start to feel the “Massive View Controller” approaching when building the new book project. To address the problem, you create a custom
UIControl subclass in another new chapter, separating out more responsibilities and digging into how controls operate along the way.
… and goodbye to some old ones
So long to “Touch Events”: A chapter on Touch Events has been included since the 1st edition. Ultimately, higher-level APIs exist today such that the need to dive down to the low-level touch APIs is rare. We felt that dropping this chapter would give us room to discuss more relevant topics elsewhere in the book.
Farewell to “Gesture Recognizers”: A chapter on gesture recognizers has been in the book for some time as well. We felt that this chapter dug a little deeper into gesture recognizers than is often needed for app development. We’ve thus dropped this chapter and moved discussions on gesture recognizers into other chapters.
While there are too many small changes, tweaks, and improvements to keep track of, here are some highlights worth mentioning.
- Updated for iOS 13, Xcode 11, and Swift 5.2
- Added coverage of the
CodableAPIs, including handling some common custom JSON decoded situations
- Moved from our custom
Resulttypes to Swift’s generic
- Re-added discussion and use of
- Moved presenting modal view controller discussions into their own new chapter
- Reworked the animations chapter for the new
And finally, our wonderful Editor Liz Holiday has massaged the entire book. In the process, she has improved clarity, addressed errata, and added an amazing level of polish to the entire book.
Towards the future
We’re really excited about the 7th edition. We’ve been working hard on it for years and know you will love it. But the journey doesn’t stop here for us. We have a lot of other content that we’re working on and are excited to be sharing with you.
- We’ll be running a four-hour workshop on Combine on May 26.
Combineis a new reactive programming framework that Apple introduced last year to help you process values over time. We’ve been using it on our projects and it has transformed the way we write iOS code.
- We have another four-hour workshop happening on July 21 discussing how to architect asynchronous code. Handling asynchronous code can be challenging and is a common source of bugs, and so it is important to have a strong understanding of these ideas.
- And as always, we’re excited to see what Apple has in store for us at WWDC this June. We’ll be working on course updates and likely hosting more virtual workshop as a result of their announcements.
Keep an eye on our social media for more information!