iOS 5 Programming Pushing the Limits
Developing Extraordinary Mobile Apps for Apple iPhone, iPad, and iPod Touch
I co-authored this book with Rob Napier and we started working on this around 6 months ago. Bulk of the book was written focussing on iOS 5 after the WWDC 2011.
This is not an introductory book and it focusses on advanced topics on iOS 5 programming and delves deep into the core Objective-C. It’s primary audience is iOS developers who have hands-on experience writing iOS apps and want to take their apps to the next level. If you’re ready to move beyond the basics, to learn the best practices and the secrets that the authors have learned from practical experience writing real applications, then this is the book for you.
This book also is not just a list of recipes or tutorials. There’s plenty of sample code here, but the focus is on learning how to design, code, and maintain great iOS apps. A lot of this book is about why rather than just how. You’ll learn about as much about design patterns and writing reusable code as about syntax and new frameworks.
Organization of the book
The book is organized into four major sections from the basics to the most advanced topics. This book separates the everyday from the special-purpose, helping you pick the right solution to each problem. You’ll learn why each framework exists, how the frameworks relate to each other, and when to choose one over another. Then you’ll learn how to make the most of each framework for solving its type of problem. The following is the comprehensive table of contents of the book.
Part I: What’s New
If you’re familiar with iOS 4, then this section quickly introduces you to the new features of iOS 5.
* Chapter 1: The Brand New Stuff — iOS adds a lot of new features, and here you get a quick overview of what’s available.
* Chapter 2: Getting Comfortable with Xcode 4 — Apple recently redesigned the Xcode interface, and it can take some getting used to. This chapter shows you how to get the most out of it.
Part II: Getting the Most Out of Every-Day Tools
As an iOS developer, you’ve encountered a wide variety of common tools, from notifications to table views to animation layers. But are you using these tools to their full potential? In this part, you learn the best practices in Cocoa development from seasoned developers.
* Chapter 3: Everyday Objective-C — If you’re ready to move to the next level in Objective-C, this chapter introduces you to the tools experienced developers use every day to improve application design, maintainability, and reusability.
* Chapter 4: Hold On Loosely: Cocoa Design Patterns — Cocoa relies on a number of common and consistent design patterns. You learn what they are so you can solve problems the same way Apple does.
* Chapter 5: Getting Table Views Right — Table views are perhaps the most complex and commonly used UI element in iOS. They are simple and elegant in design, but confusing to developers who don’t understand how they work. You learn how to use them correctly and to solve some special problems like infinite scrolling.
* Chapter 6: Better Drawing — Custom drawing is intimidating to many new developers, but it’s a key part of building beautiful and fast user interfaces. You’ll discover the available drawing options from UIKit to Core Graphics, and how to optimize them to look their best while keeping them fast.
* Chapter 7: Layers Like an Onion: Core Animation — iOS devices have incredible facilities for animation. With a powerful GPU and the highly optimized Core Animation, you can build engaging, exciting, and intuitive interfaces. In this chapter, you go beyond the basics and learn the secrets of animation.
* Chapter 8: Tackling Those Pesky Errors — You try to write perfect code, but sometimes things go wrong. How your application reacts to the unexpected is what separates decent apps from extraordinary apps. You’ll learn the common patterns for error handling, how to log, and how to make your code more resilient against the unexpected.
Part III: The Right Tool for the Job
There are tools that are part of nearly every application, and there are tools that you only need from time to time. In this section, you learn about those tools and techniques that are a little more specialized.
* Chapter 9: Controlling Multitasking — Multitasking is an important part of many applications, and you learn how to do multiple things at once while your application is running and when your application is in the background.
* Chapter 10: REST for the Weary — REST-based services are a mainstay of modern applications, and you learn how to best implement them in iOS.
* Chapter 11: Batten the Hatches with Security Services — User security and privacy are paramount today, and you learn how to protect your application and user data from attackers with the keychain, certificates, and encryption.
* Chapter 12: Running on Multiple iPlatforms and iDevices — The iOS landscape gets more complex every year, with iPod Touch, iPhone, iPad, Apple TV, and a steady stream of new editions. It’s not enough just to write once, run everywhere. You need your applications to be their best everywhere. You’ll learn how to adapt your apps to the hardware and get the most out of every platform.
* Chapter 13: Internationalization and Localization — While you may want to focus on a single market today, there are small things you can do to ease the transition to a global market tomorrow. Save money and headaches later, without interrupting today’s development.
* Chapter 14: Selling Past the Sale with In App Purchases — In App Purchases are still an untapped market for many developers. Users like the add-on content, and developers love the extra revenue. You learn the best ways to make this important feature a reality in your application.
Part IV: Pushing the Limits
This section is what this book is all about. You’ve learned the basics. You’ve learned the everyday. Now push the limits with the most advanced tools available. You learn the ins and outs of deep iOS.
* Chapter 15: Cocoa’s Biggest Trick: Key-Value Observing — Many of Apple’s most powerful frameworks rely on KVO for their performance and flexibility. You learn how to leverage the flexibility and speed of KVO, as well as the trick that makes it so transparent.
* Chapter 16: Think Different: Blocks and Functional Programming — Many developers are still absorbing the addition of blocks to Objective-C. They’re valuable for interacting with Apple frameworks, but they also open new ways of thinking about your program. Embrace a new style, and maximize its benefits in your next project.
* Chapter 17: Going Offline — Network programming is hard, but even harder is providing a seamless offline experience. Learn how to best cache your data and integrate it into your network engine.
* Chapter 18: Fancy Text Layout — From UIKit to Core Text, iOS is full of ways to display text. There’s no perfect solution for displaying rich text in iOS, so it’s important to learn the trade-offs so you can choose the right solution and use it correctly.
* Chapter 19: Building a (Core) Foundation — When you want the most powerful frameworks available on iOS, you’re going to want the Core frameworks like Core Graphics, Core Animation, and Core Text. All of these rely on Core Foundation. In this chapter you learn how to work Core Foundation data types so you can leverage everything iOS has to offer.
* Chapter 20: Deep Objective-C — When you’re ready to pull back the curtain on how Objective-C really works, this is the chapter for you. You learn how to use the Objective-C runtime directly to dynamically modify classes and methods. You also learn how Objective-C method calls are dispatched to C function calls, and how you can take control of the system to extend your programs in incredible ways.
This is the book you have been waiting for. So don’t just wait. Order your copy today.
Follow me on Twitter