《iOS编程指南》——1.1节优点和缺点

  1. 云栖社区>
  2. 博客>
  3. 正文

《iOS编程指南》——1.1节优点和缺点

异步社区 2017-05-02 14:22:00 浏览826
展开阅读全文

本节书摘来自异步社区《iOS编程指南》一书中的第1章,第1.1节优点和缺点,作者 【美】Alasdair Allan,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.1 优点和缺点
iOS编程指南
对于苹果发布的SDK,也不是所有人都买账,在有些人看来这简直是技术的退步,他们认为Web应用已经足够好了。因为用Objective-C专门针对iPhone开发的应用很难移植到其他平台,而Web应用只需要开发一套新的CSS模板就可以了。

但用户并不同意这样的观点,他们才不管开发起来难度有多大,他们只关心好不好用。不过说起来Web应用移植起来也没有想象中那样容易。各个平台的应用外观不尽相同,在做到平台兼容的同时还要实现外观的本地化,其实是一件非常困难的事。如果把Windows平台的应用没有经过重新设计直接移植到Mac系统上来,就会让人感觉很奇怪,不光是外观,连操作也会和用户的预期不一样。

这里并不是在诋毁HTML、CSS和JavaScript。Web技术也是很成熟很稳定的,而且作为开发者,这种跨平台的技术框架绝对是有巨大吸引力的。但是对于用户,就不见得如此了。大部分情况下,提出使用Web技术或者其他非本地化框架的人往往是从开发者角度来考虑的。这当然不无道理,不过或许你更应该考虑一下用户的感受,他们唯一关心的是可用性而非用什么技术来实现。

用户是很挑剔的,他们拒绝购买你的应用往往只是因为你还支持了其他的平台。这听起来很滑稽,其实很好理解。他们只是希望一个应用的风格看起来和系统里其他应用是一样的。

如果把你的应用放在iOS生态圈里,更有效地利用硬件资源,并且针对设备优化你的用户界面,这样用户体验会大幅度提高。当然要实现这些目标,非本地化应用大部分也是可以做到的,但这仅仅是理论上可行,实际操作起来困难重重,更别提还要做好几个平台的适配了。

为何要开发本地化应用?
本地化应用最明显的优势在于可以实现Web技术无法完成的事情。举一个很典型的例子,第一代现实增强类应用就依赖多种硬件设备,比如GPS芯片、加速度传感器、指南针和摄像头等。

尽管iOS上的Safari浏览器支持HTML5提供的地理位置的功能,也还是无法完整地解决问题。鉴于不同平台和不同硬件所带来的差异,HTML5提供的统一接口会有更大的不确定性。所以你几乎见不到基于Web的现实增强类应用。

图像说明文字如果你有Web开发的背景,你也许会对跨平台的PhoneGap框架感兴趣。这个框架提供了封装了本地化功能的接口,让你可以基于HTML和JavaScript构建本地化应用,并且可以兼容多个移动平台,iOS就是其中之一。

其实很多时候,新的技术并不是来帮你实现原本无法实现的功能,而只是带来了更快的速度体验和更好的容错体验。事实上苹果的iTunes和App Store这两款iOS应用和PhoneGap应用就很类似,它们本质上也是Web应用。就像Mac桌面版的iTunes和App Store一样,你所看到的主界面其实就是一个网页而已,只有外围的一些基础结构是本地化的。这意味着当这类应用在没有网络的情况下,至少可以干净利落地启动起来。

但这仅仅是极少数的例子,App Store里绝大多数的应用都是将远程数据和本地化UI结合起来的。当无法访问网络的时候,一些依赖网络的UI会处于不可用状态,与无法访问网络的Web应用相比,这样的行为至少可以显得优雅一些。或者也可以将那些依赖网络的UI控件一开始就隐藏起来,这样用户在没有网络的情况下依然可以使用应用的一部分功能。

当然有一些应用是可以不依赖网络的,而且不联网还可以节省电量。即便设备是连着网的,也不必总是进行网络访问。尽可能的减少数据连接会让用户和设备有更好的交互体验。也就是说用户界面可以尽量放在本地,只有数据是来源于网络的,不像Web应用那样,完全依赖网络。

网络性能会影响应用的响应速度,如果可以在渲染用户界面的同时去加载网络数据来填充你的应用,就可以在网络加载的过程中及时响应用户的操作,这不也挺好的吗?

这里还没有提到游戏开发,因为苹果把iPod touch的定位设计为“最有趣的iPod”,所以游戏开发就显得格外重要了。目前App Store是不允许基于Web的游戏上架的。本书只包括了开发iOS应用的基础知识,如果你希望深入的学习如何基于iOS平台来开发游戏,我推荐阅读这本书:《Tap, Move, Shake: Turning Your Game Ideas into iPhone & iPad Apps》,作者是Todd Moore(O’Reilly出版)。

网友评论

登录后评论
0/500
评论
异步社区
+ 关注