The Problem With Cross-Platform Mobile App Development
Five questions you should ask before starting a new project.
Staring into the abyss of mobile development can be scary. The development options are numerous. Should you choose native? Cross-platform? Web app? Naturally you may want to use your internal development team, but if you don’t already have native mobile developers you may be considering other options.
Before starting your new project, be sure to ask these important questions:
1. Can you give up control?
The output is directly handled by the cross compiler, and you are not guaranteed that it will be accurate or work as expected. When working natively, you have direct control of the source and expected output.
2. Does native UI/UX matter to you?
Native UI and UX are an important part of mobile applications. Without this, an application can fail to delight and retain your users. Cross platform applications try to create a common UI on all platforms. But this has the unfortunate side effect of looking out of place on all platforms.
Web applications also cannot access the rich and constantly changing SDK exposed by iOS and Android. If you need push notifications, access to sensors, or run in the background, you can effectively rule out a web application.
3. What are the costs?
By reducing codebases, are you truly saving any money by utilizing current in-house developers? Many cross platform developers suggest that the savings comes in the form of core, shareable logic.
But most of the heavy lifting of a good mobile app is in building UX code. If you have to do in-depth and complex logic client side, then you are potentially architecting your entire mobile application incorrectly. Complex logic should be done server side. Re-evaluate your architecture decisions.
4. Is it stable?
Relying upon a third party such as PhoneGap, Titanium, or Xamarin gives you no guarantees that they will continue to thrive and support cross platform development. At any time support could be dropped, if the company goes out of business or is late to update their software to support the newest OS.
Are you ready to potentially re-develop your entire codebase at any given moment?
Not only does cross platform not offer any true stability, it also adds code overhead. To achieve the results of cross platform development, many of the cross compilers will need to link, and add unneeded libraries. This in turn increases your binary size and negatively affects your apps responsiveness (a key attribute in mobile).
5. Is it well supported?
Support and community are a developer’s best tool. Native development ecosystem and communities are spread throughout the entire internet and local development groups. In contrast, cross platform communities are typically limited to company owned forums. This may not be enough when your development team finds a situation that requires research and support from outside their own knowledge base.