早在2007年发布iPhone的时候 ,苹果并没有一同发布本地化SDK,苹果公司声称不需要本地SDK,鼓励大家使用JavaScript,CSS和HTML开发Web应用。但接下来剧情并没有按照苹果设计的那样发展,也许是苹果的思想太超前,大多数开发者不并不吃这一套,他们希望自己开发的应用和iOS系统内置的应和一样,可以直接访问硬件并和系统高度集成。
因为iPhone发布不到一年后的2008年3月,苹果公司就公开表示要改变策略,并且向开发者社区发布了期待已久的官司方SDK。这也许是苹果对于开源社区所做的努力的回应吧。不过苹果一贯遮遮掩掩,让人琢磨不透,要说这是苹果本来的计划也有可能。到底是怎么样,只有乔布斯知道 。
对于苹果发布的SDK,也不是所有人都 买账,在有些人看来这简直是技术的退步,他们认为Web应用已经足够好了。因为用Object-C专门针对iPhone开发的应用很难移植到其他平台,而Web应用只需要开发一套新的CSS模板就可以了。
大部分情况下,提出使用Web技术 或者其他非本地化框架的人往往是从开发者角度来考虑问题。这当然不无道理,不过或许你更应该考虑一下用户的感受,他们唯一关心的是可用性而非什么技术来实现。
用户是很挑剔的,他们决绝购买你的应用往往只是因为你还支持了其他平台。这听起来很滑稽,其实很好理解。他们只希望一个应用的风格看起来和系统里其他应用是一样的。
本地化应用最明显的优势在于可以实现Web技术无法完成的事情。举一个简单的很典型的例子,第一代现实增强类应用就依赖多种硬件设备,比如GPS芯片,加速度传感器,指南针和摄像头等。
AppStore里绝大多数的应用都是将远程数据和本地化UI结合起来的。当无法访问网络的时候 ,一些依赖网络的UI会处于不可用状态,与无法访问网络的Web应用相比,这样的行为至少可以显得优雅一些。或者也可以将那些依赖网络的UI控件一开始就隐藏起来,这样用户在没有网络的情况下依然可以使用应用的一部分功能。
当然,有一些应用是可以不依赖网络的,而且不联网还可以节省电量。即便设备是连接着网的,也不必总是进行网络访问,尽可能的减少数据会让用户和设备有更好的交互体验。也就是说用户界面可以尽量放在本地,只有数据是来源于网络的,不像Web应用那样,完全依赖网络。
基于Web技术的软件的发布可以是增量式的,随时发现Bug并随时修正,不会影响到用户的使用。然而,本地化应用在这方面更像桌面软件。
众所周知,App Store的审核过程是不透明的,审核时间 也没个准,所有的应用不光首次提交要接受审核,每次更新还要审核,一般来说每次审核大概需要7天,也有可能更长。我的一些应用提交后几天就审核通过了。但是有一个应用一直等了4个月才审核通过。
所谓好的设计,评价标准在很大程序上是你的应用是否在用“苹果的方式”去工作,尽量不要重新发明轮子,使用标准控件对iOS用户更有新和力。
参考资料:《iOS编程指南》