The Ultimate Cross Platform Mobile Development Guide – Part 2

0 Flares Twitter 0 Facebook 0 StumbleUpon 0 Google+ 0 LinkedIn 0 0 Flares ×

Cross Platform Mobile Development

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.

Prioritisation

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.

Warnings

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:

Processing performance

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:

The Cross Platform Mobile Development Decision Model

Wrapping up

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):

  • Hi Matt, the article was pretty illustrative and a very good read. The focus has been on generic app development tools, the other half of this story is what you need for cross platform mobile development when it comes to enterprise apps.

    • I’m glad you enjoyed the article, I’d love to hear more regarding your thoughts around cross platform mobile development for enterprise apps.

  • Hi Matt, nice post…very well detailed about cross-platform development model and solutions. However convincing them to clients and settling good mean solution
    remains the bigger challenge. Clients may not understand technicalities when
    comparing Flash output with cross-platform. But we can convince them the use
    cases and us-abilities of cross-platform rather than its shortcomings with
    Flash.

  • jsauve

    There’s a flaw in the decision flow chart in the steps that ask “Are you familiar with C# or Javascript?” and “Which language would you rather work with?”. The decision for C# leads to Appcelerator, which of course doesn’t make sense. And the decision of “No” for C# or Javascript familiarity leads to Xamarin, which also doesn’t make sense. Other than that, great part 2 to this article! And nice flow chart (once corrected)!

  • Paul Callanan

    I intend to develop in Apple iPad format initially, under the New Brand:[ iSOUNDSEZEE*TM “makes music easy” ] & later attach to Android and other interactive devices with the Original Brand [ SOUNDSEZEE*TM “makes music easy” ] thus creating extra Money stream for users with various types of Tablets and Interactive devices. Double the Download rate and influence R.O.I. Over time.

  • Paul Callanan

    [ iSOUNDSEZEE*TM “makes music easy” ] looking for seed funding, E-mail for any Quoted detail, Wire Framing and Business Analysis, firstly followed by SIX structured developments to complete the Apps, which shall include four Apps all up with a Music Game App, Social App and earn Money for the user. Win, Win situation with [ iSOUNDSEZEE*TM ].

    • Hi Paul,

      Were you looking for some help with something?

      Matt

  • Saeed

    Thank’s a lot for your good article. I want develop app like chatting can you help me to choose native or cross platform? because i’m not sure cross platform service work properly and what kind of cross platform is more popular for solve problem?

    • Try following the chart through and ask yourself questions like what existing skills do you have? What platforms are you targeting? How important is UI performance?

      In general I’m leaning toward Xamarin (using Xamarin.Forms) at the moment, but it does have its problems such as bugs and bloated output file size

  • Michael Organ

    Don’t forget about V-Play! http://v-play.net/

    V-Play is a cross-platform development framework based on Qt that can be used to develop both apps and games. You can develop your game on any system and deploy it to every app store, meaning you never have to use native SDKs. One of the best features of V-Play is that it’s component-based. This means you write less code and get fewer bugs.

The Essential App Marketing Kit
Subscribe To My Newsletter To Get an Entire Chapter From The Book for FREE
Never display this again
0 Flares Twitter 0 Facebook 0 StumbleUpon 0 Google+ 0 LinkedIn 0 0 Flares ×