Web Apps

This area of the blog is dedicated to the development of Web apps, specifically for the iPhone/iTouch and the iPad. Some of what goes on here will also include compatibility for Android and Blackberry platforms. If time and need allows, I will expand the blog to include resources for Xcode developers.

In the meantime, users interested to get involved in web app development should check out these materials:

- PhoneGap - an open source development framework for developing cross-platform mobile apps. Essentially, this entails using HTML, Javascript and CSS to develop apps for iPhone, Android, etc., and still take advantage of the device's native features.
- JQtouch - a jquery plug-in for mobile web development for iPhone and iTouch (the current version works better on iPad since iOS 4.2). This plug-in uses the JQuery javascript library, the homepage of which is located here.
- JQuery UI - user interface tools. 


By 'Web App,' I am referring to the relatively new field of development for mobile devices in which apps are authored using a combination of HTML, Javascript and CSS in lieu of native developer tools such as the Google Android API or Apple's Xcode. Essentially, this means you are designing a website to function like a native app for iPhone, etc. The look and feel of iPhone apps are easily created in this manner; and, apps can be saved to the device's home screen so that launching and using them works just like a native app. Using the HTML manifest, you can direct a mobile browser to cache your entire app so that it will work offline. You can even port your web app to the native developer environment if you so desire.

This does not mean that a web app cannot work in a conventional web browser -- it certainly can, though you may want to develop a different versions of your apps that are scaled to work in desktop browsers, if that is a need you foresee your users having.

One advantage of developing -- or at least prototyping -- with web apps vs. native tools like Xcode is that you can immediately get the app on the device for testing, usage, etc. And, updates are easy -- simply apply them to the online site, and the next time the app is launched from an online mobile device, the most recent version will be downloaded.

Apple's Xcode developer tools are pretty awesome, so don't let this article be a deterrent if you want to learn them. However, there are a few things to bear in mind:

1 - Anyone can register as a developer and download Xcode to use. However, developers who want the ability to test apps on a device and place them in the app store must pay an additional $99 per-year registration fee.
2 - Apple mobile apps are written in Objective C, which is what you'll likely be writing in with Xcode (though it will compile programs written in C and C++). If you don't know it, you'll need to learn it (and get a good reference book to do so -- Apple's training videos are okay but you will find that you need something more 'at the ready').
3 - The registration fee affords the developer a 'provisioning profile' so that they can test their apps on a single mobile device (i.e., an iPhone). $99 is really not that much money, but for a student or other person who simply can't afford it, it is a hurdle.
4 - You can test and run apps on a virtual device in Xcode (which is nice). However, running them on an actual iTouch, iPhone or ipad is a truer test of functionality. The virtual iPhone in Xcode has your computer's memory and processing speed behind it; running an app on an actual device is a different story in terms of speed and performance. Therefore, it's good to know how your app is really going to perform before submitting it to the app store. You don't want to be stuck doing an immediate upgrade if you don't have to.
5 - Once you develop an app in Xcode and have put it through the paces, you then submit it for inclusion in the app store. This process takes several weeks. One must understand that Apple does have quality control issues, not to mention security, that necessitate this -- however, it is an investment of time and should be taken into account before diving head first into registering as an Apple developer.