用了将近一年半的iOS,从4到4S,iOS5到iOS6。这里谈谈自己对iOS的一些看法,以及这款移动操作系统给我的启发。
我知道这个帖子发出来可能有点“危险”。我从不发水贴,这些积分都是大家给的,不是灌水灌来的。我曾为安卓的部分机型编译过rom,也为部分机型开发(或者说编译)过安卓播放器Rockbox,对安卓的认识自认为也比较深。
这里纯粹是个人意见,不谈高深的技术,仅仅是用户体验和感受。我没有贬低哪个操作系统的意思——iOS是我最喜欢的操作系统,安卓也很优秀。
我也希望大家文明讨论,有认识不对的地方,恳请各位批评指正。

================================================================================
我认为,在移动设备上:

1.不需要名叫“程序管理”的程序
有一个程序管理的地方看似很好,实际上很糟。我们已经习惯了在控制面板里卸载程序,但在手持设备上,实在没必要这么折腾。当你已经能在桌面上直观地看到所有软件时,为什么还要在别的地方再弄一个列表用来卸载程序呢?直接在桌面上操作不好吗?在桌面上长按图标然后点叉卸载绝对要比你进入层层菜单找到这个程序再点卸载按钮方便得多。

2.别到处都是进度条
不是说哪都不需要,而是说大多数地方不需要,就比如卸载程序的时候。在安卓(等)设备上,卸载软件时会出现一个进度条独占整个屏幕,这样的体验非常不好。对用户来说,卸载已经进行到百分之几了这一点也不重要;我点个叉,然后这个程序从我眼前消失了,这就够了,就这么简单。

3.不要问这问那
有些事情应该是你(操作系统)做,而不是我做。当我靠近一家星巴克时,我的优惠券应该自动出现在屏幕上,这样如果我要用,就可以直接扫描屏幕上的二维码而不必再到一大堆程序里翻找;操作系统应该知道什么能做什么不能做,而不是时不时地弹个窗口出来问这问那。“xx应用程序获取了系统最高权限”,它都已经获取到了,还关我什么事儿?

4.这是手机,不是仪表盘
你究竟想在屏幕上看到多少信息?前一段时间魅族的“Flyme”操作系统更新,有一个内容是“加宽了状态栏”,理由是“与iOS和其他安卓设备相比,宽状态栏可以呈现更多信息”。也许是的吧。但是,你究竟要在状态栏上同时看到多少东西才能满意?今天,各式各样的系统监控软件充斥着我们的屏幕。的确,这样你就可以知道当前CPU工作频率、剩余内存大小、精确到百分位的电量百分比、屏幕色温、蜂窝网络ip地址、数据流量使用情况,甚至还有当前手指点触位置的屏幕坐标……有些还是动态刷新着的图表。这可能很好看,但是你是在开飞机么?这是你的手机,不是飞机仪表盘。

5.谁扔的谁捡
不少人觉得他们的手机/电脑越来越卡了,于是上网查找解决方案。不一会儿,《别怪你的电脑卡,是你不会优化!》《xx个电脑(手机)提速秘诀!》《清除这些垃圾文件,让你的电脑提速xx倍!》……这些神一样的文章就都出来了而且被大量转载。事实上,这样的文章越多,就越说明对应的操作系统还不够完善。想想个人计算机为什么会普及?就是因为图形界面的发展使之易于被人理解——要变得越来越容易,而不是相反。垃圾文件是我扔在那的吗?不是,是你(操作系统)把它们放在那的;因此,清理垃圾这些事也应该由你去做,而不是由我。我可不想进入层层目录去做复杂的清理工作,谁扔的谁捡。这方面iOS是做得最好的,用户从来不用担心哪个位置有垃圾文件,因为即便有也微乎其微,它们不会影响到系统的正常运作。

