【读书笔记】iOS-如何选择本地化应用
早在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-如何选择本地化应用的更多相关文章
- [读书笔记]iOS 7 UI设计 对比度
好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...
- 读书笔记-iOS核心动画高级技巧
如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签
- 【MySQL 读书笔记】普通索引和唯一索引应该怎么选择
通常我们在做这个选择的时候,考虑得最多的应该是如果我们需要让 Database MySQL 来帮助我们从数据库层面过滤掉对应字段的重复数据我们会选择唯一索引,如果没有前者的需求,一般都会使用普通索引. ...
- 远程办公《Remote》读书笔记:中国程序员在家上班月入过六万不是梦
这不是一本新书,这是一本很值得中国程序员看的老书,所以我不是来做卖新书广告的:) 但它的确是一本好书,这本书在Amazon上3个business categories排第一.作者Jason Fried ...
- 读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit
读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit Author: Andrew Hunt ,David Thomas with Matt ...
- 数据模型与查询语言 ------《Designing Data-Intensive Applications》读书笔记2
数据模型是开发软件的最重要的部分,因为它们对应用程序有着深远的影响:不仅是软件的编写方式,而且也影响我们如何解决的问题的方式.第二篇读书笔记,我们聊一聊数据模型的设计. 1.数据模型的分层 作为一个开 ...
- 《深入java虚拟机》读书笔记之Java内存区域
前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,主要是方便之后进行复习. 运行时数据区域 Java虚拟 ...
- iPhone与iPad开发实战读书笔记
iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...
- Spark存储管理(读书笔记)
Spark存储管理(读书笔记) 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark的存储管理 RDD的存放和管理都是由Spark的存储管理模块实现和管理的.本文从 ...
- 【读书笔记《Bootstrap 实战》】6.单页营销网站
我们已经掌握了很多实用 Bootstrap 的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...
随机推荐
- Behavior Tree 用 Lua 实现一个最简行为树
local function Traverse(node, ...) local t = node.type if t == SELECTOR then , #node do if Traverse( ...
- shell 中的三种引号的作用
1. 单引号(' ') 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的: 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用. 2. 双 ...
- jmeter集合点使用方法:Synchronizing Timer
LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的. jmeter中使用Synchronizing Timer实现Lr中集合点 ...
- python实现线性排序-基数排序
基数排序算法是一种是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较. 由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于 ...
- python中的数字取整(ceil,floor,round)概念和用法
python中的数学运算函数(ceil,floor,round)的主要任务是截掉小数以后的位数.总体来说 就是取整用的.只是三者之间有微妙的区别: floor() :把数字变小 ceil() : ...
- Maven - 实例-1-手工创建Maven项目
1- 根据包结构创建maven项目目录 TestMaven - src - src/main/java/anliven/testmaven01/HelloMaven.java - src/test/j ...
- jvm-垃圾回收gc简介+jvm内存模型简介
gc是jvm自动执行的,自动清除jvm内存垃圾,无须人为干涉,虽然方便了程序员的开发,但同时增加了开发人员对内存的不可控性. 1.jvm内存模型简介 jvm是在计算机系统上又虚拟出来的一个伪计算机系统 ...
- 《JavaScript高级教程》学习笔记一、变量和数据类型
JavaScript的核心语言特性在ECMA-262中是以名为ECMAScript的伪语言的形式来定义的. 一.变量和数据类型 1. 变量 JavaSript是弱类型语言,可以通过var定义任何类型变 ...
- web自动化测试---概述
最早的时候是做功能测试,web都是自己手工点击看看有没问题,没有系统的进行测试,更别说自动化测试了,那是一段不堪回首的往事,就是因为这,很多问题都流出去了,这是作为测试人员的一大失职,痛定思痛,开始学 ...
- Golang标准库——io-接口
接口 Read相关 Reader Reader接口用于包装基本的读取方法. type Reader interface { //将数据读入到p中,直到读满p或者读取的过程中遇到错误,此时返回的n< ...