早在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编程指南》

【读书笔记】iOS-如何选择本地化应用的更多相关文章

  1. [读书笔记]iOS 7 UI设计 对比度

    好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...

  2. 读书笔记-iOS核心动画高级技巧

    如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签

  3. 【MySQL 读书笔记】普通索引和唯一索引应该怎么选择

    通常我们在做这个选择的时候,考虑得最多的应该是如果我们需要让 Database MySQL 来帮助我们从数据库层面过滤掉对应字段的重复数据我们会选择唯一索引,如果没有前者的需求,一般都会使用普通索引. ...

  4. 远程办公《Remote》读书笔记:中国程序员在家上班月入过六万不是梦

    这不是一本新书,这是一本很值得中国程序员看的老书,所以我不是来做卖新书广告的:) 但它的确是一本好书,这本书在Amazon上3个business categories排第一.作者Jason Fried ...

  5. 读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit

    读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit Author: Andrew Hunt ,David Thomas with Matt ...

  6. 数据模型与查询语言 ------《Designing Data-Intensive Applications》读书笔记2

    数据模型是开发软件的最重要的部分,因为它们对应用程序有着深远的影响:不仅是软件的编写方式,而且也影响我们如何解决的问题的方式.第二篇读书笔记,我们聊一聊数据模型的设计. 1.数据模型的分层 作为一个开 ...

  7. 《深入java虚拟机》读书笔记之Java内存区域

    前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,主要是方便之后进行复习. 运行时数据区域 Java虚拟 ...

  8. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...

  9. Spark存储管理(读书笔记)

    Spark存储管理(读书笔记) 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark的存储管理 RDD的存放和管理都是由Spark的存储管理模块实现和管理的.本文从 ...

  10. 【读书笔记《Bootstrap 实战》】6.单页营销网站

    我们已经掌握了很多实用 Bootstrap  的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...

随机推荐

  1. Learning WCF:Fault Handling

    There are two types of Execptions which can be throwed from the WCF service. They are Application ex ...

  2. Git使用01

    git 工作区:当前编辑的区域 缓存区:add 之后的区域 本地仓库:commit之后的区域 远程仓库:远程的区域 git init 初始化 git status 查看git的状态 git add 将 ...

  3. SpringCloud总结

    初级入门使用轮廓,整理一下思路

  4. ReactNative 深拷贝

    1: 导入 import _ from 'lodash' 2: _.cloneDeep(obj)

  5. Vue 父组件ajax异步更新数据,子组件props获取不到

    转载 https://blog.csdn.net/d295968572/article/details/80810349 当父组件 axjos 获取数据,子组件使用 props 接收数据时,执行 mo ...

  6. python常用模块os和sys

    一.os模块 说明:os模块是对操作系统进行调用的接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 os. ...

  7. 从一个集合中查找最大最小的N个元素——Python heapq 堆数据结构

    Top N问题在搜索引擎.推荐系统领域应用很广, 如果用我们较为常见的语言,如C.C++.Java等,代码量至少也得五行,但是用Python的话,只用一个函数就能搞定,只需引入heapq(堆队列)这个 ...

  8. ETCD&Flannel安装

    .ETCD 安装: nohup etcd --name etcd0 \ --advertise-client-urls http://172.31.24.246:2379,http://127.0.0 ...

  9. 怎么样在windows命令下创建一个没有文件名的文件?

    直接上图 echo ' ' >> .aa //创建一个空字符的 .aa 的文件

  10. phpstorm配置Xdebug进行调试

    运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...