This is the first article in a series that I plan on writing about iPhone application development. The first thing you should know is that these articles will not cover anything related to taking existing content sites and making them more "iPhone-friendly". While I think that is a valuable topic, it has little interest to me as a programmer. If I was a website manager, then it might have more interest to me. There are plenty of online resources for making your web content more iPhone-friendly and the fact that the iPhone runs a full version of Safari makes this a somewhat minor task.
Secondly, while I may refer to the "iPhone" as the target device for this series of articles, keep in mind that there are now 2 devices that can be considered targets for "iPhone Applications": the iPhone and the iPod Touch. The iPhone can access potential iPhone apps using WiFi or EDGE and the iPod touch can use WiFi. Do not underestimate the potential consumer base of the iPod Touch - think of the number of public WiFi locations as well as the number of people who have WiFi in their homes... the iPod Touch users will be quite well connected, even without the backing of a cellular network.
Thirdly, while I am aware of the possibility of jailbreaking my phone and using things like iPHUC (gotta love the choice of acronym there) to push stuff to the phone that will eventually allow me to SSH which can then eventually allow me to compile native Objective-C apps for the phone - I'm not covering that in this article. Not only is it an unsupported activity, it is certainly not something that the average iPhone user can do, which rules out the ability of distributing your application to a mass audience. Not to mention the fact that I think every time you jailbreak an iPhone, kittens die. Hey, that's the rumor.
So what is an iPhone application? To be short, an iPhone application is a unit of discrete functionality delivered via the Web to a mobile form factor device running Safari 3 over a potentially narrow-band network. There is a lot more to it, and I address the anatomy of an iPhone application in the rest of this blog post. While I provide an overview of some topics here, I will be covering a lot of these topics in much greater, perhaps painful, detail in subsequent posts.
Discrete Functionality
When building your iPhone application you need to keep in mind that you need to provide a discrete unit of functionality. The iPhone is not the platform on which to be deploying monolithic applications. If the consumer of your application needs to pick from a lengthy menu of features to utilize on the phone, then your application is not finite enough. Keep the scope small and provide a very clear, distinct purpose for your app. Before writing your application code, jot down a single sentence that describes the problem your application solves, and write down another sentence that describes the functionality contained in your application. If you have a tough time narrowing the functionality of your application down to a single sentence, perhaps it is not meant to be an iPhone application, or perhaps you need to break it down so that some of your app functionality is delivered via iPhone and the rest via traditional application means.
About Kevin Hoffman Kevin Hoffman, editor-in-chief of SYS-CON's iPhone Developer's Journal, has been programming since he was 10 and has written everything from DOS shareware to n-tier, enterprise web applications in VB, C++, Delphi, and C. Hoffman is coauthor of Professional .NET Framework (Wrox Press) and co-author with Robert Foster of Microsoft SharePoint 2007 Development Unleashed. He authors The .NET Addict's Blog at .NET Developer's Journal.
AddFone is search engine / directory of iPhone related applications that has the largest database of applications around (web and native applications).
Check it out.
#1
iPhone News Desk commented on 19 Sep 2007
This is the first blog post in a series that I plan on writing about iPhone application development. The first thing you should know is that these blog posts will not cover anything related to taking existing content sites and making them more 'iPhone-friendly'. While I think that is a valuable topic, it has little interest to me as a programmer. If I was a website manager, then it might have more interest to me. There are plenty of online resources for making your web content more iPhone-friendly and the fact that the iPhone runs a full version of Safari makes this a somewhat minor task.
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice: