Development Blog
Software Development Articles and Opinions
Mobile Application Development: Android and iPhone
Categories: Opinion

After weeks of agonizing over whether or not to purchase a Mac so I can develop iPhone applications, I got a sign from God and decided against it. Maybe not a sign from God, but a sign from Google, and in this day and age what’s the difference? Google are offering an unlocked G1 that can be connected to any carrier and used to test Android applications for $399, compare that to $499 for an iPhone that can attach to any carrier. The phone is awesome and I was able to use the sim card from my iPhone 3G to use the phone with AT&T thanks to the APN information I found here.

So why would you want to choose Android over iPhone for development? To register as an Android developer and be able to upload your applications is only $25, compare that to $100 to be able to upload your iPhone apps to iTunes. In addition, Android development can be done on multiple platforms, compare that with OSX-only development for the iPhone SDK. I have 2 Linux boxes, a Vista box, and an XP box, why on earth should I have to purchase a Mac to write an iPhone app? I even managed to find a VMWare image of OSX 10.4, but of course Apple only supports 10.5 for the iPhone SDK. In addition, Google encourages the development community in a number of ways that Apple does not. The first is by supporting open source and encouraging open development, which will lead to faster sharing of ideas and thus better applications. The entire stack for Android is either already open source or is planned to be and Google encourages making modifications or improvements and building from source. The second is with a much less restrictive licensing agreement for developers. There will be no need for a jailbreak community with Android! I could go on and on about the openness and freedom provided by Android, but you get the point. At this point you may be arguing that the G1 sucks compared to the iPhone so why waste time with Android? Yes, Apple has the advantage in terms of marketing power, brand recognition, and a near perfect track record with iPod. And yes, the iPhone from a hardware engineering perspective is magnificent and really unrivaled by any company today. However, the G1 is one of many devices that you can run Android on. G1 may have been an ill choice for launching Android, but more devices are planned for the future. It would not surprise me to see someone get Android running on the iPhone, though don’t look for Apple to support it. The dev kit and emulators have been out for a while, the documentation and examples are great, the community is growing, and support for Android is not going away anytime soon; G1 can die a horrible death if it needs to, but Android has a few rounds left before we can give the crown to iPhone.

In a sense, Apple is taking the Microsoft approach, by trying to control both the tools and the platform at the same time (VS 6.0 and win32, anyone?). While this proved very successful for Microsoft in the past, we have seen how opening up tools and platforms can have a major impact in the market in terms of competition. Certainly Linux is trusted by the security industry more than Vista and Java development remains as popular or more so than .NET. I would argue this is because Microsoft has only provided runtimes and tools for XP and Vista. And again we see a company trying to close something off, and a community, in this case Mono, forming and having to do a lot of work to try and open up .NET development for more people, similar to the iPhone jailbreak community. And while I certainly appreciate the hard work of hackers and the open source community, I doubt many companies trust Mono .NET over Java if they want to write applications for non-MS platforms with memory-managed languages like Java or C#. The same goes for iPhone applications, 3rd-party vendors are not exactly gathering in droves to write jailbroken iPhone applications, they will either decide to not write iPhone applications or succumb to the restrictions of the Apple SDK license agreement.

However, despite Apple, I do like my iPhone, so I purchased a copy of iPhone Open Application Development, jailbroke my iPhone, and began playing with the tools needed for iPhone development, and on a Linux box no doubt! The downside of this is of course that I will not be able to upload any of the applications I create to iTunes, but the extra freedom to develop and lack of a very restrictive license agreement makes it worth it.

Tags:,

Leave a Reply