快速开发跨平台应用之Xamarin技术

  Xamarin 介绍

  Xamarin 是一个容许开发人员有效建立可跨 iOSAndroidWindows 应用程序的开发工具集。Xamarin免费开源的,遵循 MIT (麻省理工学院许可证)协议,在github上的地址为:https://github.com/xamarin 。官方网站为:http://xamarin.com html

  简单的来讲,Xamarin 使咱们可使用 C#F#VB.NET 等语言开发原生 iOSAndroidWindows 应用程序android

 

  传统移动开发流程

  开发一个传统的移动开发程序都会有一些流程。好比像打开IDE,拖一些控件,编写逻辑,而后测试,发布。这些很是简单一两个小时就能够折腾完成。 ios

  可是,若是要开发一些大型的,商业级的移动应用程序就须要一些专业的开发流程。好比需求分析,UX 设计,UI 设计,开发,可用性测试,性能测试,以及数以千计的设备进行测试,再使用不一样部署方式完成部署。git

 

建立 UX 原型时,须要考虑应用所面向的各类平台的界面指南,这一点十分重要。github

 

 

 

 

iOS 使用左滑编辑,Android 使用长按弹出编辑框,不一样平台的设计语言都有差别。编程

 

 

设备有不一样的规格,平板,手机,尺寸等,设备也须要进行适配。架构

 

 

 

  肯定了 UX 以后,下一步是建立 UI 设计。 虽然 UX 一般只是黑白原型,不过在 UI 设计阶段中会引入并最终完成颜色、图形等。 在良好的 UI 设计上花费时间是很是重要的,一般状况下,最受欢迎的应用具备专业的设计。
  与 UX 同样,务必要了解每种平台都具备本身的设计语言,所以设计良好的应用程序在每种平台上的外观可能仍有所不一样。框架

 

 

 

  肯定了 UI 以后,下一步就是开发。iOS,Android,Windows 分别须要使用不一样的语言或编程方式进行实现,所以须要三种不一样的开发人员,来承担特定平台的开发任务。工具


  测试是应用获得交付过程当中一个重要的环节,一个没有通过测试的应用,质量是很可贵到保障。因此尤其关键。传统开发过程当中,各个平台下单元测试,集成测试,性能测试都是不一样的实现细节。所以跟传统开发类似,一样也须要三种平台的测试人员角色,来承担特定平台的测试任务。性能

 

  Xamarin 架构

  

 

Xamarin 的核心包含如下及部分:

  xamarin-android : 提供 Android SDK的原生开发包,用.NET托管语言如C#,F#等能够进行 Android 应用程序开发。github地址为:https://github.com/xamarin/xamarin-android
  xamarin-macios : 提供 Mac,iOS,tvOS和watchOS的原生开发包,用.NET托管语言如C#,F#等能够进行 Mac,iOS,tvOS和watchOS 应用程序开发。github地址为:https://github.com/xamarin/xamarin-macios
  Xamarin.Forms : 提供完整的跨平台UI工具包。用C#能够进行彻底原生的 Android,iOS 和通用Windows平台应用程序开发。github地址为:https://github.com/xamarin/Xamarin.Forms

 

  经过Xamarin 能减小应用程序总代码量

  从上图咱们看到,Xamarin 经过 .NET标准库实现业务逻辑层,模型层,服务访问层,数据访问层,接口层,数据层。一套代码被不一样平台引用。即:多个项目共享代码,重构操做始终更新全部受影响的引用。

 

 

 
        据统计,大部分使用Xamarin技术开发的应用程序。共享代码占比高达75%。
 

  Xamarin Forms 将共享代码量提高为95%

  下图是 使用 Xamarin Native 和 使用 Xamarin Forms 开发同一宽App的代码对比示意图:

 

  很显然使用Xamarin Forms 技术进行跨平台应用开发,将共享代码比率提高20%,达到很是恐怖的95%。

 

  总结

使用 Xamarin 开发应用程序的优势:

 

1.全部平台均可以使用C#编写,加速开发周期、节约成本
        Xamarin 使用C#和.Net框架来为任何移动平台建立应用程序。所以,您能够重复利用多达95%的源代码加速开发周期。 Xamarin 也不须要在开发环境之间切换:您能够在 Visual Studio 中构建彻底取代Android Studio , XCode 等开发环境。跨平台开发工具做为IDE的内置部分提供,无需额外费用。 同时,咱们使用 Xamarin 将无需再招聘Android、iOS、MacOS,Windows Phone 等开发人员,能够在必定基础上节约人力成本。
 
