Which Platform is the Best for My Mobile App?
April 28, 2010 2 Comments
I am currently sitting at the Cincinnati Microsoft office attending the CINNUG Mobile Development FireStarter. This free training session covers how to create mobile applications for Android, iPhone, and Windows Mobile phones. I do not have any immediate plans to create a mobile application soon, so what am I hoping to get out of this session?
3 Highlights I Want to Learn Today about Mobile App Platforms:
- Pros & Cons of different platforms
- Enough knowledge to be able to manage an outsourced app developer
- Insight as to which platform is emerging as the leader
Throughout my career, I have been heavily focused on Microsoft development technologies. Often times recently, I have wondered if I should branch out to other languages and platforms. I have not yet done this, but if I were to move into mobile development (something I have limited experience with so far), it would be an ideal time to jump on the best platform as opposed to using Microsoft without questioning the decision. Therefore, I am happy to take advantage of this training session and glad that the format will discuss 3 different platforms.
What Did I Learn?
The training is over and I have formed some conclusions while generating even more questions. Below are summaries of what I learned.
Pros & Cons of Different Platforms
If I want to sell a mobile application then I need to make a good decision for which platform to build it. Each platform has its own benefits so it is possible that each platform could be best for certain types of applications. Below are the high-level Pros and Cons for each platform:
Android
Pro
Quickly gaining popularity
Open source
Con
Uses Java
Somewhat limited for game development
iPhone
Pro
Most Popular
Same OS for iPhone, iPod Touch & iPad
Con
Development requires a Mac
Uses Objective C
Only distributable through the app store
Windows Mobile/Windows Phone
Pro
Familiar tools and language
Mature – platform has existed for a while
Con
No physical devices for new platform version (7)
Adoption is a downward trend
Enough Knowledge to Be Able to Manage an Outsourced App Developer
Realistically, I am not going to drop all my plans or projects to dive in and write an iPhone application. I have enough wisdom to know that would probably be a waste of time unless I really want to learn iPhone development or if I had a great idea for an app for which I knew there was a market. Therefore, I don’t need to know at this time how to develop a mobile application. I just need to understand the highlights.
I am trying to prepare for the moment when I have that great idea for a mobile application. When that happens, I don’t want to be clueless about the next steps involved. I want to have a good idea for limitations of current platforms, which technologies are emerging, and how to move forward getting the thing developed.
Ideally, I will someday “own” a mobile application. When the time comes, my plan is to hire someone to build it, but I do not want to be ignorant to what is involved. By seeing these demos, I have been introduced to developing mobile applications. If I want to learn the details, I know where to start. If I want to hire someone else to develop a mobile app, I can now intelligently discuss the project and properly vet the person’s credentials.
Insight as to Which Platform is Emerging as the Leader
Perhaps the most important aspect to deciding which platform to develop for is how popular it is. Simply put, the bigger the market that my application can reach, the more sales leads that can be generated. So which platform will the most users be running when my application is finished and ready to be sold?
At the time of this writing, the iPhone is the most popular of these 3 devices. 2nd is Windows Mobile, with Android placing 3rd.
Most importantly, iPhone users consume the most network bandwidth out of all smart phone users. I believe this is a testament to the high user engagement with iPhones and consider this a forecast of its future growth. Some industry experts have opined that Google’s Android platform will emerge as the leader given its “open” paradigm is more beneficial to developers. Still Microsoft’s upcoming release of Windows 7 Phones may tip the market share into their favor.
I am by no means an expert, but my bet would be that the iPhone will be the dominant smart phone platform for the next few years. The barrier to entry for users is low and it already has a head start influencing the industry. Everyone that has an iPhone loves it and everyone who doesn’t have one wants one. I don’t know a single person who is excited for any Windows Phone news and only a few who are aware of Android’s developments.
If Apple ever allows the iPhone to be used with wireless networks in addition to AT&T, such as Verizon, look out! They will have removed the biggest barrier left to everyone wanting one.
Which mobile platform do you see emerging? Which platform would you recommend? Your opinion is probably more informed than mine.
Check out the Unity Framework – it lets you develop iPhone apps in Mono C# – a developer working for me right now develops iPhone apps in this manner I believe – I’ll double check with him to see if that’s right though. There are several different ways to make iPhone apps though – in addition to Objective C and Unity, you could also just make a javascript/html one, or use Flash to create one and export it with their new iPhone platform export feature.
Check out the Google Calendar iPhone app and the Dropbox.com iPhone app for two examples of decent HTML/javascript iPhone apps. They run pretty well, though of course they don’t have all the fancy graphics that a true blue iPhone OS app would gain.
I think I would be more willing to write something in HTML & JavaScript than to jump through hoops to build an iPhone app in C#. Why go out of my way to force the platform to work how it was not intended? I would like the idea of Mono if it seemed like Apple wasn’t fighting it.