Xamarin Forms
A while back I used Xamarin to do some light Android development for work (yes I used a multi-platform development tool to build an app for a single platform). And I did this because I had wanted to build using C# and Microsoft's IDE rather than Android's. I hate the android emulator, and while Eclipse is ok, it has nothing on Visual Studio. I don't see a marked difference between C# and Java so that wasn't a factor for me.
And generally, I had to applaud the approach. .Net is the perfect vehicle for this concept. Mono is the proof of that. .Net, like Java, is compiled on the fly and truly only requires a runtime that knows how to consume the output files. But, .Net actually takes things a step further with the Roslyn project and allows you to hijack the compiler. Now, you don't need even need a dedicated runtime. You could simply override the compiler to output a precompiled binary.
Xamarin, last I checked went the runtime approach rather than hijacking the compiler but doesn't change that having that added value is a huge potential benefit as well. And, frankly, I think the runtime approach offers the better value to 3rd party developers and end users (provided the project is maintained, which in this case it is).
But I didn't end up going far with it for one simple reason. User Interfaces needed to be written in platform specifics methodologies. I was frustrated at the time because I knew it was perfectly possible (if perhaps complicated) to use a similar logic to get a platform agnostic UI abstraction layer.
Xamarin Forms solves this. They now have a C# based UI abstraction layer. You can write your screens in C# and it will compile them into native platform screen elements on each target OS.
Now, the entirety of your application, where applicable (this sort of thing can only cater to the lowest common denominator of shared functionality), can be written in a single language and environment. The fact that that language is C# is icing on the cake as it is a more mature and modern language than either of Java or objective-C. But truthfully, if it the same were true on any other language it would still be of immense value.
Xamarin may have just helped revitalize Microsoft's image going forward. Mobile dev is the mainstream development market of the day and more and more pressure is being put on developers to target multiple platforms. Xamarin is arguably the best in this realm, and they rely heavily on Microsoft technologies. The framework they use started with Microsoft's .Net, they integrate with Visual Studio and they consistently work with Microsoft to deliver the best cross platform mobile development options.
This may drive more developers to Microsoft's platforms than anything MS themselves have done directly.
And generally, I had to applaud the approach. .Net is the perfect vehicle for this concept. Mono is the proof of that. .Net, like Java, is compiled on the fly and truly only requires a runtime that knows how to consume the output files. But, .Net actually takes things a step further with the Roslyn project and allows you to hijack the compiler. Now, you don't need even need a dedicated runtime. You could simply override the compiler to output a precompiled binary.
Xamarin, last I checked went the runtime approach rather than hijacking the compiler but doesn't change that having that added value is a huge potential benefit as well. And, frankly, I think the runtime approach offers the better value to 3rd party developers and end users (provided the project is maintained, which in this case it is).
But I didn't end up going far with it for one simple reason. User Interfaces needed to be written in platform specifics methodologies. I was frustrated at the time because I knew it was perfectly possible (if perhaps complicated) to use a similar logic to get a platform agnostic UI abstraction layer.
Xamarin Forms solves this. They now have a C# based UI abstraction layer. You can write your screens in C# and it will compile them into native platform screen elements on each target OS.
Now, the entirety of your application, where applicable (this sort of thing can only cater to the lowest common denominator of shared functionality), can be written in a single language and environment. The fact that that language is C# is icing on the cake as it is a more mature and modern language than either of Java or objective-C. But truthfully, if it the same were true on any other language it would still be of immense value.
Xamarin may have just helped revitalize Microsoft's image going forward. Mobile dev is the mainstream development market of the day and more and more pressure is being put on developers to target multiple platforms. Xamarin is arguably the best in this realm, and they rely heavily on Microsoft technologies. The framework they use started with Microsoft's .Net, they integrate with Visual Studio and they consistently work with Microsoft to deliver the best cross platform mobile development options.
This may drive more developers to Microsoft's platforms than anything MS themselves have done directly.
Comments
Post a Comment