The typical developer cannot keep up with the fast pace of the mobile development landscape, and yet, in the past six months or so, there has been more interest in corporate development on mobile platforms. In addition, new form factors using non-desktop OSs (such as the iPad and the upcoming Android tablets) has made mobile development very confusing. To make matters worse, the possibility of cross-platform development is in doubt because Apple flexed its legal muscles and showed that tools are playing on a "here today, gone tomorrow" playing field.
It's an exciting time to be involved with or follow the mobile development industry, but for developers who depend on it to provide their revenue, it can be nerve-wracking too. Hopefully, I can help you make sense of it with this mobile development overview.
Mobile development survey
Appcelerator recently released the results of a survey of 2,733 real-world, in the trenches developers who were asked their opinions about the mobile development market. Reading the results and talking to Scott Schwarzhoff, VP of Marketing at Appcelerator, confirmed much of what I have come to believe about this market. The survey results were also in line with a poll of TechRepublic readers in January 2010.
Several highlights from the survey results include:
- While iOS has an overwhelming slice of mindshare, Android is catching up.
- Developers see much more long-term potential for Android than iOS due to its openness.
- Enterprise developers show much more interest in RIM and Windows Phone 7 than smaller development shops, which is also no surprise given their investment in RIM and Microsoft technologies in-house.
The big playersApple (iOS)
Developers are increasingly annoyed with Apple for various reasons, which include:
- Restrictions on cross-platform development tools.
- Capriciousness regarding the terms of the App Store (apps that are approved one day are yanked later).
- Lack of clarity regarding what will and will not be accepted in the App Store.
- Control over the mobile ads (the new iAd platform).
- Saturation of the App Store by 99 cent and free applications, making it difficult to stand out and earn revenue (this is not Apple's fault).
- Changes to AT&T's data packages that make bandwidth hog applications extremely undesirable (this is also not Apple's fault, other than the exclusivity of the iPhone to AT&T).
Despite all of those annoyances, iOS's market share is astounding (Apple is currently in second place in the market), and there is something to be said for the single-hardware strategy pursued by Apple. While Android development is plagued with device inconsistencies and fragmentation (made worse by manufacturers adding layers like MotoBlur to devices, which keeps them at older OS levels), Apple developers have a much more pleasant experience.
Related TechRepublic download: Book chapter from iPhone for Programmers: An App-Driven Approach.Google (Android)
Many electronic devices such as GPS units, Blu-Ray players, and DVRs now run some sort of OS on them; this means that device makers are forced to write an OS, buy one, or roll their own Linux or BSD distro. This is a major headache. In the next couple of years, it is extremely likely that many of these devices will move to Android. We are already seeing a number of companies rushing to sell Android tablets now that the iPad has proven that it is a viable market.
Android has the openness and flexibility of Linux; Android is tuned for resource poor devices; and Android already has a ton of great functionality specific to consumer devices, including GPS, touch screen, media playing, file storage, and Internet access. To get an idea of Android's potential uses, just look at what Apple is doing with iOS and what Microsoft was predicting for Windows CE ages ago. (I find it ironic that Microsoft wrote the blueprint for this strategy 10 plus years ago, and now the company is fourth place in a two horse race.)
In terms of long-term prospects, Android looks like a winner. Even if it never overtakes Apple or RIM in the smartphone space, so long as it remains a solid third place, you can expect that learning to program Android will open doors in various ways.Related TechRepublic columns: Android development fundamentals: How to get started and My first Android app development project. RIM (BlackBerry OS)
RIM has a huge installation base and, since it has been in the enterprise market for about 10 years, the company gets the needs of enterprise mobile computing better than anyone, with the possible exception of Microsoft. Remember, it has only been in the last few years that RIM even bothered to market its devices to consumers.
RIM is in first place now but it is losing ground; there is a real possibility that it can regain momentum with some tweaks to its business strategy. RIM's development story depends on Java, which is well known, and the tools are readily available for it.
Related TechRepublic column: BlackBerry development basics from RIM's Mike Kirkup.Microsoft (Windows Phone)
Microsoft is extremely knowledgeable about the enterprise customers. Microsoft is able to easily tie its devices into the Windows network that so many companies use, which makes the management story quite nice for IT departments. Unlike RIM, the Windows Phone solution does not require the installation of an expensive, difficult to maintain piece of software — the tools are built right into Microsoft products.
From the perspective of a corporate IT department, Windows Phone is the best choice out there, which is why the Appcelerator survey shows so much more interest in Windows Phone from large companies. The big issue with making a commitment to Microsoft in mobile is that the future is up in the air.
The current generation of Windows Mobile (6.X) is losing market share; meanwhile, the next version (Windows Phone 7) is not backwards compatible with Windows Mobile 6.X in terms of applications. This makes Windows Mobile 6.X a lame duck OS and Windows Phone 7 effectively a brand new OS. While there is a lot of interest in Windows Phone 7, it is quickly losing momentum.
I feel that Windows Phone 7 is almost as exciting as Android in terms of capabilities; it looks like the OS that I really want on my next phone, and I love the development story. But until it is on the market and sales numbers are available, I cannot recommend that you devote much time to learning the OS unless your organization has a strong commitment to the Microsoft ecosystem.
Related TechRepublic column: Windows Phone 7 cheat sheet.
The smaller playersPalm (PalmOS)
Palm is dead for the time being unless HP comes up with something snazzy for the company. I would not bother to learn programming against the PalmOS until we find out what HP has in store for it.Nokia (Nokia OSs)
Cross-platform development tools
The real trick to understanding this market is cross-platform development tools. There are two cross-platform development approaches: HTML (particularly HTML 5) Web applications run in the mobile browser and tools that generate code that can be run on multiple platforms.
Writing Web applications is a way to leverage existing toolsets and knowledge, but it gives up a ton of device-specific functionality, and it runs counter to the way these devices are marketed and used. Right now, mobile users are running with the application paradigm. If you are going to use one of the cross-platform development tools, the big question is, "will Apple allow it?" Some of these tools, such as Appcelerator Titanium, seem to be allowed by Apple, while other tools, such as Flash, are definitely off-limits.
If you find a cross-platform development tool that allows you to do what you need, you're in great shape. Otherwise, if you are marketing to consumers (and increasingly, enterprises), you will need to develop in parallel for iOS and other platforms, which is a lousy situation.
J.JaDisclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides; he has a contract with OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and articles; and he has a contract with OutSystems to write articles, sample code, etc.
———————————————————————————————————————————-Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.