NATIVE VS CROSS-PLATFORM

Cross-Platform Mobile 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. Their 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.