美文网首页Xamarin.FormsXamarin
跨平台移动设备开发

跨平台移动设备开发

作者: yanshouwang | 来源:发表于2017-09-01 18:47 被阅读43次

翻译自Xamarin官方文档《Creating Mobile Apps with Xamarin.Forms》

近年来个人电脑产业尽力了巨大的变化。当然台式机仍然存在,它们在编程,写作,电子表格,数据跟踪等需要键盘和大屏幕的任务中仍然必不可少。但是很多个人计算技术出现在更小的设备上,尤其是在快速信息,媒体消费和社交网络方面。平板和智能手机与台式机在根本上的不同之处在于它们主要基于触摸,而键盘只有在需要的时候才会弹出来的用户交互模型。

移动设备的现状

尽管移动市场有快速改变的可能,但是目前主要被两种手机和平板平台所支配:

  • 包括各种iPhone和iPad在内的Apple家族,它们全部运行iOS操作系统。
  • 运行在各种各样的手机和平板上的由谷歌开发的基于Linux内核的Android操作系统。

移动市场如何被这两个巨人瓜分取决于如何看待它们:目前在使用的Android设备更多,但是iPhone和iPad用户在使用它们的设备上投入了更多的时间。
还存在第三种移动开发平台,它没有iOS和Android那样流行,但是牵涉到一家在个人电脑产业方面有辉煌历史的公司:

  • 微软的Windows Phone和Windows 10 Mobile平台。

近年来,由于微软已经将自家的手机,平板和桌面平台的API合并,使得它的平台成为更加吸引人的另一种选择。Windows 8.1和Windows Phone 8.1都是基于一个以Mcrosoft .NET为基础的被称为Windows Runtime(WinRT)的统一API。这个统一的API意味着面向台式机,笔记本,平板和手机的应用程序可以共享很多他们自身的代码。
更加具有吸引力的是Windows通用平台(UWP),一个构成Windows 10和Windows 10 Mobile基础的Windows Runtime版本。一个单一的UWP应用程序可以面向从台式机到手机的所有设备类型。
对于软件开发人员,最佳的策略是面向多个平台。但是那并不容易,主要存在四个大的障碍:

问题1:不同的用户交互模型

三个平台包含相似的方法来呈现图形用户界面和通过多点触控实现与设备的交互,但是在细节上他们有很多的不同点。每个平台都有不同的方式在应用和页面之间进行切换过渡,不同的数据显示协议,不同的方法调用和显示菜单,甚至不同的触摸方法。
特定平台上的用户会习惯于不同的与应用程序交互的方式,同时希望未来的应用程序也可以适用于这种方式。每个平台具有与自身相关联的文化,而这些约定俗称的规定会影响开发者。

问题2:不同的开发环境

如今的程序员习惯于在一个成熟的集成开发环境(IDE)上进行开发工作。这些IDE存在于三个平台中,但是很显然他们是不同的:

  • 进行iOS开发,使用Mac上的Xcode。
  • 进行Android开发,使用各种平台上的Android Studio。
  • 进行Windows开发,使用PC上的Visual Studio。

问题3:不同的编程接口

这三个平台基于具有不同API的操作系统。在很多情况下,三个平台具有相似的用户界面类型但是名字是不同的。
例如,三个平台都有一个让用户切换布尔值的控件:

  • 在iPhone或iPad上,是一种叫做UISwitch的“view”。
  • 在Android设备上,是一种叫做Switch的“widget”。
  • 在Windows Runtime API中,是一种叫做ToggleSwitch的“control”。

当然,它们在编程接口中的差别要远大于名字上的差别。

问题4:不同的编程语言

开发者在开发这三个平台的时候有一定的灵活性去选择一种编程语言,但是,通常每个平台会非常适用于用一种特定的编程语言:

  • Objective-C用来开发iPhone和iPad
  • Java用来开发Android设备
  • C#用来开发Windows

Objective-C,Java和C#在排序上是表亲关系,因为它们都是派生自C语言的面向对象的语言,但是它们已经变成关系相当遥远的远房表亲。
因此,一家想要面向多平台的公司可能需要雇佣三个不同的编程团队,每个团队具有一种特定语言和API方面的技能和专长。
这其中的语言问题尤其让人烦恼,但它是最有诱惑力去解决的问题:如果你能用同样的语言来开发这三个平台,你就能至少在平台之间共享一些代码。这些共享的代码可能不会涉及到用户界面,因为每个平台有不同的API,但是程序中很可能会有完全不触及用户界面的应用代码。
拥有一种适用于三个平台的语言一定会很方便。但是它将会是哪种语言呢?

相关文章

  • 跨平台移动设备开发

    翻译自Xamarin官方文档《Creating Mobile Apps with Xamarin.Forms》 近...

  • 跨平台移动应用开发框架 2019-03-18

    标签(空格分隔): 移动应用 跨平台 混和开发 Flutter 移动应用跨平台开发框架,根据其原理,主要分为三类:...

  • Flutter了解

    Flutter:谷歌推出的开源跨平台移动应用开发框架(使用Dart语言开发)。 前言:原生开发与跨平台开发 原生开...

  • iOS基于Cordova进行H5开发,自定义插件,动态加载H5页

    前言 html5开发移动应用已经是比较流行的手段,写一套html页面就可以适配各种移动设备,节省了跨平台应用的开发...

  • 超轻量的跨平台图形渲染引擎——GCanvas

    介绍 GCanvas是由阿里巴巴开发的用于移动设备的跨平台渲染引擎。它是使用基于OpenGL ES的C +...

  • 跨平台,混合开发

    参考: 混合开发 框架对比从事编程那些年经历的跨平台开发工具框架演变历史跨平台框架的发展历史移动端跨平台开发框架对比分析

  • 跨平台移动开发

    一phone gap VS react native 01.开发成本 phone gap的开发成本小很多 二NV...

  • 移动跨平台开发

    1.Xamarin Xamarin是目前应用最为广泛的移动应用开发平台。Xamarin应用利用原生用户界面控制进行...

  • Flutter RN 原生对比

    移动端跨平台开发技术演进 现在主流的移动开发平台是Android和iOS,之前还有过windows phone,每...

  • AppCan

    AppCan移动开发平台 ** 自主研发国内首创混合开发跨平台适配** 做好中流砥柱降低开发门槛让移动开发再简单一...

网友评论

    本文标题:跨平台移动设备开发

    本文链接:https://www.haomeiwen.com/subject/hzghjxtx.html