Facebook首席iOS软件工程师:开发原生iOS应用的几点心得

标签: 前沿 硅谷 | 发表时间:2012-11-20 19:20 | 作者:赵姝
出处:http://www.pingwest.com

 

什么因素最影响用户的使用一款应用程序行为?怎样提升用户的体验?Facebook的iOS应用的首席软件工程师Adam Ernst今天在Menlo Park,和我们分享了Facebook iOS团队在开发过程中遇到的问题,找到的解决方案,以及Facebook移动应用未来的发展。

用户的要求很简单:无缝连接!速度!


Facebook是一个基于Web起家的互联网服务公司,虽然今年Facebook的各位高管频繁表示Facebook是一家移动公司,这也无法改变其创始基因。Adam也提到,用户需要的,是无论在网页上还是移动终端上都能有一样的体验, 用户其实根本不需要你特地为移动终端做一个独一无二的交互界面。然而,这个“无缝连接”的一致体验,其实比本身建立一个原生态应用更复杂。

Adam在演讲提到,当Facebook的移动应用速度提高了,用户的好评度就明显上涨了。没有人愿意等着一个应用加载2分钟都没有能够刷新出新的内容,速度是Facebook iOS团队一直致力提升的地方,他也分享了更多关于速度的问题。

 

HTML:无缝连接应用开发平台

HTML作为应用开发平台带来的三大好处:

  • 时效性:HTML能够让用户在最短的时间内体验到你应用的改变。Adam提到之前Facebook曾新增了一个功能,结果一夜之间就有五千多位用户使用,并给出了及时的回馈。
  • A/B测试:A/B测试是一种交流性的新产品测试方式,往往是针对一个功能同时推出两个不同的版本来测试市场反应,并选择最佳的方案。加上高时效性的特点,可以很快选择出适合市场的版本。
  • 只需一次编码:没错,基于HTML的应用,只需一次编码,就可以完成网页、iOS、Android等不同运营系统的应用。这对开发者来说当然是个福音, 作为Facebook,这也是不会放弃HTML5的一个原因。

 

应用加速小贴士

说到如何加快速度,Adam有颇多心得:

  • 缓存数据客户端:

将数据缓存在本地存储器上的速度远远快于把数据存在云端!哪怕只有一小部分数据,你也会明显地感觉到速度的差别。并设计一个小型的数据库来记录本地数据,Adam也给我们看了Facebook iOS应用存储在客户端的数据,也有70多张表!

  • 从数据存储器上批量加载:

比较下列两组编程的区别,或许你能看到如何让你的应用运行地更快!

  • 团队合作

就像由一个人单独完成一件事情会需要更长的时间一样,你可以把应用的任务分配给不同的程序来完成。用网络线程(Network Thread)下载和解析数据;用渲染线程(Render Thread)去获取和呈现用户的故事,用大数据调度中心来完成后台任务,并不断循环该线性过程以达到最完美状态。

  • 保持图形处理器GPU的愉快运作

我们要做的是尽量减少不必要的图文量,比如说多层重叠的图片会需要更长的加载时间,不如就用一层不透明的颜色。再比如说,简单的文本会比复杂的文本内容来的快的多。同时,你可以尽可能地在有条件的时候缓存一些特定的版式和图片,来减少图形处理器的工作量。

  • 不要全屏显示加载状态


如果你是用户,愿意看到上面的小转轮不停地转动5分钟还没有完成加载吗? Facebook的要求是,永远不要出现这样整屏的等待状态!Adam说,宁可给客户显示2天前的状态,也别让屏幕空着,一定要给用户一些可以互动的内容,而非只能在一边干等待。

 

相关 [facebook 首席 ios] 推荐:

Facebook首席iOS软件工程师:开发原生iOS应用的几点心得

- - PingWest
什么因素最影响用户的使用一款应用程序行为. Facebook的iOS应用的首席软件工程师Adam Ernst今天在Menlo Park,和我们分享了Facebook iOS团队在开发过程中遇到的问题,找到的解决方案,以及Facebook移动应用未来的发展. Facebook是一个基于Web起家的互联网服务公司,虽然今年Facebook的各位高管频繁表示Facebook是一家移动公司,这也无法改变其创始基因.

