快速开发跨平台应用之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
作者博客:何旭
欢迎转载,请在明显位置给出出处及链接
转载于:https://www.cnblogs.com/hexu6788/p/9921518.html
快速开发跨平台应用之Xamarin技术相关推荐
- EMIS快速开发平台 - 微服务版技术选型
http://demo.zuoyour.com/system/login EMIS快速开发平台 - 微服务版技术选型 开发框架:Spring Boot 2.1.3.RELEASE 微服务:Spring ...
- JEECG V3.0版本 (工作流在线定义+UI快速开发库+代码生成器) 全新架构技术,漂亮的界面+智能代码生成+智能工作流
简要说明 JEECG V3.0版本推翻原有SSH2架构,采用SpringMVC+Hibernate+Spring jdbc基础架构, 采用面向声明的开发模式,基于泛型方式编写极少代码即可实现复杂的数据 ...
- 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与,第三期招募新成员
============================================ ************JEECG开源项目 欢迎广大技术爱好者参与************ 截 ...
- 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
====== ===================================================================== ************欢迎广大技术爱好者 ...
- OpenJWeb(1.6) Java Web应用快速开发平台技术白皮书
OpenJWeb中国开源组织(http://blog.csdn.net/baozhengw) 苏州创智科技有限公司(http://www.cmissoft.com) QQ:29803446 Msn:b ...
- JavaEE企业级快速开发平台jeesite4的使用和快速搭建项目
场景 JeeSIte是一个JavaEE企业级快速开发平台,基于经典技术组合(SpringBoot.Apache Shiro .MyBatis.Beetl.Bootstrap)在线代码生成工具,支持Sp ...
- 快速开发工作流_01_简单流程案例
文章目录 一.介绍 二.技术选型 三.登录/绘制流程图 3.1. 需要先登录 3.2. 绘制流程图 四. 使用说明 4.1. 选择数据库 4.2. 增加 mybatis, modeler,idm 等配 ...
- 选择软件开发平台,“快速开发”是关键
一.快速开发平台 传统代码级开发成本越来越高,软件的功能升级跟不上市场的变化,客户的满意度越来越低.造这方面的原因是多方面,最重要是人力成本大幅上升和企业对软件的要求越来越高,通用的软件产品已无法满足 ...
- 开放式激光振镜运动控制器:C++快速开发
今天,正运动技术为大家分享一下应用ZMC408SCAN开放式激光振镜运动控制器的C++开发,实现激光振镜打标,可在文章末尾扫码获取例程源码. 除了C++还支持使用其他上位机软件来开发,上位机程序运行时 ...
最新文章
- 《交互式程序设计 第2版》一3.1 下载并安装Processing
- 经典常用算法/常用算法思维---附伪代码以及实现
- boost::phoenix::function用法的测试程序
- python自动答题软件_广东开放大学(广开)线上作业自动答题python-selenium
- UFLDL教程:Exercise:Convolution and Pooling
- 对话框大小与像素关系
- 2010年11月51CTO壁纸点评活动获奖名单【已结束】
- 回答朋友关于美团点评业务线工作体验
- 最受Java程序员欢迎的大数据工具排名
- C++ STL容器底层详解
- 国标:计算机软件文档编制规范
- 朝代官制,6部是什么
- java 编写桌面_利用Java技术编写桌面软件基础
- OpenGL Mathematics (GLM)
- c 语言输出省份面积和高度,中国省份面积
- 【数学】微分(Differential)的定义,微分与导数的区别
- Win10系统如何显示文件夹中的照片缩略图
- iOS iPhone、iPad、Mac等禁止系统摄像头功能
- 贵州省计算机专业大学排名,贵州大学的计算机专业全国排名第几?
- 单片机中数制与数制的转换是怎样实现的