So here we are, almost a year after we embarked on our first Xamarin project and we have successfully delivered said project and become a Xamarin Authorised Consulting Partner for good measure. But what have we learnt and what are our thoughts about the platform after using it in vain? Hopefully we can shed some light on these questions but first let’s go back to the beginning…
The year was 2007 and Rhianna was telling anyone who would listen about her Umbrella, exciting as it was, of more interest to us was the launch of the iPhone/iOS and Android, as we know it today. Before long we saw Apps emerging for all sorts of different uses – travel, finance, insurance, gaming, productivity, health, education and so on. Soon, organisations of every size had an App and they became a part of daily life for people across the globe.
The development of these Apps was fairly straight forward – each platform had its own Software Development Kit (SDK), Integrated Development Environment (IDE) and emulator/simulator. If you wanted an iOS App you would find an iOS Developer who would use XCode and their Mac to develop the App using Objective C or later Swift. Similarly if you wanted an Android App you would find an Android developer who would use Eclipse or later Android Studio to develop an App using Java. The problem was many organisations wanted an iOS App and an Android App (some even a Windows Phone App – I’m saying nothing) but were finding that it was expensive to develop separate Apps. The Apps typically implemented the same business logic, accessed the same Web APIs and to a degree had a similar User Interface (UI).
The team behind Xamarin (who had previously worked on Mono – a cross platform implementation of the .NET framework) saw this problem and sought to provide a solution. Using their work on the Mono project as a starting point they looked at how C# and .NET Framework code could be compiled to native platforms including iOS and Android. Several years on and Xamarin has evolved quite a bit. Xamarin are now a subsidiary of Microsoft, as such they have benefited from increased funding, added R&D and better support, all of which has resulted in a more stable platform, better development tools and more features.
We already had tools like PhoneGap and Ionic, which allowed us to develop cross platform Apps but the problem was they were not truly native. All we were doing was wrapping a responsive HTML5 website into an App, as such it did not look or feel native, was not as performant as native and could not make full use of native device functionality or APIs. Xamarin however produces a fully native App, the UI is fully native, the performance is as good as native and all native functionality can be leveraged without exception. Xamarin works by wrapping the native libraries with a .NET wrapper so you can access all the native features using C#. Additionally, it provides a framework to allow us to build Xamarin Forms Appz along with many useful libraries and API’s for tasks common to mobile Apps.
Later this week, in part two, we'll look at why all that technical jargon means Xamarin is the perfect choice for cross-platform development. And don't just take our word for it, remember, we're a Xamarin Authorised Consulting Partner!
Tom is hugely popular with clients because he understands their needs and translates them into outstanding solutions. With particular specialisms in software integration and app development, Tom enjoys sharing his knowledge and contributing to our blog.