Thursday, September 23, 2010

Mac, iPhone and... part2

So last time I talked about how I've setup my iPhone development environment, and which tools I needed to get the development up and running.





After playing around with XCode and Interface Builder, and learning the basics following a book called iPhone in Action, I eventually decided to switch from coding an app using Objective-C & XCode with the iPhone SDK, to something called MonoTouch.

MonoTouch is a development framework that lets you code iPhone applications using C#!
It's based on the open-source project Mono, which is a cross-platform C# development framework. What the MonoTouch development team basically did was wrap the iPhone SDK in C#, meaning that you can work with the SDK the same way you would with XCode and Objective-C, only in C#, enjoying a managed-code environment and all the C# libraries you love. (Better than that foreign language)

Developing in MonoTouch isn't free, apart from the 100$ you need to pay apple for becoming a publisher in AppStore, MonoTouch costs 400$ for a single professional license. We can still develop for the Simulator for free, just as with XCode and the iPhone SDK.

Few months ago, apple has changed their AppStore terms for publishing an application. The major change basically said that you can't publish applications that were developed in MonoTouch or other solutions which allows you to code in a different programming language, and compile the code to iphone.
Recently in an unexpected move, apple has decided to change their terms again and allow developers to use these third party solutions for programming iPhone apps. (Good news for us)

So back to MonoTouch, to get things up and running, I needed to install the following:
Latest iPhone SDK(Already did that in part 1)
Mono for OSX - The Mono runtime.
MonoDevelop for OSX - An open-source IDE for developing with Mono.
MonoTouch SDK - The C# SDK that wraps the iPhone SDK.

After a few minutes with MonoDevelop, I learnt that the shortcuts aren't the same as in Visual Studio. Also the color-scheme was pretty annoying so I had to change that aswell. I'll post a guide on how I did those things in the future.

Next time I'll dive into the MonoDevelop environment, and explain about what an iPhone project consists of and hopefully talk about the Interface Builder, which is an integral part of the development process, as it's our GUI designer.

No comments: