Genii Weblog

Two books I couldn't pass up

Mon 2 May 2011, 11:12 AM



by Ben Langhinrichs
I am not usually a big fan of pre-ordering, but there are times I make an exception. Mobile development is clearly in my future, so I have been looking at the various options for Android, BlackBerry and iPhone development. There are some excellent options out there, but I happened to see two new entries in the Head First series, which is a favorite of mine. Each is discounted at least 40% right now, and both are shipping in early July.

So, sighing reluctantly at the idea of putting out money ahead of time, but thrilled at the thought of getting two new Head First books one exactly the topic I am learning about, I put in my order.  Now, I guess I just have to wait patiently. (Man, am I bad at that part.)


Whether you're a seasoned iPhone developer who wants to jump into the the Android Market, or someone with previous programming skills but no mobile apps in your resume, this book offers a complete learning experience for creating eye-catching, top-selling Android applications. Head First Android Development

Whether you're a seasoned Mac developer who wants to jump into the App store, or someone with strong object-oriented programming skills but no Mac experience, this book is a complete learning experience for creating eye-catching, top-selling iPhone and iPad applications.
Head First iPhone and iPad Development: A Learner's Guide to Creating Objective-C Applications for the iPhone and iPad

Pre-order now:   U.S.  CA  U.K.  DE
Pre-order now:   U.S.  CA  U.K.  DE


I guess that means I have to get serious and get out to buy my smart phones. (They're a business expense, honey, really they are.) 

It comes as relatively little surprise, by the way, that there is not a Head First BlackBerry development guide. R.I.M. needs to work its ass off if it doesn't want to be R.I.P.


Copyright © 2011 Genii Software Ltd.

What has been said:


989.1. TimFromUK
(03/05/2011 12:14)

Ben

I have just completed my company's first smartphone app which works on iPhone, iPad, Android and Blackberry 6 OS. All with one set of code, because it is a web app, using javascript, html and ajax only. Works offline and stores data locally (ie, it usees HTML5 features) and looks like an App.

I truly think this is the future - much cheaper and quicker than developing for at least 3 platforms!


989.2. Ben Langhinrichs
(05/03/2011 01:42 PM)

@TimFromUK - That's great. I am betting that you are right about the future, but I think it's worth investing some time and money in the different app platforms just in case. Android seems to be charging forward.

I am curious to know more about your experience. How will you distribute the app, or is it for internal use? Did you run into any unusual coding difficulties given the nature of the mobile devices, or was it just like developing a web app with a very small screen?


989.3. TimFromUK
(03/05/2011 14:12)

>>How will you distribute the app, or is it for internal use?

We are a membership body, so we put the links and instructions on our web site.

>>Did you run into any unusual coding difficulties given the nature of the mobile devices, or was it just like developing a web app with a very small screen

Exactly that., with a couple of minor tweaks for the iPhone to deal with home screen icon, and making the address bar disappear so it looks more like a native app.

I did play with frameworks (I may use jQuery Mobile for the next app) but pretty much hand coded it.

The only complication I found was the local database storage (HTML5, using SQLite - currently supported by iOS, Android and Blackbrerry 6). I put the DB code in a separate js file so if some browsers move away from SQL to Indexeddb as seems likely, I can just build another library for that.

The complication was that the javascript for db access is asyncrhonous so instead of just firing off a call to read or update the database, you have to use call back functions which makes following the code logic somewhat tortuous!

Oh, and getting the cache manifest to work so that the app will even work offline (you need to make sure the right mime type is served for the manifest file and that there are no incorrect links in the manifest file).

Nevertheless, developing a single set of code for 3 platforms, using stuff I already know (javascript, HTML, CSS and SQL) beats learning 3 different APIs!

Happy to supply any more information if you are interested.