Developing for the iPhone – Part 1
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.
- 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.