It is a time when we are more connected than ever. Every tiny bit of information is reaching us through various digital sources. If we look around, we are tied to several devices which are now acting as our extended sensory. Of them, mobile handsets are the most impactful. They have revolutionized the new age communication.
In a research, it was found that 92% interaction with phone devices in 2016 was through Apps. Apps are definitely a favorite over web browsers. For a software developer, it is difficult to ignore mobile App development.
There are primarily three platforms in Devices – Windows, Android and iOS. While Windows and Android dominate on a range of laptops, tablets, TV, watches and gaming consoles, iOS and Android dominate the phone market. For any developer, three platforms is a lot of learning. Enterprise often find it costly to make presense on all the platforms.
Xamarin comes to rescue!
Xamarin is a cross platforms mobile app development platform. It enables you to build native apps with a shared c# codebase for multiple platforms. Xamarin platforms makes native API access possible. What this means is, your app look and feel the same as native to the platform.
You can build apps for Windows and MacOS, Android and iPhones, XBox, Hololens, Watches, TvOS…
Xamarin also has a test lab of 2000+ real devices for automated testing.
Xamarin beta apps can be distributed through HockeyApp, allows you to collet crash reports, coverage analysis, bug reports and feedback.
With Xamarin you write application in C# using Visual Studio on Windows or Mac using .NET library that provides features and APIs across different platforms.
Two Approaches in Xamarin Architecture
First approach is to have platform specific native UI and shared business logic. Native controls and native design patterns, allows for sharing 70% of code.
Second approach is to use Xamarin Forms. It allows for more code sharing through shared UI definitions along with shared business logic. In this approach, appropriate native controls are created from this UI definition defined through the Xamarin Forms. Everything is written in C#.
Controls defined in Xamarin Forms UI definition generates platform native UI controls.
Xamarin platform also delivers native performance by generating platform specific code. Ahead of Time (AOT) compilation for iOS and Just in Time (JIT) code for Android.
There is complete API coverage for each platform in C#.NET. Xamarin also provides C# version of all platform specific types and C# patterns.
Xamarin is Open Source too!
Xamarin has come a long way from 2011 when it was launched. It has evolved and matured as a project. You can install Visual Studio 2017 Community Edition and select Xamarin from it. Xamarin is also available on Mac.
Xamarin on Mac allows you to build apps for iOS, Android and MacOS. Xamarin for Windows allows to build apps for iOS, Android and Windows. To build for iOS or Mac, you need a Mac on the network to which you Xamarin will connect and build.
These apps can be installed on real devices or emulators. Just that iOS simulator will run on Mac machine but you visualize it on Windows.