From an open source initiative to an integral part of Visual Studio 2015.
Although it may seem that Xamarin is still a new kid on the block, it has recently celebrated its 4th birthday (celebrated its 4th birthday), so it is about time that we looked at the history of its evolution from an innovative open-source project to its present state.
Xamarin’s foundation was laid in an attempt to create a .NET implementation for UNIX systems. However, as the development moved on, the project steered away from the initial direction to become an emerging industry standard for enterprise mobile development and eventually turn into an important component of the newest Visual Studio 2015.
Over these years, the people behind Xamarin have been pushing the envelope to sail away from the remnants of the not-so-commercially-successful Monotouch library, but the community is still divided over the question of whether Xamarin has really brought the much needed gulp of fresh air into the realm of enterprise mobile. Some say that it was just a lengthy experiment of renaming standard Monotouch components to create a seemingly new product. The traces of Monotouch are still found in Xamarin, so it may still have a long road ahead before it becomes truly unique. However, its role in today’s enterprise development world cannot be underestimated and the technology is definitely worth giving it a closer look.
Xamarin Forms – a promising, yet controversial product
Around a year ago, Xamarin introduced Xamarin.Forms, an all-new and highly promising cross-platform UI technology that was immediately spotted by the market and its key players, and in fact appeared to be so powerful that Microsoft included it into the standard Visual Studio 2015 package. The product is now being advertised and viewed by Microsoft itself as a comprehensive toolkit for building complex cross-platform and enterprise solutions. To gain even more exposure for the Forms, Xamarin went at great lengths to secure the support of the legendary Petsold who is currently involved in the further development and promotion of the product. The global development community has had ample time to study the platform and test-drive it in actual application development, and the reaction to its findings was not 100% positive and unanimously super-enthusiastic.
The first problem that seemed to be apparent was the dreadful performance of applications based on Forms (https://forums.xamarin.com/discussion/20092/critical-performance-issue-in-xamarin-forms-layouts) and the lack of an efficient workaround for this problem. JetBrains reported numerous problems while trying to implement the support of Xamarin.Forms into a new version of Resharper for Visual Studio 2015.
The product seemed to be unstable, slow and begging for optimization. Any non-standard component or element like a gesture or animation required a custom renderer to be created, and it was not an easy task. Development of any renderer with a more or less complex logic in most situations required deep analysis and reverse engineering of the forms that came with no source code. A decompiler in this case was of little to no use, since it didn’t reveal everything and wasn’t particularly convenient.
However, every cloud has a silver lining, and so does Xamarin. While working on various custom renderers, we encountered a great number of elegant and well thought-through architectural solutions that we couldn’t but admire.
A glimpse into the future
Despite the relative immaturity of the platform, we still believe that it’s got a very bright future. It is the only viable alternative for a great variety of projects, especially those that are based on a .NET server backend and shared code for clients, or cross-platform apps, or simply for developers with a .NET background looking to jump-start a new branch of their career in mobile development. It is also a perfect pick for building apps with great-looking animated UI’s. And the best thing about Xamarin is that all these blows and whistles, all this beauty and interactivity can be added fairly quickly and easily in comparison with other platforms or frameworks.
We surely hope that Xamarin’s alliance with the Redmond giant will allow the company to finish their work-in-progress and make the platform as reliable and convenient as it was supposed to be. Moreover, it may give them the leverage for solving problems in a more timely fashion – similar to the way they handled the recent issue with a ban on publishing Xamarin-based apps in the App Store. In a perfect scenario, we would like to never see anything like that happen again.
Developing you apps in Xamarin
Now, if you’ve heard and read enough about Xamarin, and think that it’s the best pick for your next project, but don’t have this expertise in this area, it’s about time you started looking for a reliable vendor. Xamarin may be a relatively young technology, but there are companies out there that either know all about it or pretend to be know-all-all, universal type of developers. Apparently, we recommend doing business with teams that have been involved with Xamarin since its early days. This technology, with all of its growth issues, is far from being an industry standard adopted by every company and used by millions of developers, so working with a software development partner with a proven track record in developing Xamarin apps is invaluable. Newcomers may not know that, for instance, the choice of Xamarin forms over standard iOS/Android components is extremely important, just like the choice of PCL components that, if picked incorrectly, may cause considerable lags during the start of the app. If your developer does not know the minimum of Xamarin’s tips and hints, you may be facing a possibility of a very disappointing outcome for your project.
To sum up, we believe that Xamarin has humongous potential that is yet to become truly visible. It’s a powerful platform as is, but with all the support from Microsoft and other key players on the market, it has every chance to become a standard solution for cross-platform development very soon.