Facebook iOS新版开发手记:两倍速度的背后

- - 博客 - 伯乐在线
Facebook上周发布了新版iOS应用,号称速度提升两倍. Facebook工程师Jonathan Dan在 Facebook官方页面中撰文,介绍了新版iOS应用、Facebook iOS应用的发展历程以及开发思路. 《创事记》特选取此文编译,供移动应用开发者参考. 我们今天发布了新版iOS应用,速度更快、更可靠、更易用.

未曾公开的 iOS 4 功能:卡片式多任务,集成 Facebook,文件分享

- 小趴 八足趴 八足 ramener - 爱范儿 · Beats of Bits
现在大家都知道 iOS 4 的多任务界面是双击主键弹出一排小图标,也知道 iOS 5 将在系统里集成 Twitter. 可曾想过原本的 iOS 4 是如何设计的呢. 几个月前越南的一个论坛里泄露出两段视频,当时被认为是 iOS 5 (实际上并不是),而现在看来,原来其中隐藏着一些未曾公开的 iOS 4 功能.

[IOS]iOS App性能优化

- - 操作系统 - ITeye博客
iOS App的性能关注点. 虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一. 我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理,当然更不能随随便便Crash啦. 工程师开发应用时除了在设计上要避免性能“坑”的出现,在实际遇到“坑”时也要能很快定位原因所在.

中国的Facebook?

- Lorna - It Talks--上海魏武挥的博客
腾讯近日很低调地推出了一个名为“朋友”的网络服务(也是一个使用独立域名的网站),这是一个与时下社交网站,比如人人、开心等非常类似的产品. 与它们一样,目前这个“朋友”上也加载了一些应用,当然,一贯的,以腾讯自家出品为主. 而且,我个人以为,未来会有更多的腾讯在QQ这个客户端上的应用,逐步向这个网站迁移.

Facebook初探

- 亦农 - 王建硕
今天的湾区阳光灿烂,280州际公路两边的绿色山坡和蔚蓝的白云,让人觉得自己是Windows XP桌面上的一个图标. 下午,2点,终于来到Facebook这个神奇的公司. 他们的新家在南加利福尼亚街的最里面,一幢两层的楼里. 他们刚刚从车位紧张的Palo Alto城里搬到这里,据说一层楼又要搬了. 我好像是他们再次搬地方前的最后一批访客.

Facebook败给Foursquare

- We_Get - GeekPark 捕风捉影
除了我们熟知的QQ,互联网世界里以自身强大资源来复制小公司的产品和服务的事,绝不少见. 去年8月份,Facebook推出了Facebook Places,这是一个类似Foursquare的基于地理位置的手机在线签到功能. Foursquare当时是社交网站新贵,几个月以后它成了代表着全球互联网方向中的SoLoMo中的Lo—Location.

Facebook的标语

- - 阮一峰的网络日志
Facebook即将 上市,一时之间成为全球新闻热点. 为了不错过商机,有人将Facebook内部的标语做成 海报,每张20美元,放到网上卖. 据说,从扎克伯格创业初期,这些标语就贴在Facebook的办公室,作为行动准则,激励员工. 虽然这些标语很简单,但是我发现,它们真的具有警醒的效果,能指导你做出正确的事.

读facebook效应

- - 搜索引擎技术博客
     我的一位室友说:“嘿,我来帮你”. 我回答他:“兄弟,你不会编程”,然后他周末回家买了一个perl编程入门的书,告诉我‘我现在准备好了’. 我就说;“兄弟,网站不是用perl语言编写的”.      我们并不想让用户在网站停留尽可能长的时间,我们所做的是让人们可以在网站用户好的体验,使他们在上面所花的时间有价值.

Facebook 开源 Detectron

- - 最新更新 – Solidot
Facebook 在 Apache 2.0 许可证下 开源了它的目标识别平台 Detectron, 源代码托管在 GitHub 上. Detectron 用 Python 开发,基于 Caffe2 深度学习框架. Facebook 同时公开了超过 70 个预先训练的模型. Detectron 项目始于 2016 年,实现了一系列最新的目标识别算法如 Mask R-CNN,该软件平台在社交巨人的视觉感知系统的进步上扮演了重要角色.