6.一步到位
“这已经成为我的座右铭之一——专注、简洁。有的时候,简单要比复杂更难做到。你需要付出艰苦的努力、承受几倍的复杂,才能够实现‘简单’。但是一切辛苦都是值得的,因为你一旦做到了‘简单’,就可移山填海。”
这是史蒂夫•乔布斯的一句话。把一件事办得复杂并不难,真正困难的是怎样改进使之简单。有些安卓设备上充斥着大量恼人的设置,CPU频率设定、内存阈值设定、传感器灵敏度设置、光线感应调节方案、USB连接模式选择、sd卡读写缓存调整……PC上的Windows也是一样,动态链接库(dll)、注册表、磁盘碎片整理、用户账户控制……没有任何最终用户应该知道这些破玩意儿的。这些复杂的东西看似很专业很强大很牛x,但它们大大降低了易用性,使科技成为小部分技术宅的东西,普通用户碰都不敢碰。sd卡缓存大小?哦,关我什么事儿,我又不是机器人,我又不读写sd卡!
我曾经听人介绍过一部具有面部识别解锁功能的移动设备(貌似山寨机)。使用方法是这样的:先拨动解锁键让屏幕亮起来,然后根据提示把脸放在镜头前,过一会儿就自动解锁了。他很骄傲地向我讲述他们产品的这种先进技术,而我想的是,“你都有了解锁键,还要再弄个人脸识别?!本来拨一下就能解锁,现在被你弄成两个步骤,这可能很先进,但也真的很没用。”
在PC上,与苹果具有相似简洁理念的公司是美国赛门铁克。虽然iOS操作系统和Norton(诺顿)反病毒不是同一类软件,但它们的理念却基本一致。诺顿的特点是安静、智能、可靠,它不像其它杀毒软件一样时不时地弹窗出来问这问那。
Garageband是我最喜欢的软件,它能够让哪怕一点乐理知识也没有的人创造出最好的音乐套路。我说不出来更深层次的原因,它就是顺手,仅此而已。
iLife套件之一是iDVD,这是一款光盘刻录软件。最初,软件设计师设计好了iDVD的界面并向乔布斯汇报,在这个界面下,用户可以自定义刻录速度、光盘参数等,甚至首次打开时还有一个引导式的使用说明;设计师不停介绍软件应该如何操作,而乔布斯早就听得不耐烦了,他抓起一只笔走到白板前,画了一个长方形的框,然后在框下面画了个按钮一样的圆:“你们看好了,这是新的界面。用户把要刻录的文件拖进这个框里,然后点击底下的刻录键。就这么简单。”

7.注重细节
在iOS,一部设备中装有上百个App一点也不奇怪。这些软件内容精致、风格一致、富有创意。更重要的是,它们绝大多数是从图标开始就注重细节。我们都知道Keynote的图标是一份年度报表,而现在,新版Keynote实际上已经更新了图标,放大可见“Q42012”,这就是细节。
把iPhone自带计算器横过来,你可以算100 的阶乘。我的卡西欧计算器最大只能算到69 的阶乘,再大就报错了。不是说 iPhone 秒杀计算器,而是说这样一种理念:你当然可以带个手机再带个 psp、你当然可以带个手机再带个计算器、你当然可以带个手机再带个xxx……而现在,你只需要一部设备。科技应该让生活越来越简单,而不是反过来。
如果苹果地图不是苹果地图,而是别的什么公司的别的什么地图,它也绝对不会招致如此批评;正因为一贯重视细节,所以只要有一次粗心的产品就会立即令人失望至极。

8.U盘和数据线
说真的,我不喜欢U盘和数据线;我把它们视为过时的旧技术。当然现在我也找不到能完全替代它们的东西——它们在某些领域还有一些优势。但是,它们有时实在令我遗憾:我写了一晚上的文章,拷贝在U盘里打算带到打印店,但到了那以后我才发现——U盘不见了……它可能半路掉了出来,或者早就没了,总之找不到了。我当然可以再买一个更大更好的U盘,但是我的文章呢?我存在里面的数据呢?磁盘有价、数据无价。数据线也会带来很多麻烦:我用手机和iPad各拍了一张照片,现在我想统一一下我的相册,我要怎么做?当然是用数据线!我把手机连电脑,把手机拍的新照片拷贝到电脑,然后拔下来;再把iPad连上,把刚才这张照片从电脑上同步进iPad,同时把用iPad拍的新照片拷出来,然后再把iPad拔下来,再把手机插上同步iPad拍的这张照片到手机……我已经不想往下写了。拷贝两张照片比“把大象装冰箱”的步骤还多。
而现在,在iOS,iCloud让我非常惊讶。我认为总有一天iCloud或是类似的服务将彻底替代U盘和数据线。有了iCloud,“你什么都不用做,这就是工作”:它将自动同步所有的一切。我用iPhone拍张照,这张照片会瞬间、自动、同时地出现在我的iPhone、iPad、iPodtouch和电脑的相册里;我在手机上编辑了一份文档,我的所有其他设备上都会同时更新;我在iPhone上玩割绳子玩到了第五关,当我拿起iPad的时候,直接就可以从第六关接着玩……所有这一切不需要任何特殊操作,不需要连一次数据线,甚至不需要按一次确认键。我佩服这种创意,如果是我,我想不到。

