A perennial problem with software development has been the complexity and challenges associated with writing code that spans over multiple operating systems and hardware platform. Going all the way back to the earliest days of computing, making portable code that can do the same thing on different machines has been a challenge. In early days, the introduction of new hardware often meant programmers had to learn whole new programming instructions and techniques.
The challenges were mitigated a bit when Dennis Ritchie invited the C programming langue in the early 1970’s. C was a human-readable language that used a compiler to translate to machine langue. So rather than programming directly in machine or assembly langue – creating code that only worked on that machine’s architecture – developers were able to create a single codebase that could compile on multiple machines.
This worked great when computing hardware and software was more simple, and all basically did the same thing: math. But over the years computers have become increasingly more complex, displaying graphics and managing hardware that no one would have dreamed of back in the 1970’s.
Today, everyone has a computer in their pocket, plugged into their TV, on their lap while they’re sitting on the couch and on their desk at work. All of these computers have different hardware and software. In the case of the big three operating systems (Android, iOS and Windows), the software differences alone are incredibly complex and require intense software version control management techniques in order to write applications that can run on all platforms.
Cross-platform software development is complex and messy. And it is into that world that Microsoft has delivered the Xamarin Platform.
The Xamarin Platform is an extension of Microsoft’s flagship development tool, Visual Studios, that provides a framework for cross-planform, native development with a shared C# codebase. What that means, is that a single C# program can be compiled to run natively on Android, iOS and Windows.
To give you an idea how extraordinary this achievement is, consider that each of these platforms require totally different programming languages. For iOS, Apple requires apps to be developed in Objective-C or Swift. Android uses Java (though there are tools that allow for C and C++). Windows apps can be written in just about anything, but there are specific APIs requirements.
Xamarin takes the portability concept pioneered with the C programming language and expands on it. With Xamarin, the C# codebase is actually compiled to a cross-platform implementation of the Common Language Infrastructure (CLI) – commonly known as Microsoft .NET. The CLI code is then compiled to the native language of the targeted device.
Here at Advantage Technology, our custom software development team has already started digging into Xamarin to stay on top of the cutting-edge cross-platform development tools available. For all of our software development clients, we will be able to deliver cross-platform tools faster than ever, from automation tool to consumer engagement apps.