I've just finished Building iPhone Apps by Jonathan Stark, and what an excellent read it is! My little brother has spent ages and ages trawling docs and blogs and forums, gathering the knowledge he needed to bester objective C with JavaScript. I had pretty much given up on the hope of ever catching up with him, but thanks to mr Stark we can now do it in just 150 pages! This book really is a remarkable feat; in spite of it's short span, it manages to deliver the full picture on what constitutes making web apps on the iPhone.
But it's not just the quality of the contained knowledge that makes the book rock, but the way in which it is delivered. This is one of those few and far between books that simply manages to get everything right; the tone, the examples, the difficulty level, explanation lengths, text/code/picture ratio - it is evident that a lot of love and care went into its making. Early on Jonathan states that…
Theory is great, but I'm a "show me, don't tell me" kinda guy.
…and this philosophy is evident throughout the book. It is full of accompanying examples, illustrating pictures and table overviews. The code segments are often annotated, with points of interest explained in further detail. Many times Jonathan introduces new concepts in the code and explains them afterwards in this manner, instead of giving that theory ahead of the example. This works really well, giving the book a very practical feel, in spite of communicating some quite advanced concepts. The teacher in me is full of professional envy and admiration!
So who is this book meant for? Jonathan assumes basic knowledge of HTML, CSS, JavaScript and jQuery, enabling him to focus on the subject: how to apply your existing web development skills to building iPhone web applications. He'll teach you how to architect the application using jQTouch, how to apply some manifest magic to make it available offline, how to nativify it using Phonegap, and finally how to deploy it to the app store. In other words the answer to the whom-for question is you, by the virtue of the fact that you're reading this blog. Other reviews have labeled the book as being for novices, but I'd wager they're letting themselves be fooled by the low threshold of the book, mistaking the accessibility for entry-level knowledge. The ideal reader is someone well versed with front-end development, wanting to extend into the mobile space.
However, Stark's obvious proficiency with web technologies makes this book a boost not only to your iPhone app knowledge, but to your web development skills in general. I found several golden nuggets of things I didn't previously know sprinkled throughout the code, like how jQuery's load function argument can include a selection, or how you can make trailing ellipsis using CSS only. That might say more about my ignorance, but the fact remains that the code examples given are of a very high quality throughout.
Another thing I really appreciate is that Jonathan not only explains the details of app weaving, but takes care to give you the big picture. This, I feel, is something that's often lacking in books of this nature. Dan Wellman's jQuery UI springs to mind - it's an excellent book, but apart for a short overview in the first chapter, the rest of it is spent with the nose one inch above the floor, discussing minute details of the API. Jonathan could have taken a similar route here, but he makes sure to always put things into context before he dives into the details. Thus, reading this book will really give you a helicopter view of what constitutes iPhone web app creation; the difference between web and native apps, what problems jQTouch solves, what role Phonegap plays, etc. This knowledge will remain relevant long after jQTouch/Phonegap is changed or toppled by some other framework, ensuring that this book will age well (while the jQuery UI book was obsolete before it made publication).
Also there is the eerie fact that Jonathan can read your mind! Several times during my reading session a question would pop up, only to be answered by Jonathan in the very next paragraph. Couldn't I apply the rounded corners to the ul directly, instead of to the first and last li? Wondered I. No, Jonathan immediately responds in a note on the next page, explaining why that wouldn't work. Hey, why not use a CSS-sprite instead of two pics? I asked. I turn the page, and sure enough, Jonathan has anticipated my question and gives a succint answer. In fact, when putting the book down after having finished it, I can't think of a single concern of mine not having been put at ease in a similar fashion. Almost made me throw a glance over my shoulder…
All in all, I warmly recommend you pick up this book. It gives you the full lowdown on building iPhone web apps, and it does so in a really brilliant way.