9.信息在应用之外
我不想装一大堆App,但是没办法,我需要人人、需要QQ……我并不是需要这些软件背后的一大堆二进制数据,我需要的是它们能提供给我的信息;信息不是App,信息是事物之间的差异。我不想时不时地打开QQ等程序去看有没有人回复了我,因此,如果应用不需打开就可告诉我发生了什么,就会方便许多。iOS的推送通知是我见过最好的解决方案,当一个应用后台之后,这个应用就被暂停了,它要通知你的信息由统一的消息推送进程接管,然后在通知中心显示出来。这就意味着,你不必打开QQ、人人、微信……就可以同时收到来自QQ、人人、微信……的消息。这也就是为什么iOS只有512M内存却是现今最流畅的移动操作系统的原因——它只需要同时运行一个程序。也正因为如此,电池能够更加耐用。经常有人抨击iOS和微软WindowsPhone是毫无技术的“伪后台”,实际上这可以保证高效率,并且技术上也很高明——我建议这么说的人去看看Apple的开发者文档《Local and Push NotificationProgramming Guide》,在iTunes Store有免费下载,里面详细说明了推送的原理和机制,包括服务器端。经常有人问我为什么我在人人上回复得那么迅速,就像一直在线一样,实际上正是因为iOS有消息推送——我不必一直开着人人客户端就能知道谁回复了我、回复了什么,就像有人发来短信一样。

10.中端和终端
有些人问我,为什么iOS缺少某方面的功能。我的回答是,因为iOS设计成为一个“中端”,而不是“终端”。有些功能不是不能添加到手机上,而是添加了以后操作起来会很繁杂。换句话说,iPhone的某些功能和优势不在iPhone上,而在iTunes上。比如说创建播放列表,你当然可以在手机上创建播放列表,但这意味着你需要几十次地点击屏幕来选中歌曲,然后再进行复杂的挪移操作;而在电脑上,创建播放列表轻而易举——鼠标拖拽即可。因此,iPhone不允许用户在手机上创建播放列表,只允许用户通过iTunes在电脑上创建,然后同步过来。看似复杂,其实不然。当你习惯了iTunes你才会看到它有多方便——它将你的所有音乐、电影、应用……归于一处,这使得iOS最终抛开了文件系统,你打开Pages就能直接看到所有文档,而不必打开层层目录反复翻找。换句话说,iOS不需要文件管理器,它是面向应用的系统,而不是面向文件。这也就意味着你不必操心磁盘碎片等问题,也不必考虑文件放在哪个文件夹底下,你打开应用,直接就能看到,不用你去找。这就是优势。“中端”与“终端”的区别在于,前者并不打算替代PC的所有功能,而是PC的延续,或者说中继。

11.安卓和刷机
每次,当我帮人整手机时,我都在想,“Google 的系统设计师们,你们卖给大家的就是一大堆电路板吗??!”当然这纯粹只是个人意见,也只是在心里想想。我喜欢安卓,我认为这是一个有潜力的操作系统,只不过现阶段还存在一些问题,或者说,与我个人的理念还不相同。我不认为身边某位朋友学会了刷机是件好事,也从来不认为会刷机的人就是高手了。我受不了那些奇怪的设置、复杂的逻辑和第三方某大侠略带吹嘘的所谓“优化”。但是,我也为安卓写过我自己的程序,我衷心希望它越来越好。

