Mobile app developers are always faced with one of the most challenging decisions when building an application: should I develop native or cross platform? While there are obvious pros and cons for using either approaches, a lot of the determining factors lay in the app’s purpose and audience. Let’s examine the difference between native development and cross-platform development and the tools/frameworks used for them.

Native Development:

Native is code compiled for the specific devices using fixed development languages.

  • For iOS,  Xcode is used as the development tool and Objective C as development language.
  • For Android, Eclipse or Android Studio is the development tool and Java as development language.

Cross-Platform Development:

In cross-platform development, code is used and compiled for multiple platforms. Usually, HTML/CSS and Javascript are used as development languages.  Some solutions will compile it into native code, but they are never truly native.

  • Example Solutions: RhoMobile, Appcelerator, PhoneGap, MoSync.

Why choose native?

  1.  Better Performance: When coding with the indented programming language, you have access to the full device APIs. Though cross-platform solutions offer native APIs to use, you will have to wait until it is released in order to use it. When it comes to animations and gestures, native code will be more polished and slicker than cross-platform solutions.
  2. Better Solutions: There are some cross-platform solutions that will compile code into the native language, but none of them compile it to completely native so it becomes very hard to do the custom changes for the specific platform for the developer.  In native, there are less serious limitations between creativity and platform capabilities, which provides a developer better solution.
  3. Better Support: Developers we work with often say that they like to work in native code because it is easier to get help. They can go online to forums like Stack Overflow and quickly get answers since there are so many more people writing native code.
  4. Better Deployments: Issues with deploying  cross-platform codes are more prevalent compared to the native deployments because of its built in packages. Additionally, applications tend to suffer from real performance pains during run time.

The Verdict

When using cross-platform solutions, fragmentation is a major concern developers must overcome. The notion of a one size fits all approach to building apps is not realistic.

What do you think?  Let us know in the comments section below.

Join the discussion One Comment

  • CrossPlatformBaseJumper says:

    I couldn’t disagree with you more.

    My own sense is that cross-platform mobile development is currently at an early stage comparable to when compilers in general were machine specific. Surely the cross-platform solutions we are seeing now (although arguably primitive in some respects) will prove to be the ancestors of future hardware independent mobile solutions. And that future may come sooner than anyone imagines.

    The future proofed professional, though currently dedicated to one or another platform, must remain ready for that inevitability.

Leave a Reply