我们计划在下一个大项目中采用Xamarin技术。
看起来Xamarin.Forms已经足够成熟,可以用于生产项目。
但我仍然想听听你们专家的建议-我们应该选择使用Xamarin.Forms还是采用带有MvvmCross架构的Xamarin?
这个项目对我们的客户来说非常重要。
我们大约18个月前尝试了Xamarin.Forms,因此这个经验可能已经过时,但我们发现Xamarin.Forms不适合生产项目。当然,在多个平台上快速运行基本数据捕获应用程序非常容易,但我们发现它的UI功能受限,最终我们不得不在许多地方编写自定义渲染器,这使代码变得更加复杂。
依我之见,Xamarin.Forms试图以错误的方式解决多平台问题 - 通过尝试为每个平台的UI元素提供共同的包装器。这意味着您总是能够使用Xamarin out-of-the-box完成更多工作,而使用Xamarin.Forms则总是要与最常见元素的最低公共分母实现进行斗争,同时需要为更高级的UI编写自己的代码。
相比之下,MvvmCross方法旨在将尽可能多的业务逻辑整合到单个库中,同时使您可以自由地在每个平台的UI中实现所需。您可以将80-90%的代码放入共享库中,同时完全自由地为每个平台实现所需的UI。在我看来,这是一种更清晰的解决多平台问题的方式。
Xamarin.Forms是一种与MvvmCross不同的技术。一切都取决于项目的大小和界面的复杂程度。我建议阅读这篇文章 - 它应该能给你一些想法。