Feb 20 2012

A Call From the CEO of Xamarin

So I got a call the other day from Nat Friedman, CEO of Xamarin.  He said that he and other members of his team were following up with MonoTouch developers to get feedback.  I was pretty impressed that he was personally taking the time to talk to developers directly.

I think I must have been a bit starstruck, as I think I talked a-mile-a-minute for the 15 minutes we were on the phone.  In retrospect, I wished that I had better questions to ask him, or better feedback to give.  But I’m sure that with all the calls they are making they will get some good feedback from developers who have spent a lot more time using their products than I have!

Before the call, I didn’t really know much about Nat, so I googled him and found this personal blog, and this Wikipedia page .  He’s actually very technical, and has a really interesting background.  To me, that says a lot about the company’s future and points to a good likelihood for success.

I really do hope that they are very successful, as I am very optimistic about what this platform could become and I want it to be around for the long haul!


Feb 8 2012

My MonoTouch Development Environment and Resources

Once I had settled on using MonoTouch, I had several things to think about:

Hardware

First, I would need a Mac.  I use a MacBookPro for work, and I’m sure it would be more than adequate.  I have a Mac Mini (several years old and only 2 GB RAM), which would probably also work, but it’s being used as my Media Center, running XBMC, and I neither want to do all my development on my LCD TV in the living room, nor will I wrestle control of the TV away from my family often enough to get any programming done.  I have an old piece of junk Dell desktop that I’ve been using for Windows development, and it’s on it’s last legs.  So, I decided to kill two birds with one stone and get a new Mac for both my iPhone AND Windows development.

I got the 27″ iMac with 2.7 GHz Core i5.  It only came with 4GB RAM, but I got an extra 8GB from Amazon.com for only $35, so I’m running 12GB, with OS X Lion, Parallels 7, and a Windows 7 VM.  I have to say, it is really smooth.  Windows runs a lot better on my iMac than it ever has on any of the PCs I have used at home or at work.  At first, I almost thought the display was too big, but I got over that pretty fast!  Now I love it.

Software

Next, I would need the development tools.  Here’s what I installed:

  • XCode 4.2 (free from Apple)
  • MonoDevelop (free download)
  • MonoTouch (free for trying it out – you can only target the iOS simulator, not a real device – so after a brief trial, I bought the individual developer license for $399)
  • SQLite Database Brwoser 2.0b1 (makes it easy to create and modify the database that the iPhone app will use)
  • Visual Studio 2010 (this isn’t necessary for developing the iPhone app itself, but I use it to develop the back-end data services that the iPhone app will talk to)
  • Microsoft SQL Server 2008 R2 Express (again, this is for the back-end, not for the iPhone app itself)

Books

Finally, I needed some guidance on getting started with MonoTouch development.  Here are the books I bought:

I love books.  There’s something about real paper that still appeals to me, and I can’t just read stuff on my iPad.  Here are the MonoTouch books that I bought:

They were all very good, and each had some things that the others didn’t.  I was disappointed by one thing, though: none of them are written for XCode 4.  Even Bluestein’s book, that came out in December, 2011.  They all have in depth intructions and screen shots telling how to wire up your UI, but it’s all out of date, because it works very differently in XCode 4 than it did in XCode 3.  It was pretty frustrating to read up on how to do something, then go dive into it and not be able to find the buttons or windows that they refer to.  Also, they refer to specific things in MonoTouch and MonoDevelop that aren’t there any more or that work differently.  Eventually, I figured it out, but it took a lot of trial and error.

Other Resources


Jan 23 2012

Choosing a Framework

Some History

Back in 2008, about the time Apple released the iPhone 3G, they also released the SDK.  Armed with an iPhone 3G, a Mac Mini, and the SDK, I set out to join the ranks of those few elite developers that had an app in the new App Store.  Unfortunately, Apple kept a tight lid on the SDK for several months after that.  There was a strict NDA that prevented anyone who had downloaded the SDK from publishing books, blogs, or in any way publicly discussing how to develop iPhone apps.  Since I was completely new to XCode and Objective-C, this was a bit of a problem.  If I ran into trouble, there was no one to ask for help.  Also, since all my recent development experience had been with C# and .NET, re-learning how to do the most basic functions was not something I wanted to spend all my spare time on.  So eventually, that Mac Mini got moved to the living room and turned into an entertainment server, and I determined that some day I’d get back to trying to develop an iPhone app.

Fast forward to 2011.  I’ve been through several iPhones, and am now on an iPhone 4.  More and more, things are going mobile, and I really want to get back to that dream of developing iPhone apps.  By this time, the SDK has long been very public, and widely covered in books, magazines, and blogs.  I should be able to get the help I need this time.

Come to find out, there are a lot more ways to skin that cat now than there were back in 2008.  Apple has become a lot more friendly with 3rd parties that provide development tools.  You don’t even have to program in Objective-C any more.

Appcelerator Titanium

The first framework I came across is Appcelerator Titanium.  This looked very promising because it uses Javascript.  While I am by no means proficient in Javascript, I’ve dabbled in it, and there seems to be quite a bit of information available.  Also, there are lots of people developing modules or templates for Titanium.  Another benefit is that it is cross platform.  You’re supposed to be able to create apps for iOS and Android with a single code base.

PhoneGap

I also looked into PhoneGap.  This is another cross-platform framework.  Built on HTML 5, you can target iOS, Android, Windows Phone, webOS, and several others.

MonoTouch

After spending quite a bit of time looking into all these frameworks, and pretty much deciding to go with Titanium, I finally came across MonoTouch.  I can’t believe I had never heard of it before.  As a .NET developer, this seemed like the perfect solution.  I could actually use the code I’ve already written, and the skills I already have, to create iPhone apps.

One blog post that helped me make the decision to go with MonoTouch was: 5 top reasons for selecting MonoTouch over ObjectiveC by Bartek Wilczyński.  He is an experienced Objective-C developer, not just a .NET developer who is too lazy to learn Objective-C, and he makes some very valid points of why he would choose MonoTouch for a future iOS project.

And here is another one: John Sonmez, Flipping directions.

So, MonoTouch it is!

Next: Getting Started

Having chosen a framework, I dived right in to see what I could do with it.  In my next blog post, I’ll describe my hardware setup, my development tools, some books I bought, and first impressions.