Native Cross Platform Development for Mobile Apps
Recently, the market for native cross platform mobile applications has exploded. When considering multi-platform applications, many believe the predominate languages of Objective-C (iOS) and Java (Android) to be the only choice for native, mobile app development. In response, an entire new ecosystem of building platforms for the mobile, using a cross platform toolset has emerged over the past few years.
Xamarin 4, the latest product of its type of platform in this domain, it extends a unique array of capabilities. It offers a single language C#, class library, and runtime which works across mobile platforms hosting iPhone, Android, and Window’s Phone (with Window’s language already being C#). Xamarin 4 executes these tasks while continuing to compile native (non-interpreted) applications intrinsic of each platform.
Platform specific projects must reference the assemblies required to bind to each platform’s SDK (Xamarin iOS, Xamarin Android, or Window’s Phone) in addition to the core shared code project.
Each project must implement:
Application Layer: Platform specific functionality and binding/conversion between the business layer and the user interface
User Interface Layer: Screens, custom UI controls, and presentation of validation logic.
When it comes to deciding how the architecture of the development should be, there are two alternative methods for sharing code between cross platform applications, these include:
Shared Projects: Utilize the “shared asset project” to organize your source code and use with compiler directive as required
Portable Class Libraries: Create a “portable class library” targeting the platforms you wish to support and use interfaces to provide platform specific functionality
Recently we have employed Xamarin as a development platform for a telecommunications & diagnostics/optimization client. Our client’s application currently offers multiple simulations and tests through a single, android-based platform. We intend to build an improved user experience and an enhanced user interface for their application across multiple devices. The next generation of UI will be ported on Android, iOS, and Window’s platform by redevelopment utilizing Xamarin Studio.