I’ve been playing with iPhone development for a month now and I’ve understood the concepts and am ready to make my first app, but I haven’t.
See, my first exposure to the iPhone world was through a web app my company made for its partner group. It was a simple ruby on rails web app that used my patched version of iUI to drive the experience. It was such a big hit that I’m currently finishing up a third demo branch of this for a client, hoping to convince them that even large organisations can get on the mobile bandwagon. So, you may ask, why isn’t it being done as a native app? Well, there’s a lot of good reasons, but what it really boils down to is that if you’re writing a native app for the iPhone, you’re only writing it for the iPhone.
At Mobile World Congress this week we’ve seen new Android devices, new Windows Mobile devices and more of the Palm Pre, devices that have one important thing in common with the iPhone, a web connection and a browser.
The best thing about all of them having a browser is that 3 of the 4 run a version of Webkit with Apple’s transforms and animations built in (Windows Mobile users can download Opera ) So, really, when you’re creating a web app for an iPhone, you’re creating a web app for all other mobile devices with a half-decent browser (S60 included).
How much work would it be to port an Objective-C (iPhone)-based app to Java (S60 and Android) and then to .NET (Windows Mobile), only to have to create a web-based version for the Palm Pre! What all these iPhone developers need to understand is that if they want the full potential of the market they’d better start learning HTML5 databases and Javascript. Web apps are certainly still worthwhile.
All that said, App stores can’t push web sites to your phone, which is the main source of advertising and how the iPhone apps have become so successful. Maybe Apple should allow you to browse web apps too?
iPhone development is the forefront of “cool” programming. Doing something with your latest toy and potentially selling it to millions of people, making a few bucks along the way. The main stumbling block (assuming you have a Mac) is the Objective-C language.
My experience in programming starts out with Java (university) -> PHP -> C# -> ASP .NET. Nowhere along the way have I ever delt with memory management or pointers. However, you can pick these things up quite quickly once you’ve had some things explained to you. So, here’s 10 great sites for starting out in your iPhone development.
A full 20-lecture course with sample code, walkthrough assignments and guest lectures from Apple employees. If you’ve ever been through uni/college you’ll know what to expect, a bit of a challenge to the casual developer but you’ll learn amazingly quickly. Thoroughly recommended.
PhoneGap, for iPhone, Android and Blackberry, allows you to put your web sites into a native application with no objective-c knowledge! Any web site can be made into an app. It’s simple and open-source too! You can also access native device functionality like the accellerometer and the location system using javascript. There’s a great tutorial in turning your blog into an app on the open ideals blog.
The bible for iPhone developers. The whole SDK can be viewed from here along with some great exercises and videos on how the whole thing works. When you download the SDK you can download this whole library into XCode for viewing offline.
Jeff has been an Objective-C programmer for the past 10 years and regularly blogs about iPhone development, whether it’s a new component or some funky OpenGL particle system. His posts are full of great code samples so go have a look!
If you’re in to Twitter (like I am) Tim Haines maintains a list of iPhone developers on Twitter. If you go and put your name on the spreadsheet there’s a ruby script you can run to follow all the developers on that list. You’ll get access to hundreds of people-worth of knowledge and help. The community is very friendly and always willing to help you out.
So, good luck making your shiny new app! If you have any good sites you want added to the list, leave a comment!
Have you tried registering for the iPhone developer programme? I have. Today I registered my company for the scheme and was told there would be a verification process and it would take about a week. I called Apple to see what this process was. Your company goes through the following:
Your e-mail address is checked against the company name
Your e-mail address is checked against the web address you gave
Your website is checked to make sure you exist
Apple then check you are in the Yellow Pages
What! Check that I’m in the Yellow Pages!
I understand the need to check that the company actually exists but how many internet companies are registered to a physical address and listed in the Yellow Pages? Most “companies” will be a small-time operation and not actually registered.
If you fail the “Yell check”, you have to provide a certificate of incorporation. How many internet companies have that?
All that said, Apple have done well to make the app store a place for professionally-created programs. They’ve taken it onto themselves to test and approve all apps which is a significant overhead, but the store is better for it.
A few days ago I read about PhoneGap, an easy way to make an iPhone application using the web. The basic idea is that the native application runs a Webkit install pointed at a URL. From there you can run your iPhone-optimised web site without a hitch. Sounds wonderful.
I then found another blog telling me how to create a simple Dashcode application that read from an RSS feed. So, I pointed it at this feed and off I go! A really simple application whilst watching the TV. If you want to have a look, point Safari or your iPhone at PhoneGap is a great piece of technology, and is a great stop-gap between learning how to make web sites and iPhone apps.