As dominant as Android is in the smartphone market, it’s probably never going to have the kind of lock that Windows does in the PC world. So for mobile developers, targeting the biggest pool of potential customers means creating versions of their apps for multiple operating systems (OS’s).
But casting a wide net doesn’t necessarily require learning how to code in Android, BlackBerry, iOS, Symbian and Windows Phone. It also doesn’t mean eschewing apps altogether in favor of “Web services,” which use the phone’s or tablet’s browser to provide an app-like experience. Instead, there are several tools that enable developers to write their apps once and then let the tool create a version for each OS.
U.K.-based developer IOLogics uses one of those tools: MoSync. Hammad Tariq, director of IOLogics, recently spoke with us about what he’s learned about multi-OS tools and what developers should consider when deciding whether these tools are a good fit for their projects.
Hammad Tariq: First of all, you should list the features you want to have support for. For example, if your application is something like Instagram, where it’s all about taking pictures, then you should first check if your choice of X-platform tool has camera support for all the OS’s where you want to publish your app.
Support and documentation is very necessary if you are starting out on any new platform. In the beginning, you don’t normally have a huge community surrounding your platform, so there isn’t much Google can do about your questions. However, if the vendor has a good support mechanism -- MoSync has support forums, and usually someone from MoSync replies within a day -- that makes a developer’s life easier.
Sometimes you don’t even know if a feature is supported or is in the roadmap and will be supported, or whether you should try to port it yourself. (MoSync is open-source.) In such cases, vendor support becomes very handy.
Also, you should check what exactly your requirement is. If you are going HTML5, HTML5 Hybrid (HTML5 + native low-level code) or native low-level code generator, depending on your requirements, you may be able to stretch yourself a bit and find a solution that works best for you.
Are there any drawbacks to cross-OS development tools? For example, some developers say that the tools work better with some OS’s than others, or that their app looks the same across all OS’s instead of taking advantage of unique features in each OS.
H.T.: Yes, there are! I would say -- not with respect to the shortage of effort from cross-platform development tool developer -- but it’s because of OS developers themselves. Each OS comes with its own SDK and its own set of rules. X-platform developers have to mend themselves to navigate along those rulebooks.
You can’t be very specific about a particular OS in your app; otherwise you just lose the whole purpose of going X-platform. There was a particular scenario where we wanted to port OpenCV onto MoSync but came to know OpenCV requires multithreading support while MoSync does not allow that. In such cases, you decide to go along to native SDKs.
Are cross-OS tools helpful when developing across different device types, such as smartphones and tablets? Or do you have to do a lot of additional manual coding to make sure that an app looks good and works well on both tablets and smartphones?
H.T.: There is a learning curve here. Tablets and smartphones are considerably different when it comes to screen resolution. The resolutions of the iPad and iPad 3 are a lot different.
These tools try to give you an automatic selector profile to fit in the phone/tablet where you will be running your app. However, they are still not very successful. Normally, you select the devices where you are going to give support on, then make appropriate graphics and embed them in. Yes, when on cross-platform tools, you have to do some manual coding to try and fit with every type of device.
How much do cross-platform tools reduce your development time? And does the development time decrease even more as you become more familiar with how the tool works?
H.T.: It reduces development time by 75 percent. You don’t have to keep separate teams for Android, iOS, WP7, etc. It’s true you have to make some adjustments for each platform, but that is really far less than in terms of both time and cost.
MoSync’s SDK is a low-level library. The major learning curve is to know what it is supporting and how you should work around features that are not working perfectly yet.
There is not a large community around it still, so for absolute beginners there is a learning curve. But if you are a C developer, it really takes a couple of nights, and you are developing your way. A little more documentation, tutorial blogs, questions on forums -- there are a lot already -- and the learning curve will become smooth as well.
Tim Kridel has been covering all things tech and telecom since 1998 for a variety of publications and analyst firms. Based in Columbia, Mo., he still enjoys the teenage hobby that led to a career in writing about technology: ham radio. Tim is a frequent contributor to Digital Innovation Gazette.