Do you want to program the iPhone or iPod touch, the Mac, or maybe even an Android phone from Google, and you have no idea where to start? One option to learning all this is sitting in a class, you could always find a company like Edison Labs (http://www.edisonlabs.net) (shameless plug) and sign up for some training classes in these topics, where experienced teachers will bring you up to speed on the topic of your choice. There are a number of companies who offer such training classes across the US, but many of those assume you have some programming experience already. But what if you want to start from scratch, or just need a head start before taking such a class? What else can you do?
Turn to books. There are a LOT of books released recently, or updated and rereleased on these subjects, and here are a few books of interest to cover these topics.
Learn C on the Mac.
by Dave Mark
ISBN 978-1-4302-1809-9, 353 pages paperback
Price: $39.99 US
If you have no prior programming experience, then this book is a great place to start. The jury is still out on IF you should learn C before learning Objective-C, but almost every book on new programming languages suggests that you have some experience in programming C first. And if the iPhone is your target for development, starting on the Mac with C is a good place to start, as there are a lot of things you will learn here that will carry over to programming the iPhone later, such as the X-code programming environment.
Mark first wrote Learn C on the Macintosh in 1991, and this new release brings the concept up-to-date for today’s Mac. This is a great book for both learning the C language, and learning how to program on the Mac at the same time. The target for this book is the very beginner with no previous programming experience. The author acknowledges he wants target audiences like 5th graders, soccer moms, and hobbyists; people who have written him on earlier books which went somewhat over their heads. Like other Apress books (see below) the pace is well managed, starting easy and working up to more difficult concepts through the use of clear examples and code samples (which can be downloaded) to get you writing, compiling, and running code quickly.
Given the target audience, if you already have some programming or Mac experience, you may find yourself annoyed at time with his “Notes” (little gray boxes throughout the book) that tell you things like how to save your project, the difference between integers and floating point numbers, or even what “OS” means. However, these are great resources for the uninitiated, things a newbie will need to know. Even so, as a programmer already and not Mark’s intended audience, I still found many things to learn here, the enthusiasm of the author to teach this material flowed from start to finish, and this was not your typical dry programming book.
On the down side, while the book has a few exercises to help the reader grasp the concepts, there are not a lot of coding exercises, something I believe should be in this type of book. While there are many code samples as I said, coding exercises to help the reader grasp the topic well would have been a nice addition here.
This is an excellent place to start.
MyMac rating: 4 out of 5. More coding exercises, Mark.
Programming in Objective-C. A complete introduction to the Objective-C language.
by Stephen G. Kochan
ISBN 978-0-672-32596-1, 556 pages paperback
Price: $39.99 US / $49.99 CAN
This is not a new book, but one of the better books in this field. This is a detailed book on Objective-C that is a tutorial and also a very good reference book for the small details when actually trying to program in Objective-C. The book has good sections as an introduction to the language and syntax, and is quite nice at pointing out some of the special “features” and aspects of this language. This book was originally published in 2003, and has been reprinted almost every year since. It is very comprehensive, yet still easy to use and understand as you learn the language, or just need to know how something worked.
Written (in parts) in a tutorial style, this book will guide you in learning, and then be with you as you move into real programming. While this book assume no prior knowledge of X-code, Cocoa, or Objective-C, if you do not have some prior programming experience, you may have some difficulty getting through all of this the first time (or two!). See Learn C on the Mac as a better place to start. Lastly, this is NOT a book for programming Cocoa or learning X-code. While it talks briefly on those subjects as they tie into development, you will need another reference for those topics.
MyMac rating 4.5 out of 5. A must own book for iPhone programming.
Learn Objective-C on the Mac.
by Mark Darymple and Scott Knaster
ISBN 978-1-4302-1815-9, 337 pages paperback
Price: $39.99 US
Here is another really good introduction to Objective-C, written by some great veterans of Mac programming. I found reading this book more enjoyable as it is a little more light-hearted than your typical technical book, but done so without sacrificing the quality of the information. Typically with technical books, you use them as references, but this was designed in a way to make “reading” it from front to back enjoyable. Like the book above, this is an excellent introduction to the language and can be used as a reference as well, but this book is written in a style and pace that included some humor to keep the reading entertaining and pleasant, something I can’t say about most technical books in general. A few examples of this would be some subtopic headings, like “Take out Those Papers and the Trash”, “Isn’t That Convenient?”, “More Parts is Parts”, and one of my favorites, “Objecting to Properties.” Ok, maybe you have to be technical and know about the language to truly appreciate the humor, but it did break up a rather heavy subject with a smile here and there.
You should know C or some similar programming language to use this book (again, see Learn C on the Ma), and it says so right up front, so don’t start here if you have not programmed before. However, it does start simple with the atypical small application “Hello world”, then eases you up to more complex topics like memory management, object initialization, categories, protocols, and properties. The books covers Objective-C, some new items found in Objective-C 2.0, a modern version of X-code (very basic), and Cocoa (very basic.) I still recommend additional books on X-Code and Cocoa to get more info in those areas if you plan on programming the Mac or an iPhone, as here it is only explained to tie the language together with the tools.
I also appreciated that the authors assume the readers are intelligent and know how to use the internet. URLs are not tossed about this book cluttering up the pages as happens in so many other books these days. I also appreciated the small “sidebars” sprinkled throughout the book (small gray boxes actually) that summarize important points, making it easier to come back and find them later.
All in all, I list this as a MUST HAVE book for Mac or iPhone programming.
MyMac rating 5 out of 5. This is just an EXCELLENT book.
Beginning iPhone Development. Exploring the iPhone SDK.
by Dave Mark & Jeff LaMarche
ISBN 978-1-4302-1626-1, 508 pages paperback
Price: $39.99 US
Dave Mark, the author of Learn C on the Mac (above) also worked on this book with co-author Jeff LaMarche, and his style is evident here too. This is a great book for learning the basics of iPhone development. This book starts at the very beginning, is written in simple to understand not-so-technical English (read: not dry), and covers what you need to know to get started, right from the basic fundamentals of the iPhone development process. Great, large illustrations accompany the text and make understanding so much easier than just the words alone. Once past the fundamentals, this book continues into the core concepts of ImageBuilder and the Model-View-Controller paradigm (MVC), right into the depths of iPhone development.
Topics include handling basic interaction, autorotation and auto-sizing, multi-view applications, an introduction to table views , navigation controller, data persistence, and drawing with Quartz and OpenGL just to name a few from the first half of the book. This books covers just about everything you need to know to get started, including things you might not find elsewhere. For example, there is a even topic on making UI’s that rotate into landscape mode, something I have yet to find elsewhere. Jeff and Dave are longtime Mac developers, and have brought their skills in writing about programming and application design to one very good book. This is a must have if you want to program on the iPhone.
Another one of those “should own” books on the subject.
Strategic Mobile Design: Creating Engaging Experiences (Voices that Matter).
by Joseph Cartmen and Richard Ting
ISBN 978-0-321-58007-8, 210 pages paperback
Price: $34.99 US / $37.99 CAN
This is not a programming book, in fact, this is probably not a book for technical people at all (although I suspect authors and publisher would disagree), but rather a book for people interested in mobile design overall, both from the production side as well as the client side, but strictly from a design overview. The book presents a complete view of the entire mobile design; technology, marketing, and business models, packed with enough ideas and guidelines to help you get started on such a project, not from a technical side, but from a design/product look. In addition, this book talks not just about the iPhone, but other mobile devices in general, looking at the entire mobile space.
As an engineer reading this, like all marketing books too me, I had a hard time getting through it; always questioning why these guys think they know this better than others actually building this stuff? One thing might be their credentials. Mr. Cartman is a branding specialist, and has worked on branding for companies like Nike, VW, Saturn, and Verizon to name a few. He obviously knows his stuff when it comes to branding, and has applied it here to the topic of mobile design. Mr Ting is an award winning VP and Creative Director for R/GA’s Mobile and Emerging Platforms Group, where he is working on “integrated interactive user experience” across the web, mobile, and the physical space. Obviously a smart guy, and he knows this area well too it seems. But I still had issues with the book, feeling that I was constantly being told the obvious over and over.
Very recently published, does a book like this really need to tell me that mobile is exploding or that there is large growth in mobile applications and technology? Or that the “mobile medium” has arrived? Or about the growth of global mobile Internet or the 3G market? (To name a few of many obvious points.) Seriously?
Perhaps as a technical person in the field already, I am the wrong audience for this? And to be fair, I ended up not reading it all the way through before I felt I was just being told the obvious way too many times. But there are some good case studies inside, and if you are serious about designing a mobile product, and if your are not familiar with this area, this book should be able to give you some insight to what worked and what did not, and how to design more effectively based on past lessons learned.
MyMac rating: 2.5 out of 5 (I was wrong audience)
Hello, Android. Introducing Google’s Mobile Development Platform
by Ed Burnette
ISBN 978-1-934356-17-3, 218 pages paperback
Price: $32.95 US and CAN
I have been waiting for a book on Android programming to hit the shelves, as Edison Labs, LLC wants to teach Android programming as well, and I wanted to know more. However, they have been far and few between. Skipping past the Dummies book this time, I decided to have a look at Hello, Android, written by a 25 year programming veteran, author and speaker. Priced near the same cost as the Apress books above, this book came in a little light at only 218 pages (vs 508 for the Apress book), and because of that, I felt a bit rushed through the many of the topics, and left wanting more detail. And more detail was available of course, but it bothered me that this book was constantly sending me off to website URLs (listed in footnotes on many of the pages) to find that more, instead of just telling me right there. Perhaps, given the level of documentation available from Google and all the other locations I was asked to look at, the “more” is left us as an exercise for the reader?
The author does a good job of getting to the core concepts here, and the book does have a good number of tips, and a lot of information packed in such a small space. Like other books of this type, it tries to start easy with a “Hello Android” program, their equivalent of “Hello world” to get you started. Except their idea of getting started, and what they called “writing” your first program was actually just setting up the development environment and loading an existing program and running it. Not exactly writing anything. It then moves fairly fast into very technical detail, not exactly ramping easily up as I would hope.
I did like that the author realizes that many technical people will not actually read every word of the book, and the use of what he calls “Fast Forward” to get you through the topics quickly for the advanced reader was a nice touch.
All in all, this book will get you through the general topic of the Android phone, get you set up and running a development environment quickly, and off to writing a good first example program, (a Sudoku game), but it constantly asks you to jump around inside the book way too much to find references to topics not yet discussed but mentioned, and way too many references to source material on the web, which is distracting when trying to use the book. To fully get the most out of this book, you will need to be sitting in front of your computer and looking at a lot of on-line documentation.
MyMac rating: 3 out of 5. Good material, but I wanted more IN the book.