Back

TechnologySep 26, 2016

Building Native Mobile Applications with Xamarin

Ryan Rawlinson

Xamarin is a platform designed to streamline development for both iOS and Android applications. The platform compiles all of the written code into native code for both mobile operating systems, and Xamarin is able to create the same native user interface (UI) components for both iOS and Android by using native APIs.

There are ups and downs to this approach, but depending on the size, complexity, and development timetable for a business’s app, using a platform like Xamarin can be a time saver and can provide the same native app experience you would receive by developing directly on iOS or Android.

Xamarin Makes It Easier for Development Teams

One of the great things about using Xamarin is C#. All development with Xamarin is done in C#. This relieves the burden of requiring a development team to program in both Swift (or Objective-C) and Java. By working with a single programming language developers can tackle different parts of the application at once. Xamarin also provides access to the native APIs for iOS, Swift, Objective-C, Android, Java, and .NET. Simply put, developers have access to everything.

Another great feature for developers is the use of a shared code base. It used to be that both iOS and Android had to have their own back end created for each specific platform. With Xamarin and C#, developers can leverage one solution with multiple projects and use a shared code base (REST services or DB access) that both native applications can take advantage of. With all those benefits, businesses should be able to see the ease of use Xamarin provides to their development teams.

Future-Proofing Made Simple

Every year, both iOS and Android release new updates to their SDKs, and each release can have a big effect on a business’s application. Xamarin provides same-day support for all updates released by Apple and Google. This allows developers to integrate the latest and greatest of each platform into their application. Xamarin also provides all necessary documentation related to any new feature included in an update. Developers never have to worry about not having access to new features when they are announced at WWDC or Google I/O.

Testing an Application for All Devices

Xamarin Test Cloud allows QA analysts to run multiple functionality tests on all iOS and Android devices at one time. Xamarin Test Cloud will point out any failures during a test run as well as any inaccuracies in the UI across multiple devices.

Xamarin Test Cloud is especially useful for testing applications that are going to target many different device types, OS versions, and OEMs. Android is particularly prone to testing difficulties, since it is an open platform and any OEM can extend the APIs provided by the operating system to fit their own needs.

The downside to Xamarin Test Cloud for a business is that it is priced outside of the normal subscription model for Xamarin.

There Are a Few Downsides

For all of the upsides discussed, this article wouldn’t be complete without discussing the pitfalls with Xamarin. One of the main downfalls is the translation layer when Xamarin is compiling C# into either Java or Objective-C. When something is not translated correctly, the error messages can be very ambiguous, and developers are forced to create a work around that might not actually solve the underlying problem. In this case, a company would be forced to release an app that contains a patch for a certain issue rather than a solution.

There are also many issues around third-party support, especially with Android. There are many popular third-party libraries Android developers use that are not available with Xamarin. For example, if a business has an application that is being moved to Xamarin that uses a specific library to create a special action bar, then the chances are pretty good that a portable class library does not exist in Xamarin for that library. This can be a problem if developers are porting native apps to Xamarin or have relied on some libraries in the past.

Xamarin is also a paid platform. From indie developers to full blown enterprises, Xamarin provides multiple subscription packages for companies to choose from. However, if a company already has an MSDN account with Microsoft, then Xamarin is now included in that subscription. The drawback to the subscription model is that both iOS and Android are not paid platforms. There are fees associated with deployments and app management. Apple requires a $99 annual fee from developers to publish applications to the Apple App Store and gain access to their developer console for app management. Google requires a one-time $25 fee to publish applications to the Google Play Store and to gain access to their developer console for app management. These fees are also required when using Xamarin for native app development.

Final Analysis

Xamarin has become very popular for companies looking to streamline the development of their mobile application, speed up the time to market, and target a larger audience with both iOS and Android. Xamarin is a platform that uses native APIs so developers that have experience with iOS or Android can jump in and hit the ground running.

With the ability to create a native experience, Xamarin can provide that much needed mobile app to a company that put it off due to the burden of having to maintain multiple teams for each mobile platform. If a business can get around the cost of Xamarin, then the benefits provided by the platform will help them create an outstanding native application.