As you might already know the people of Mono have made it possible to use the MonoDevelop IDE and C# to create applications for the iPhone. Whether this is good or bad I leave it up to you to decide, I'm just happy there is more than one way to develop for the iPhone. The thing that makes it possible is MonoTouch, the framework between the iPhone libraries and C#. MonoTouch is not free (single license costs $399, per year if you want updates) but there is a trial version to play with.
What do you need to get started:
- Mac OS X Leopard (yes, you still need a Mac)
- Mono framework for Mac
- MonoTouch Framework
- MonoDevelop for MonoTouch (it's a special version)
- XCode and Interface Builder (should already be installed with Mac)
You can find the installation instructions and downloads on the site of MonoTouch.
Tip 1: Once you have everything installed and it's your first time using Mono on you Mac, go here to be able to launch MonoDevelop.
Tip 2: If you've never developed for the iPhone or Mac before and you know nothing of Objective-C (the natural language of Mac and iPhone) than I still suggest you to read the documentation on Apples website and maybe also read the book "Cocoa Programming for Mac OS X (3rd Edition)" (Aaron Hillegass). Trust me, this will really help you especially if you'll be using Interface Builder to create the views.
So now that you have the tools and knowledge you can get started. To help you on the way I'll be creating a sample application and publish the code on this blog as I progress but don't expect full tutorials as I don't have the time right now. The idea is to create a vacation/trip organizer and you can download the first pre-alpha release of Tripy.
The following features are included:
- it uses a navigation controller for navigating between views
- 3 (table)views are available (list of trips, overview of a trip, details of a trip item)
- different examples to wire up a table view to its UITableViewDataSource and UITableViewDelegate, this also includes a custom UITableViewController
- custom UITableViewCell created in Interface Builder
- dummy data (no DB yet)
Future features:
- adding, updating and deleting trips
- more custom cells
- SQLite support
I also try to use Interface Builder as much as possible, not only for creating the views and controls but also to wire everything up such as linking a UITableView with its UITableViewDataSource and UITableViewDelegate. In case you have no idea what I'm talking about, a UITableView uses a UITableViewDataSource to get filled and a UITableViewDelegate receives events from the UITableView.
This first code release is very rough, poorly tested and needs code cleanup/refactoring so please no comments on these subjects, this will be taken care of as I progress. If you have questions on how to do something or how something works, just drop me a comment.
You are free to use this code as you see fit but I will not take any responsibility for accidents this code might cause. The only thing I ask is to put a reference to me or this blog if you publish or change this code or applications your create with it. If you have any input, recommendations or if you want to add your own additions just let me know.