2.性能接近原生
        与基于Web技术的传统混合解决方案不一样,Xamarin 构建的跨平台应用程序仍然能够归类为原生应用程序。性能指标与 Android的Java(如此处所述)和 Objective-C或 Swift 的性能指标至关,可用于本机iOS应用程序开发。并且,Xamarin 的性能不断获得改进,彻底符合原生开发的标准。
 
3.本地用户体验
        Xamarin 自己就是原生技术,所以经过 Xamarin 编写的 UI 可以达到跟原生如出一辙的 UI 体验。
 
4.全面的硬件支持
        Xamarin 消除了全部硬件兼容性问题,使用插件和特定的API,以便在平台上使用通用设备功能。随着访问平台特定的API,Xamarin 支持与本地库连接。这能够提供更好的定制和原生级功能,并且开销很小。
 
5.开源技术与强大的企业支持
        Xamarin 于2016年2月被微软收购后,Xamarin 许可政策发生了根本性的变化。包括运行时,库和命令行工具在内的 Xamarin SDK 已经成为开放源码,而且做为Visual Studio的一部分,能够在 MIT 许可下使用。经过消除许可证的主要障碍和成本,微软为平台的进一步发展铺平了道路。另外,由微软领导,并受到Unity,JetBrains和Red Hat,.NET基金会和 Xamarin 的支持,特别是已经成为一个可靠和强大的技术堆栈。
 
6.若是你穷又想本身搞创业项目选择Xamarin吧
        Xamarin的牛B之处就在于,只要你是一个高级C#开发人员,当你想创业的时候,你不再用去求Android开发人员帮你写代码,iOS开发人员帮你写代码,你本身就能够搞定。求别人帮你写,你总要付出成本的。按照北京Android,IOS开发人员的工资来讲。一个月3万块吧。对于我的创业者来讲,已是不少钱了。当你的项目融到资了,若是你以为Xamarin是垃圾,再换平台也都来得及。
 
使用 Xamarin 开发应用程序的缺点:

 

1.稍微延迟支持最新的平台更新
        Xamarin 是否能及时支持各个平台,彻底取决于 Xamarin 开发团队。第三方工具不可能为最新的 iOS 和 Android 版本提供即时支持:实施这些更改和/或引入新的插件等须要一些时间。尽管 Xamarin 声称提供当天的支持,但仍然可能有些延误。
 
2.对开源库的访问受限
        使用 Xamarin,您只能使用平台提供的组件和一些.Net开源资源。尽管选择并不像Android和iOS移动应用程序开发那样丰富,但Xamarin组件提供了数千个自定义UI控件,各类图表,图形,主题和其余强大的功能,能够仅添加到应用程序中点击次数不多。这包括内置支付处理(如Stripe),信标和可穿戴设备集成,开箱即用推送通知服务,云存储解决方案,多媒体串流功能等等。
 
3.生态系统问题
         显然,Xamarin 社区比iOS或Android的小得多。所以,找到一个有经验的Xamarin开发人员多是一个挑战。虽然该平台在微软的支持下正在增加。根据不一样来源的信息,Xamarin社区占全球移动开发社会的10%,在中国的比例更少。尽管Xamarin工程师的数量与iOS或Android本地社区没法比较。可是有经验丰富的C#/ .Net工程师学习Xamarin的曲线是很小的。
 
4.应用程序安装包稍微会大一些
         根据其类型和复杂性,Xamarin应用程序一般比本地应用程序大(后者多是Xamarin应用程序的一半大小)。Android的一个简单的“hello,world”应用程序最多可能须要16 MB,其中大部分应用于关联的库,内容,Mono运行时和Base Class Library(BCL)程序集。
 

 

 

 

 

 

参考资料:

[1] Xamarin官方英文文档  来源:https://docs.microsoft.com/en-us/xamarin/

 

若是你以为本篇文章对您有帮助的话,感谢您的【推荐】。

若是你对 .NET 或 Xamarin 有兴趣的话能够关注我,我会按期的在博客分享个人学习心得。

本文地址:http://www.cnblogs.com/hexu6788/p/9916038.html

做者博客:何旭

欢迎转载,请在明显位置给出出处及连接

相关文章
相关标签/搜索