Way back, somewhere around 1978, I had my first encounter with computers and software. In those days the belief in power and meaning of software had no limits. Popular “My first Basic/Algol60/Fortran” programs were cellular automata. The most popular form was “the game of life”. A couple of months ago when I picked up creating apps for the iPhone it was not difficult what “My first Monotouch app” was going to be. And today I am happy to announce that I have completed the full path. The iPhone has proved to be a powerful platform, Monotouch has proved to be a nice programming environment and Apple has accepted the result in the Appstore.
The app is named Kalifescope it is a kaleidoscopic variation on the game of life.
In my last post I had described all the steps needed to get the app on a physical iPhone. To get it to the appstore was, in the end, quite simple. Googling on that I found some advice, most of it far to complicated.
First you have to fill in a couple of forms on iTunes Connect. No big problem, the process describes itself. The last step is to upload the application. You do not need XCode for this. In Monodevelop there is an option “Open project in XCode”. Once there XCode will start complaining about missing framework libraries. That is not the path to follow.
All you need is the Apple Application Loader. This is available as download in iTunes Connect, the spot you need it. The enigmatic part is which file to upload, the uploader gives no hints. In the end it was simple:
- In Finder Go to the iPhone\release folder
- Compress the application file, that is a full installer including all content files like images. Compress results in a zip file.
- Select this zipfile in the application loader
- Click upload
After that all that is needed is patience. It took about a week before my app was reviewed. And accepted
Apps built with Monotouch are not that small. My app contains only a couple of hundred lines of code but nevertheless it is a download over 4Mb. iPhone Apps can be less than half an Mb. The main reason for this size is the .NET framework. There is no .net runtime for iOS, there is no dynamic linking on iOS either. Monotouch statically links the framework into every application. Not bad to do that in a couple of Mb’s. In case squeezing every byte out of download size is essential to you Monotouch may not be your way to go. For building an app utilizing all iOS has to offer and staying with the beautiful C# language it is perfect and a very welcome new member to my tool belt.
<update>The Lite version of Kalifescope has also been accepted. See Monotouch shine on your iPhone for free :)</update>