How to Develop an iOS Application

lug 23, 2012 by     No Comments    Posted under: Mobile Solutions

Mobile software has many facets, of which the most compelling is probably an iPhone app. So now, we have executives who are impressed by a cool iPhone app they’ve seen and want to replicate it.  On the other hand, we have program managers impressed by the amount of work (and money) it would take to provide a comprehensive mobile solution that reaches a wide audience share.  Today, a mobile solution may sometimes consists, solely, on a mobile site.  However, every time someone goes beyond the level of a mobile site, an iOS native application is built. How do you write an iOS native application? Here’s a brief summary of the most popular options.

The Three Main Options

1) Using the tools Apple supplies.  An iOS application is internally based on a set of Cocoa Touch Frameworks.  Calls to the various components are glued together by Objective-C statements.  Objective-C, is therefore, the primary programming language of the iOS platform.  It is, essentially, also the ANSI C language extended with some object-oriented features, mostly inspired by Smalltalk syntax.  Objective-C ultimately supports classes and object orientation, but it does so, through a syntax that looks a bit unfamiliar to C++ developers and even less familiar to C# and Java developers.  For this reason, some developers feel uncomfortable with Objective-C and wish to explore other options. The bottom line is that most developers can really become productive on Objective-C regardless of their background and skills. However, developers with a strong Java, C#, or even Microsoft Visual Basic background may find it easier to approach iOS development from another angle.

2) Through MonoTouch.  MonoTouch is a commercial framework based on Mono and developed by Xamarin.  MonoTouch offers a .NET facade on top of some of the Cocoa Touch frameworks.  You call classes with the same interface used for equivalent .NET objects, which have functionality mapped to iOS-specific frameworks.  MonoTouch requires the Mono framework as well as the iOS SDK.  To write code, you use the MonoDevelop tool and rely on Xcode for any UI work.  You can reuse your .NET skills and even recompile some C# source code you may have.  However, the only code you can share with .NET projects is back-end code; UI code must be expressly written using Cocoa Touch tools and metaphor.

3) Using Adobe’s PhoneGap.  PhoneGap transforms a client-side web application into a native app for a variety of mobile operating systems, including iOS.  As a developer, you write a classic client-side web app using HTML5, Cascading Style Sheets (CSS), and JavaScript. When you’re done, you create an iOS PhoneGap project and extend your site with calls that connect to the device and command device-specific features such as vibration or camera.  The HTML application is packaged as a shell of native code, which internally uses a full-screen web view to load the locally stored HTML pages.

In all cases you need a Mac computer, the iOS SDK, and must be registered as an Apple developer (which is free). In addition, if you want to test the app on a real device (and possibly publish the app), you must have joined one paid Apple developer program.

Dino Esposito

CTO of a company that provides software and mobile services to professional sports, Dino is a well-known ASP.NET expert who has written several popular books, including Microsoft .NET: Architecting Applications for the Enterprise, Programming Microsoft ASP.NET, and Programming ASP.NET MVC, all for Microsoft Press. His latest book, Architecting Mobile Solutions for the Enterprise has just been published by Microsoft Press and is available for sales.

More Posts

Follow Me:

Got anything to say? Go ahead and leave a comment!