12.放下你的手机
那些站在科技和人文交叉口的发明将改变世界。从这一点来说,算盘要比计算器更精美。
iMessage无线短信、FaceTime视频电话、iCloud照片流……所有这一切都是为了人与人之间相互了解,为了人们能在一起分享文化、科技和信息。
你以为你拿个手机就连接了世界?那东西只是个工具。
是时候放下手机去和朋友面对面了。

关于IOS给我的启发的更多相关文章

  1. iOS Run_time

    Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下,一为 查阅方便二为 或许能给他人一些启发,三为 希望得到 ...

  2. iOS 之 Cocoapods安装

    进入正题前,先来点前奏:了解cocoapods是某天看一个博客,那时才明白原来写项目不用一个个将三方库拷进项目里啊,惊讶的我是一塌糊涂的啊...(原谅我那时还没进入过正规的IT公司....好多你们自然 ...

  3. iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  4. 【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战

    前言 本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo.服务端将分别用MINA2和Netty4进行实现,而通信时服务端你只需选其一就行了.同 ...

  5. 实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

    简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码, ...

  6. 【iOS】小项目框架设计(ReactiveCocoa+MVVM+AFNetworking+FMDB)

    上一个项目使用到了ReactiveCocoa+MVVM+AFNetworking+FMDB框架设计,从最初的尝试,到后来不断思考和学习,现在对这样一个整体设计还是有了一定了理解与心得.在此与大家分享下 ...

  7. iOS:项目中疑难Crash问题集锦

    项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash ...

  8. iOS 深浅拷贝

    -(void)copyDemo { // 在非集合类对象中:对immutable对象进行copy操作,是指针复制,mutableCopy操作时内容复制:对mutable对象进行copy和mutable ...

  9. iOS开发之组件化架构漫谈

    前段时间公司项目打算重构,准确来说应该是按之前的产品逻辑重写一个项目.在重构项目之前涉及到架构选型的问题,我和组里小伙伴一起研究了一下组件化架构,打算将项目重构为组件化架构.当然不是直接拿来照搬,还是 ...

随机推荐

  1. linux command dialog

    Linux command dialog [Purpose]        Learning how to use dialog commad, do  man-machine interaction ...

  2. Python - Learn Note (3)

    Python之模块 包就是文件夹:包可以有多级: 模块就是 xxx.py文件:可以创建自己的模块,并且导入它们,模块的名字就和文件的名字相同: Python使用import语句导入一个模块. impo ...

  3. Thinking in Java笔记之类及对象的初始化

    最近在看<Thinking in Java>这本书,之前一直对类及对象的初始化过程不太清楚,只是感到很模糊.看了这本书关于对象初始化的部分,终于搞明白了. 废话不多说,先上两个例子,实例摘 ...

  4. numpy 小示例

    import numpy as np 生成 3*4 的由  0 组成的二维数组 >>> np.zeros((3,4)) array([[0., 0., 0., 0.], [0., 0 ...

  5. L1-012 计算指数

    真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2​n​​.不难吧? 输入格式: 输入在一行中给出一个不超过 10 的正整数 n. 输出格式: 在一行中按照格式  ...

  6. MyEclipse移动开发教程:设置所需配置的iOS应用(四)

    MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 三.创建配置文件 Provisioning profiles授权文件应用程序在iOS设备上安装并运 ...

  7. Linux运维学习笔记-网络技术知识体系总结

    传统网络知识体系 未来网络SND模型架构

  8. 第32课 初探C++标准库

    有趣的重载: 实验: 将1左移到cout对象中. 将Test改名为Console,此时我们的本意是想让这个cout代表当前的命令行: cout代表命令行的一个实例,本意是想将1打印到命令行上. 我们在 ...

  9. caffe安装编译问题-ImportError: No module named google.protobuf.internal

    问题描述 ~/Downloads/caffe$ python Python (default, Dec , ::) [GCC ] on linux2 Type "help", &q ...

  10. opencv-python教程学习系列7-opencv图像基本操作

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的基本操作,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...