There is one point in the book that I am still on the fence about. Many Android developers are pushing for developer to make your applications take advantage of all the native capabilities that are provided. In terms of the Android phones this is the fact that they have a hardware back button unlike the iPhone that does not. Therefore, many developers complain about applications that have a software back button, saying that they are being ported from iPhone since the iPhone needs the software back button due to the fact that it doesn’t have a hardware back button. Many Android developers feel that have the software back button is being wasteful since it is not needed and poor design of the mobile application. I can see their point and understand that this doesn’t provide the user of the application anything, since the majority of Android users already know about the back button and are accustomed to using it. At the same time I can see the point of wanting to develop the application in a common language and get it deployed to both Android and iOS with minimal changes. This will make you more productive and maintenance of the application simpler. The author stated in the book that the software back button is a native component and that is not true for Android, but it is true for iOS. In the example application that the author provides throughout the book has a software back button due to the fact that it originally is a web application and needs the software back button. Therefore, this will be something that you need to decide if you are OK with having a back button in your mobile app to use this type of approach.
Besides the debate between having the extra software back button vs. the hardware back button, the author does a great job of providing detailed explanation of the code and pictures of the application running on the phone and in the browser. I personally enjoyed the fact that the author provided numbers next to critical code segments that he wanted to talk about and when he was talking about those segments used the number. This is a great feature for the beginner software developer that might not understand all the code that is being explained and would have a harder time figuring out what line of code the author was talking about. For the more experienced developer, this really doesn’t matter either way. I fall more into that boat since I have been developing applications for the past 16 years and have been exposed to a number of languages, but I could see how this could be very helpful.
The other things that I really enjoyed was the chapter covering the ability of having your web app working while offline. Personally, I could see cases in which this would be very helpful in situations where communications either were not there or went down often. In addition, I enjoyed the chapter that went into details on using PhoneGap and working with the more native functions provided by the phone. This chapter, like all the rest, the author provided great details on who to get everything up and running with a basic understanding of what is going on. I assume that it doesn’t cover all the things that can be done with PhoneGap and would assume that could be another book to cover that in detail, but he does get you up and running and you can always learn more about PhoneGap. The last chapter finished off the book really well be presenting how to submit your application to Android Market. Again, for the beginner this is great information to have and will allow you to understand and experience, through the example, how to build and deploy a web/mobile app.
Not to take away from what the author wrote, but to provide you a little warning on the ebook. I have read a few ebooks from O’Reilly and this is the first one where images bleed into two pages and text was not formatted correctly when defining the attributes in the new entry form for calorie app. (page 132) I am seeing more and more examples of the text overlapping other text and this makes it challenging to read, but you can still understand the authors intent. Since I don’t understand how the ebooks are managed, I don’t know who would need to fix this. The content of the book is still there, but it is a little more challenging to read in those areas where this is happening. Again, not to take away for the main focus of the book, that is done very well.
I am not going to go into all the details of the different chapters that I enjoyed and let you read it for yourself. If you are interested in creating web and mobile applications using the same technology stack, then this is the book for you and you can find more information about it here.