Developing apps for multiple mobile platforms is one of great challenges in software development. Technologists want similar performance across all platforms and device form factors, and they want to take advantage of the unique features that the leading mobile OSes – iOS, Android, and Windows – have to offer. From an efficiency and cost perspective, cross platform development seems like the way to go; however, as the former head of the Windows division at Microsoft, Steven Sinofsky, points out in a recent podcast, the cross platform approach is fraught with challenges. There isn’t such a thing as a 100 percent cross platform app. You can get close, but the last 20 percent of any mobile project is always custom to the OS and devices you’re building for. So the real question is, when do you decide whether to go cross platform?
Here are the questions you should ask:
- Does my application have high production values and performance needs? In other words, is it graphics-rich and demands a lot from the OS and hardware or utilitarian and purpose built for efficiency?
If it’s graphics intense and needs high performance on a variety of devices, you should go native development.
It your app is more forms-based and designed for data capture or delivery, then cross platform can work well.
- Who’s the audience for your application?
If you are targeting a wide audience using a wide variety of devices, then native development is probably going to work better, because you’ll need to leverage every ounce of the OS’s power to satisfy a diverse set of needs. Plus, your application may have to run on many versions of an OS, which is harder to accomplish with cross-platform tools.
If you are targeting a small set of devices and the application functionality is tightly defined and limited, cross platform development is possible, because you have tight control over the devices and OS versions that are in the hands of your users. An example of a good cross platform application could be a field service application for HVAC technicians, where the number of options and actions must conform to company policies in order to deliver service efficiently to customers.
- What’s your budget?
Sometimes, native development is the preferred course, but a company just can’t afford it. Let’s suppose it costs $100,000 each to develop iOS, Android, and Windows versions of your applications, but you don’t have a $300,000 budget. The selection of the right cross-platform tool could get you 80 percent of the functionality at 50 percent of the price. Your application might not be optimal, but, if it gets the job done for your user base and they aren’t complaining consistently, your application is a success.
- Which cross platform tool should I use?
This might be the trickiest question of all for several reasons:
-
- The tools change monthly, so what was great six months ago can be a laggard today. Do your research – get trial versions, play with the functionality, and make sure you’re comfortable with how the tools work.
- Almost every cross platform tool is based on a core language, such as Java or C#, and some tools also come with pre-build routines, which make things a lot easier to accomplish, but can’t be used outside of that tool.
- Finally, you want a tool that is popular enough that it will continue to be aggressively enhanced and marketed over the next three to five years.
- What’s the ideal development team?
Finally, let’s talk about team composition. By using cross-platform tools, you can lessen the need for deep subject matter experts for each mobile OS. You also need to have fewer people on board to do the job. The downside is that you’re never really an expert in how your own applications work. In a native environment, IT organizations will prioritize development – beginning with the most needed platform and set of devices first and then moving on to the less necessary platforms. Once the first application is in production, part of that development team usually peels off to work on the next app. Over time, you’ll build up a minimum necessary level of expertise in every mobile OS you need to support, but you’ll also likely carry a larger and more expensive in-house team than if you were developing using cross-platform tools.
Mobile Development and Offshore Model VIAcode frequently serves as the mobile development team for companies that need to run their businesses or serve their customers through mobile applications. Whether it’s VIAcode or another offshore provider, the offshore model has a number of advantages:
- App development shops are generally up to date on the leading cross-platform tools and can quickly help you select the right tool for your app if cross-platform development is applicable.
- Companies like VIAcode also have deep expertise in all of the major mobile OSes that you don’t have to assemble internally.
- You can keep the same team working over the course of several years and get similar productivity to onshore teams at 40 to 50 percent below onshore rates.
- If you have development spikes, you can ramp up your team quickly without having to hire employees.