快速开发跨平台应用之Xamarin技术
Xamarin 介绍
Xamarin 是一个允许开发人员有效创建可跨 iOS、Android、Windows 应用程序的开发工具集。Xamarin是免费且开源的,遵循 MIT (麻省理工学院许可证)协议,在github上的地址为:https://github.com/xamarin 。官方网站为:http://xamarin.com
简单的来说,Xamarin 使我们可以使用 C#,F#,VB.NET 等语言开发原生 iOS、Android、Windows 应用程序。
传统移动开发流程
开发一个传统的移动开发程序都会有一些流程。比如像打开IDE,拖一些控件,编写逻辑,然后测试,发布。这些非常简单一两个小时就可以折腾完成。
但是,如果要开发一些大型的,商业级的移动应用程序就需要一些专业的开发流程。比如需求分析,UX 设计,UI 设计,开发,可用性测试,性能测试,以及数以千计的设备进行测试,再使用不同部署方式完成部署。

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

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 Forms 将共享代码量提升为95%
下图是 使用 Xamarin Native 和 使用 Xamarin Forms 开发同一宽App的代码对比示意图:

很显然使用Xamarin Forms 技术进行跨平台应用开发,将共享代码比率提升20%,达到非常恐怖的95%。
总结
参考资料:
[1] Xamarin官方英文文档 来源:https://docs.microsoft.com/en-us/xamarin/
如果你觉得本篇文章对您有帮助的话,感谢您的【推荐】。
如果你对 .NET 或 Xamarin 有兴趣的话可以关注我,我会定期的在博客分享我的学习心得。
本文地址:http://www.cnblogs.com/hexu6788/p/9916038.html
作者博客:何旭
欢迎转载,请在明显位置给出出处及链接
快速开发跨平台应用之Xamarin技术的更多相关文章
- EMIS快速开发平台 - 微服务版技术选型
http://demo.zuoyour.com/system/login EMIS快速开发平台 - 微服务版技术选型 开发框架:Spring Boot 2.1.3.RELEASE 微服务:Spring ...
- Sublime插件库新成员基于APICloud快速开发跨平台App
互联网时代强调用户体验,那什么是HTML5跨平台App开发者的编程体验?“不剥夺.不替换开发者喜欢的开发工具,就是人性化的用户体验”,APICloud给出了这样的答案! 重磅发布“多开发工具支持策略” ...
- 开发者必知的8款App快速开发工具
开发者必知的8款App快速开发工具 “我有一个好创意,就差一个CTO……” “原生APP开发难度大,周期长,成本高,还没上线市场已经被占领了.” “APP版本迭代更新,都是企业的一道难关,没有一个一劳 ...
- 开发者必知的8款App快速开发工具开发者必知的8款App快速开发工具
"我有一个好创意,就差一个CTO……" "原生APP开发难度大,周期长,成本高,还没上线市场已经被占领了." "APP版本迭代更新,都是企业的一道难关 ...
- Visual Studio跨平台开发实战(1) - Hello Xamarin!
原文 Visual Studio跨平台开发实战(1) - Hello Xamarin! 前言 应用程式发展的脚步, 从来没有停过. 从早期的Windows 应用程式, 到网路时代的web 应用程式, ...
- Visual Studio跨平台开发(1):Hello Xamarin!
前言 应用程序发展的脚步, 从来没有停过. 从早期的Windows 应用程序, 到网络时代的web 应用程序, 再到近几年相当盛行的行动装置应用程序(Mobile Application), 身为C# ...
- Xamarin技术文档------VS多平台开发
此技术业余时间研究,仅供大家学习参考,不涉及深入研究,有一定开发基础的人员,应该都能较快上手. 一.简介 Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单.Xamarin的产品简 ...
- 快速打造跨平台开发环境 vagrant + virtualbox + box
工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑 刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电 ...
- Sublime用户如何快速高效开发跨平台App
2015年9月15日,APICloud举办了一周年开源分享会,发布开源插件支持Sublime用户开发跨平台App,APICloud 开源技术负责人周兴海分享了Sublime关于插件方面相关的内容. S ...
随机推荐
- 如何开会——高效会议八项原则
引子 今天看到一段有趣的话,忍不住记录下来吧! 1. 任何事情只要能开会解决的,一定要开会解决,这多威风,多热闹啊. 2. 会前千万不要准备什么议程,这样开会就会惊喜多多,会议一定低效. 3. 会前千 ...
- H5在WebView上开发小结
背景 来自我司业务方要求,需开发一款APP.但由于时间限制,只能采取套壳app方式,即原生app内嵌webview展示前端页面.本文主要记述JavaScript与原生app间通信,以及内嵌webvie ...
- GODOT 3.0 开发进度汇报 #7
由于原文采取了记流水账的方式,觉得没有必要照直翻译了,就只选取了其中的主要信息. GDNative C++ 语言绑定 进行了重写以便Godot更好的生成和处理脚本. D 语言绑定 也正在积极开发中. ...
- vsCode 设置vue 保存自动格式化代码
setting { // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tab ...
- 【shiro】(5)---基于Shiro的权限管理
基于Shiro的权限管理项目搭建 前面写了四篇有关权限的文章,算是这篇文章的铺垫了.这篇文章采用 开发环境 JDK1.8 Eclipse Mav ...
- Mysql 调优和水平扩展思路
系统调优参数 一些比较重要的参数: back_log:back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中.如果MySql的连接数据达到max_connecti ...
- jvm详情——6、堆大小设置简单说明
年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64 ...
- MFC原理第五讲.消息映射.以及如何添加消息
MFC原理第五讲.消息映射.以及如何添加消息 一丶消息映射是什么 我们知道.Win32程序.都是通过消息去驱动的. 不断的在处理消息. 只要我们使用固定的宏.就可以让我们的框架知道一旦消息发生.该往哪 ...
- Docker 设置固定网络IP
1.创建自定义网络: 2.查看自定义网络: 3.启动容器: 4.查看容器IP:
- 【Flask-RESTPlus系列】Part3:请求解析
0x00 内容概览 请求解析 基本参数 必需参数 多值和列表 其他目标 参数位置 参数多个位置 高级类型处理 解析器继承 文件上传 错误处理 错误消息 参考链接 0x01 请求解析 注意:Flask- ...