iOS Development

Author : Ashley G Truter
Updated: 25-Jan-2011
Purpose: This document outlines the iOS development process.

Why the big fuss about the iPhone/iPad?

The Apple iPhone is more than just a phone, it's a complete platform for the future delivery of digital content. With this device (and the iPod Touch) Apple has turned software into a commodity much as it has already done with music (and is set to do with video). The days of consumers walking into a shop or navigating to a particular site and handing over their credit card (or less frequently cash) to purchase your software are all but dead.

The future is Apple's App Store where consumers can purchase software at the tap of a finger, and developers can concentrate on producing great software without having to worry about sales and distribution. Apple has created a new ecosystem for producers and consumers of software, and the pioneers of this revolution (much like the Internet pioneers) will be well rewarded. Consider these facts:

I don't know about you, but this is something I want to be a part of!

Where does REBOL fit into this?

Short answer - it doesn't. The long answer is that REBOL will be used to generate some of the underlying code required to get iPhone apps to market. These REBOL tools don't exist at present but I and others are working on them.

What's this page for then?

Whilst REBOL reignited my interest in Software Design/Development as an art, it's the iPhone that has reignited my passion for beautiful hardware. I'm not particularly happy about having to use a vast array of old world technologies (HTML, CSS, Javascript and C) to create apps for this device, but Apple have done the best they can to hide this mess from developers, and as I often say:

Sure, it's not REBOL, but it's the best we have at present.

So, the remainder of this page will seek to distill my limited iPhone development knowledge and point folks to useful resources, some of which I hope will be REBOL-based in the future.

Dashcode & WebKit

Dashcode is Apple's IDE for developing AJAX-based Web apps. The development model conforms to MVC as follows:

WebKit is Apple's web technologies framework and now includes support for:

Using these technologies it is now possible to develop a web-based application bundle that appears exactly like a native app on the iPhone, including:

The SDK includes a fully functional iPhone emulator to develop, test and debug apps locally.

Interface Builder, Xcode & the iPhone SDK

I have not delved into native application development too deeply at this stage, so my comments will be brief.

Interface Builder is used to design the UI for native iPhone apps, with Xcode providing the C-family compilers.

Native apps give you direct access to the iPhone's underlying hardware, in particular it's:

Using these features intelligently has enabled developers to create applications undreamed of a few short years ago. Applications such as:

And these are just the tip of the iceberg! Some very creative folks are starting their own small iPhone development businesses now.