Deciding whether you should use a cross platform mobile development framework, and also which one to use can be confusing. In this article I cover how to decide both of these questions using a simple and clear decision flow.
This is the second in a 2 part series aiming to provde the ultimate guide to cross platform mobile development. Part 1 gives coverage to the pros and cons of each of the top cross platform mobile development frameworks, and part 2 gives a simple method for making your decision.
The approaches I’m covering in this article are developing natively, PhoneGap, Appcelerator and Xamarin. There may be other frameworks out there but these seem like the best options at the time of writing this article.
One final thing to mention before we start is that I haven’t really covered games development as part of this article. Games development is a fairly different beast to standard app development, and has a whole other set of factors.
A big part of deciding whether to use a framework and/or which framework to use is prioritisation. You have to prioritise what is most important to you when developing your app. Is it processing performance, user interface responsiveness most important, or is having a single reusable code base. Is it important to have support for all major platforms or just one.
The cross platform mobile development decision model below is a simple flowchart that aims to guide you through this process, and get you to the best possible decision for you and your project.
Careful thought needs to be given to each of the decisions within the model, and it is essential that you really understand a few things:
For the vast majority of mobile apps processing performance is not an issue. The difference in processing performance between each option will be almost undetectable unless you’re doing heavy calculations, heavy processing (like image processing) or games programming. So unless you’re doing one of these, processing performance shouldn’t be that important.
User Interface Responsiveness
When most people think performance they really mean UI responsiveness – i.e. how well the user interface responds to user input and how responsive it stays. Through all of my testing I have found that the only approach that see’s a noticeable downgrade in UI responsiveness is the PhoneGap approach. In this case the user interface is still pretty responsive, but there is often a noticeable lag or jerky feel. In all other cases the user interface remains very responsive, and there is little noticeable difference between Appcelerator/Xamarin and native.
More abstraction equals more bugs
This is kind of controversial but is a definite factor that often doesn’t talked about, but adding a layer of abstraction (as is the case with any cross platform mobile development framework) introduces more opportunities for 3rd party bugs. This is in no way meant to say any detrimental about the teams involved, but bugs exist in every product.
For example if the Android accelerometer interface has a bug, Xamarin/Appcelerator/PhoneGap will also exhibit that bug, additional they may exacerbate that bug as fixes will not only have to pass through the Android release cycle, but also the Xamarin/Appcelerator/PhoneGap release cycle. Furthermore Xamarin/Appcelerator/PhoneGap will likely introduce some of their own bugs leading to more bugs overall.
Load Times & App Size
One final warning is around app load times. All of the 3 frameworks discussed in this article will likely introduce an element of increased load times and increased app size as they require you package and deploy their framework with your app, and load it when you launch. The impact may be minimal or not important, but it should be considered.
The Cross Platform Mobile Development Decision Model
The Cross Platform Mobile Development Decision Model is a decision flow to help you decide whether to use a cross platform framework, and if so which one to choose:
I hope you’ve found this series useful – I’ve found myself stumbling about trying to make this decision numerous times and taking this approach has really helped clear my head. Please feel free to leave a comment with any suggestions and I’ll do my best to respond and accommodate them within the model.
Embed This Image On Your Site (copy code below):