最近在使用 Xamarin 来开发安卓应用,而且之前有着比较多的 UWP 开发经验,所以决定写一个关于 Xamarin 和 UWP 的博客,希望我的一些经验能帮助到其他人进行开发,也希望把我遇到的一些坑都记下来,避免日后重复犯错。
Xamarin,或者说 Mono,是一套挺不错的跨平台框架,可以使用很多 .NET 的组件来节约重新学习其他平台的系统逻辑及语言。
比如说 Android,iOS 和 .NET 存取网络都用着不一样的系统接口,甚至系统的逻辑根本都不一样,.NET 里面超简单的 async 异步操作,到了安卓却要写个 AsyncTask 之类的。
Xamarin 让你可以使用 .NET 语言横跨多个平台,比如说你可以直接用 HttpClient 来做一个共用的 REST 接口库。这可以节省很多重复开发的时间,对于小团队绝对是一件好事。
当然 Xamarin 也不是万能,由于他的跨平台受制于 Mono Framework,因此建立安装包的时候就必须把整个 Framework 打包进去,结果即使是很简单的应用,安装包最小也会有 5MB 左右。
另外用 Xamarin 开发的应用启动速度会比原生的慢一点,但运行速度基本没有差别,如果对这方面有特别需求的人将以认真考虑一下要不要使用。
在我使用 Xamarin 开发的时候,我选择了使用 MVVMCross 这个 MVVM 的框架,他在安卓和 iOS 提供了类似 Xaml 的 Binding 功能,能够直接在 axml 里面进行绑定,尽可能的减少 View 的逻辑代码,大量的提高了代码的简洁性,同时让 ViewModel 也可以完全跨平台化。
因此接下来的文章都主要以 Xamarin + MVVMCross 来进行切入,希望能以 UWP 和 WPF 的开发习惯来分享 Xamarin 的开发经验,让大家能以最快的速度学会 Xamarin 开发。