The .NET community has been fractured for quite some time when it comes to mobile development, and a large amount of hate debt has been banked as a result. Products like Xamarin have been given the appropriate amount of adoption because they have a more agnostic vision of how .NET could work in a truly x-platform / x-device arena.
However, the approach to date isn’t an easy stroll down success lane, as to develop a mobile app even with Xamarin you’re faced with two decisions to begin with. Xamarin “native” or Xamarin “Forms”, each having their own set of pro’s and con’s attached from a pure “developer-centric” perspective.
Next decision after that is how do you design for three platforms (*maybe two*) and still retain constancy – yes I said constancy, not consistency. On one hand designing apps to work inside iPhone is different to how they work in Android – but only up to a specific context (as tradeoffs and split thinking naturally then occurs).
In order to achieve this, you have to essentially begin the same set of compromises you would make with the web, forking your feature design/development vision to accommodate and absorb the various limitations imposed on each platform in accordance to the restraints Xamarin imposes on top (ie there’s an element of decay implied).
To compound issues further, you then have Xamarin not really adhering to the previous iterations of XAML (aka Avalon) and whilst it looks kind of like XAML, it’s really in many ways just XML with limitations (ie you can’t really animate with it using the same Storyboard composition as you once had with Silverlight/WPF and so on). Xamarin’s XAML is the panacea we want but isn’t the same.
Now you have to programmatically design your composition with either a designer’s comps on your second monitor as a guide or worse, the designer is over your shoulder offering feedback loop hell.
Xamarin failed thus abandon it?
Hell no, Xamarin has all the ingredients one would need to really get the .NET x-platform / x-device story going, in fact, I’m more frustrated at the post platform execution than its original foundation itself. The secondary parts above can easily be fixed provided there’s some stronger thinking imposed about how “creative influence” applies to the composition of design – that is to say, at what point does the designer have free control over composition without haggling with a developer on limitations artificially imposed due to what i can only guess at being resource allocation issues on Xamarin’s part.
This, in turn, means that one would need to approach the composition of a Xamarin vNext with the idea or intent of using XAML/C# marriage the way .NET gods intended. What that means to say is that if you took the same conceptual develop/design pipeline that .appx or .xap has today and applied this to Mobile development this, in turn, unites the developer & designer workflow under the one constancy based banner, which in return reduces less feature editing / design cut-aways.
Why is this important?
In 2007, we were faced with a mission to get Designers more engaged with Developers, and that’s why Silverlight/WPF was born. We had small amount of success but in truth, we were side-tracked on conflicting priorities and poor management to really dig in on that same set of problems. Today, the various technical platforms have shifted but the core fundamental issue hasn’t gone away, in fact, it’s gotten smarter about how the two worlds collide – sadly, Microsoft has never really gotten an invite to that discussion due to its retreat positioning.
Microsoft’s answer, in general, has been to remove the designer from the equation given its complexity, instead, they gave developers a cookie-cut style template titled “metro/modern UI design” (aka Paint by numbers developer art) thinking that if you reduce the composition of design to basic minimal aesthetics, you, in turn, reduce the burden or need to have a designer influence the creative process.
That strategy is an utter failure and I’d promote the theory that the reason why Windows Phone has failed as a product is solely due to the UI (given the phone hardware is perfect, development SDK is the easiest by far but the design integration .. too boring, too hard).
Xamarin merger with Microsoft now has the potential to reboot a company’s mobile strategy in a way that it needs more than ever before, however, if the two worlds continue to solely double down on “developers, developers, developers” that don’t factor in “designers, designers, designers” all we really have achieved now is a license model reduction, better Visual Studio support, stronger echo chamber but still a designer stalemate, resulting in continued “developer-only” circle jerk sessions.