Written By Jon Peppers

Developing for the iPhone – Part 1

December 20, 2010 | app development

In this series, I plan to divulge my experiences in developing for Apple devices such as the iPhone and iPad.  We’ve recently released the official Omniprise app on the App Store, so I have plenty to talk about regarding Apple’s software design concepts and development process.

In my department, Self-Scan, we generally use C# and the .Net framework on Windows for development. 

 Microsoft has really done a great job with C# in regards to language design, developer tools, and a highly featured base class library. When looking at Objective-C, the required language for the iPhone, the learning curve starts to look a bit high.  There are crazy square brackets, colons, and various other symbols that would make a .Net developer throw up a little.

Luckily, Novell has come to the rescue.  In years past, they have developed a very adventurous project, Mono: an open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft .Net.  What does this mean?—well it means you can develop with C# and .Net for Windows, Mac, and Linux all with the same code!

What does this have to do with the iPhone?  Well, Novell also developed MonoTouch: a bite-sized version of Mono that compiles down to native Objective-C for iOS.  Not only did they get Mono to run on the iPhone, but they completely ported the UIKit framework to C# to directly work with Apple’s SDK, the same way you would do in Objective-C.

So MonoTouch:

  • Allows developers to use existing C# skills, and knowledge of the .Net framework
  • Allows you to reuse existing .Net code—even code that is already compiled
  • Direct use of UIKit and other SDKs from Apple
  • Developers will use the tools made by Apple such as Interface Builder, etc.
  • Let’s you put C# apps on the App Store!


Next time, I’ll talk about my experiences submitting to the App store.


Share this Article

Related Articles