I don’t want to repeat myself… I don’t want to repeat myself
Even when devout practitioners meticulously hand-copied sacred texts, variations and errors still crept in. With multiple platforms in the mix (iOS, Android, Windows, and web) do you want all of the business rules and logic recreated for each platform? If so, know that something WILL be lost.
With Xamarin mobile application development, apps are written in C# and compiled against the .NET runtime. This means that all of the important, mission-critical parts of your application only have to be written once – having that code in a Portable Class Library (PCL) means that it’s not a copy of the same code on another platform, it is the same code.
When the rules change, that PCL is recompiled and shared between applications. Using the same language, APIs, and data structures allows you to share an average of 75% of app code across the supported platforms. For mobile applications on Android, iOS, and Windows, this percentage can be increased by utilizing Xamarin.Forms for building common UI. Remember, sharing is caring … which means no duplication!
Your users are already being trained. Don’t rearrange the keys on their keyboard!
How much are you budgeting for training? Not just money – time as well. Training ranks right up there behind User Documentation as one of the most rushed parts of a project. It’s too often crammed into those last few weeks before roll-out and depends heavily on the project being on time, which is rare…still never enough time or money.
Training IS very important but what if you didn’t have to do all of it? Or pay for all of it? What if your users would train themselves eagerly? Done. At least, partially. You have to do your part (always a catch). When you consider mobile applications, don’t ignore the millions of apps on the App Store. You don’t have to try them all, just know that they exist. Know that they are being used and consumed all day, every day and use that to your advantage.
Each platform looks and behaves a certain way. Your users are training themselves every day on how to use their platform of choice: tabs, hamburger menus, slide-overs, carousels. They are swiping, flicking, pinching, and zooming. Do you want your data fast? Then don’t throw clunky UI roadblocks in the way! When you force all of your applications to look and behave the same way across multiple platforms, then you are clearly stating that you either want to spend more time and money training your users or you don’t care how long it takes them to accomplish their task.
Don’t believe me?
Hand an Android device to an iOS user- or any combination of platforms and users of another platform. Sure they can do it, but it slows the user down. Build applications that make sense to your user.
Xamarin starts with C# wrappers around the native UI APIs. The application looks like the native UI because it is the native UI. It is compiled and not interpreted, so it is fast and can take advantage of any hardware acceleration on the device. Users hate sluggish apps – don’t give them one!
The UI code can be written independently for each platform or it can be written using Xamarin.Forms which provides for a common UI language that translates to native controls on the platform. Xamarin.Forms can be written as C# code or using XAML, an HTML-like markup that makes building a unified UI much easier. For more information about XAML in Xamarin, see this blog post.