Native vs. Cross-Platform Mobile App Development

Cross-Platform Framework Comparison

Have you ever wanted to start on a mobile project but didn't know where to begin? The Mobile genre is such a huge space, which is why I am going to break down the most popular paths a developer can take.

The 3 most popular frameworks are:

  1. Native (iOS, Android)
  2. Xamarin
  3. Apache Cordova

Native

Pros
  • Code runs faster
  • New features are integrated more quickly and easily
  • Hardware-related features such as gestures, multi-touch events, and geo-location tracking are much easier to implement with native technologies
  • Easier design of animations and UI intensive apps
Cons
  • Higher development costs
  • Creating a separate application for each platform; writing code from scratch each time
  • A higher time frame to deliver a project

Xamarin

Pros
  • Near native performance
  • C# awesomeness shared across all platforms (LINQ, Async/Await is always a plus!)
  • Re-use almost 80% of code
  • Programmatically share UI across all platforms or optionally design UI in their native environments (the preferred option)
  • Can handle many native API's such as geo-location and multi-touch
Cons
  • Some software overhead due to linking of codes and referencing between .NET and target platforms
  • Limited tutorials for certain features
  • Longer loading times

Apache Cordova

Pros
  • Supports 7 Platforms (Apple, Android, Windows, Blackberry, Symbian, Bada, webOS)
  • Single standard UI language (HTML5, CSS, Javascript)
  • It's Open Source
  • Usually the cheapest option
  • Shorter development time
Cons
  • Look and feels very much like a website
  • A lot of CSS work will be required to get the look and feel of a native application
  • Limited native API functionality
  • Slower performance
  • Lack of documentation and tutorials

The Winner?

After analyzing the pros and cons of each platform, which framework comes out on top in this race?

When to Choose Xamarin?

If you're familiar with .NET, Xamarin is a great option because C# is an awesome language and you get to use it for both client and server. Xamarin is even able to manage large scale projects even when time is a factor. Though complex UI is better in an native environment, Xamarin provides the option to use iOS Storyboards and Android layouts to get as close of a native UX as possible!

When to Choose Cordova

If you're a web developer, Cordova is a great option as it utilizes familiar tools with addition to some native API functionality. Cordova is best when used for smaller projects and when development time plays a major role. Generally the development costs are low. Cordova does well when not requiring heavy native API functionality or and willing to sacrifice some native UI design.

When to Choose Native

If you're familiar with native languages such as Swift or Java, then going native is your best option. There are plenty of advantages of doing native when it comes down to performance. Native projects are also best for large scale projects, but are very time consuming and can be very expensive.