The iPhone has revolutionized the mobile industry in more ways than one. The iPhone is full of innovative features and is a great all around gadget. But perhaps its most powerful feature is its SDK. Apple made the smart decision of enabling its community of programmers to write applications for the iPhone. That has led to thousands of applications being developed by programmers around the globe.
The iPhone SDK is such a great platform that it has allowed many programmers to quit their day jobs and achieve stardom with their innovative applications. The job market may be tough, but the iPhone programming will be in demand for a foreseeable future. If you are new to this field, don’t fret. It is not too late to learn what it takes to write powerful iPhone applications and dominate iTunes’ top seller charts.
iPhone in Action is a pragmatic introduction to Web and native programming for the iPhone platform. Unlike many other iPhone programming books on the market, you are presented with various real examples, and before you know it you’ll be able to get your feet wet with iPhone development. Here is a brief breakdown of what’s included in iPhone in Action:
Chapter I: Introducing the iPhone
Before learning how to program for the iPhone, you need to know what kind of animal you are dealing with. Programming for mobile phones is a delicate business, so it is essential for all new iPhone programmers to understand:
- iPhone input/output specifications
- iPhone network specifications
- iPhone hardware features
- iPhone browser specifications
By reading this chapter you gain a complete understanding of what you need to keep in mind when designing your very own application. Even if you are familiar with these specifications, I strongly encourage every programmer to take a look at the section on input and output specifications. It’s a life saver.
Chapter 2: Web Development or SDK
Many iPhone programming books only focus on one aspect of iPhone programming (Native or Web). With iPhone in Action, no door is left untouched. This chapter covers what it takes to be a successful programmer in each of the above styles. By the end of this chapter, not only you know which way to go, but you will have a good idea what it takes to develop stand-alone or integrated iPhone application.
Chapter 3: Redeveloping Web Pages for the iPhone
Perhaps the most important chapter in this book. It’s easy to assume that programming for the mobile web is the same as programming for the regular web. But in reality, making your pages iPhone friendly takes some work. You will learn how to work with CSS and how to handle iPhone events. I personally like some of the pitfalls that are provided in this chapter. Missing the smallest details can leave your users frustrated with your apps (take a look at some of the complaints on iTunes). If you are a Gmail or Facebook junkie, you’ll learn how to redisplay these pages as well.
Chapter 4: Advanced Webkit and Textual Web Apps
If you want to create advanced iPhone applications, you better learn how to work with WebKit. This chapter not only covers CSS and HTML, but you will also learn how to work with WK’s Database. I am personally excited about WebKit and possible changes that are coming in the future. The platform is changing and growing, and exciting times are ahead for all of us. Don’t for a second think that WebKit is all there is to programming web apps for the iPhone. It’s a start.
Chapter 5 & 6: Programming iUI / Canvas
The 4th chapter can be encouraging and discouraging for new iPhone programmers. You may start the chapter thinking that by the end of the chapter you will know all there is to know about iPhone Web programming. The problem is, you really don’t get to the advanced stuff until you start the 5th chapter. Don’t get me wrong. These two chapters may be fairly more advanced material, but it’s easy to walk through them with all the examples and tips here or there.
Chapter 7: It’s all about Dash-Code!
It’s good to know all these different libraries and all the tips, but I personally prefer to have a good programming environment to go with all the coding tips. This chapter is for you if you are not familiar with the Dash-Code environment. You will not only learn how to get the best out of Dash-Code, but you’ll also learn how to integrate all those cool libraries with it as well. If you know Dash-Code, you can probably skip this chapter.
Chapter 8: Debug…Debug…Debug
OK. I admit. When I started my programming career, I was too lazy to dedicate too much time to debugging. I was too optimistic, thinking that I would get everything right in my first try. But bugs happen, and how do you squash bugs? With a good debugging plan. If you are a debugging freak, you are going to enjoy this chapter very much, and your apps will be much better for it!
Chapter 9 & 10: The Basics of Objective C Programming
The first 8 chapters are great. You learn about your programming environment and what you are dealing with. But the fun stuff starts right here. If you want to develop native iPhone apps, you’ll have to learn Objective C. Chapter 9 is a crash course on C programming and OOP. If you are new to the whole field of programming, I strongly encourage you to read and reread the Model-View-Controller section.
Chapter 10 covers more O-C, and you learn how to deal with the iPhone OS (create objects, methods,…). This chapter is an absolute must read for new programmers.
Chapter 11: the X-code!
This chapter covers X-code and how you can use it to develop your iPhone applications. You’ll learn about the environment and how to write your first “hello world” application with X-code. Excellent reference for beginners.
Chapter 12: Interface Builder
Interface Builder is a graphical design environment that allows you to design interfaces quick. This chapter is structured similar to the previous chapter. You learn the basics of how to use Interface Builder. You will also learn how to connect X-code with Interface Builder. Keep in mind that you need to actually spend time working with these environments to get the best out of them. Reading the book is one thing, but not everything can be explained in the book. The more you use these programs to write code, the better you get with using them.
Chapter 13: View
I remember when I started using the MVC model when I got introduced to the J2EE platform. It wasn’t easy for me to understand. I was coming from plain C programming background, and I was used to chaotic programming. These days most programmers become familiar with MVC model early, which allows them to develop complex applications more effectively. This chapter shows you how to get started with View Objects. This chapter not only talks about what views are all about, you are walked through creating them by the authors. Don’t you love books that actually show you how to do things instead of leaving you to figure it all out for yourself?
Chapter 14: Events
This is one of the most important chapters in this book if you are not too experienced with programming. Even if you are an experienced programmer, you’d be surprised how much information you can pick up from this chapter. At the end of the day, your application can’t be interactive unless you master events. There is no escaping this!
Chapter 15: Advanced View Controllers
Now this chapter was so fun. Here you can figure out how to work with tool bar controllers. If you follow the examples in the book, here is where you start feeling that you are becoming an iPhone programmer. I don’t know about you but that’s the best feeling I get when picking up new languages, learning enough to start writing my programs.
Chapter 16: Working with Data
This is the chapter where actions and data are covered. You’ll learn how to accept and handle user actions here. You’ll also learn how to handle user preferences so things go smoothly for your users with your application. The code examples here are just superb, and probably the best way to get these concepts.
Must Read: learning how to work with files and databases is important in any programming language. This is the chapter that covers these concepts. Skip it in your own peril.
Chapter 17: accelerometers
Took me a while to get here, but this chapter is very fun. You not only learn how to work with the accelerometers, you’ll also find out how to tap into the power of iPhone’s GPS to detect location. Most popular game developers have mastered this feature, and you probably should too! Now, before reading this chapter, you want to make sure that you haven’t forgotten about things you learned in previous chapters. Make sure you review them to get a clear understanding of concepts discussed here and beyond.
Chapter 18: Media
iPhone apps wouldn’t be fun without video, audio, and images (take a look at iFart). I was impressed with how the media was covered here. Before starting this book, I felt that I needed to figure out how to spice up my pet project, and this chapter helped me a lot with a few nuggets I picked up here and there.
Chapter 19: Advanced Graphics and Animation
If you have made it this far, you’ve got to take time to congratulate yourself. This book is designed for beginners and intermediate programmers, but getting here takes time. But here is where things get very interesting. Animation is what sets boring applications apart from great ones. In this chapter you learn about:
- Open GL SE
- Quartz 2D
- Core Animation
I was very impressed with the coverage of Quartz in this book. You get started from basic concepts but by the end of chapter you can use advanced Quartz programming to develop fun little apps (see above example). The coverage of Open GL could have probably been better, but you can always buy a book on that to get everything down.
Chapter 20: Advanced Web Programming
The very last chapter and what a great chapter to end the book on. Advanced web programming concepts (e.g. handling XML, URLs, networking, …) are all covered here. I was excited to read about Web 2.0 programming in this chapter, but you will probably need to get down and dirty with a Web 2.0 programming book to gain a deeper understanding of what it takes to develop apps for the social media. I was impressed that the authors touched on topics such as TouchJSON, but after reading all 20 chapters, I felt I was ready to read yet another 20 chapters (I hope the authors will be kind enough to come up with a super advanced iPhone programming book).
I hate to be dramatic here but iPhone in Action was another smash hit by Manning Publishing. Whether you are a novice programmer or an advanced programmer new to the iPhone platform, you are going to finish this book feeling ready to take on the world. Don’t get me wrong. This won’t be the only book that you will have to read to become a super iPhone programmer, but this will teach you everything you need to know to get started quickly.
iPhone development is one of the best skills you can pick up these days. It’s in demand, and people pay big bucks to those who know how to develop attractive iPhone apps. The good news here is that by the end of this book, you will have learned how to design UI and take advantage of Quartz and CA to develop interactive iPhone apps.
Grade: A-. Overall, I found the book to be very useful for me personally. I am an advanced Java programmer but had no knowledge of mobile development going in. After finishing this book, I was able to get started developing my pet project quickly. The coverage of Web 2.0 programming could have been more thorough but you could have thousands of pages on this topics. This book very much reminded me of those diet pills commercials on TV, but unlike those pills this book really works!