LinkedIn移动开发团队主管Kiran Prasad表示,该应用95%都是基于移动网络环境进行开发的。惊叹之余,我们也能理解,Kiran Prasad是LinkedIn移动应用开发团队主力工程师,近期也参与开发了一系列基于移动网络的应用。
Prasad和他的四人团队共同打造了LinkedIn的这款精致的iPad应用,不禁要问,他们是如何基于移动网络技术开发出一款不错的平板端应用的。
iPad版LinkedIn应用
特别是在如今硅谷愈演愈烈的Web应用VS原生应用大战的背景下,LinkedIn一改往日传统保守的形象跻身于移动技术的实践先锋。不过,这么说也有失公平,事实上,LinkedIn在移动网络技术的研究已有一段日子,如今,它是移动网络开发技术的最大支持者之一,也是最具有价值的移动开发案例的研究对象之一。
LinkedIn和它的移动网络开发技术
Kiran Prasad 透露,“去年,我们推出了三款不同的手机应用。那时候,我们就开始采用HTML5技术进行开发,比例为60比40,也就是说,有60%的应用都是基于HTML5技术开发的。”
那时,LinkedIn最大看点在于打造了一系列使用Node.js的移动应用,当时很多人都认为LinkedIn下了一场赌注。不过,后来的结果是,开发团队成功打造了结合原生和移动网络功能为一体的iPhone和Android应用,模糊了原生应用与Web应用之间的界线。
Kiran Prasad说,现在公司比以往任何时候都更加依赖移动网络技术。“从那时候开始,我们就进行了投资,准备朝这个方向全力进军,而且之前开发的产品都证明了打造平板端的移动网络应用被是可行的。”
Kiran Prasad认为,虽然更大限度地提升开发性能是一个十分吸引人的点,但是,却不能以牺牲应用的美观度、易用性和响应功能为代价。
他认为,“我们一直都把用户体验和应用响应速度看作是开发过程中的首要考虑因素。如果可用性不高的话,我们也就不会斥力开发移动网络应用了。比起其他移动设备,iPad处理速度更快,功能也更加强大,于是我们就想,也许基于移动网络技术照样可以开发出一款具有同样性能的应用。”
Kiran Prasad继续说到,最终都归结为是否能够解决一系列小问题,即手指轻触屏幕后能够达到按压屏幕上按钮同时迅速弹回同样的效果?是否能够实现迅速的屏幕滚动?淡入淡出功能能否做到自然而没有任何滞后的效果?
“我们内部进行了用户调研,结果是用户并没有感到有太多的不同。没人说,‘这是原生应用’或者‘这是网络应用’。只要是一款速度不错、用户体验良好的应用,没人会注意到它的不同,” Kiran Prasad如是说道。
Kiran Prasad说,很多良好的性能体验都得归功于去除了很多不必要的设计要素,比如无所不在的渐变背景和圆角(rounded corners)。通过努力实现简洁、干净、平滑和杂志版面类似的效果,LinkedIn的这款应用在速度上也变得更快,性能也更好。
“我们一直试图强调设计的简洁化,同时也提升了运行速度,” Kiran Prasad如是说道。
LinkedIn更多依赖Node.js进行应用开发
公司对移动网络应用开发加大了投入力度,同时Kiran Prasad也更有信心大刀阔斧的基于Node.js开发应用。
“我们现在仍然基于Node.js开发应用,而且使用范围更大,这让我们感到高兴。过去几个月以来,我们提升了性能,因此我们对它的使用率就更高了。现在我们的负载处理比之前提升了20倍。”
Kiran Prasad说,考虑到Node的稳定性,公司过去使用开源网络服务器和反向代理服务器Nginx。“因为那样比较安全,如果其中任何一个Node崩溃,Nginx将会及时报告错误,” Prasad如是说道。
然而,现在Kiran Prasad觉得不再需要这把保护伞了。“在服务器的平板端版本中,我们仍然使用Node,但是现在客户端直接通过负载均衡器来访问节点,这样就不需要Nginx了。”
这次,团队本身除了提升这种技术性能之外,还促进了节点工具生态系统的成长。Kiran Prasad 说,“其中我们改进了一些节点模块,之后将会在社区中以开源形式放出,另外一些则是针对特定的应用。总的来说,节点工具是变得更好了。”
响应式设计并不总是奏效
最后,Kiran Prasad谈到了移动应用新趋势,响应式设计(Responsive design)。
响应式设计的关键点在于设计师或开发人员只需进行一次设计就可以自动响应、灵活调整兼容不同的设备,横跨笔记本、平板电脑、电视、移动手机等多个平台。很多支持者认为这有利于为广泛存在的有连接设备分化提供解决方案,为此,很多公司提供特定的工具,旨在把这种响应式设计变得更加简单和快速。
然而,Kiran Prasad不认同这样的观点。他觉得,对于那些简单不复杂、一次性的网站来说,响应式设计或许还行得通,但是对于像LinkedIn这样的复杂应用和网络来说,响应式设计就不能奏效了。
“我们基于不同客户端的用户案例予以充分考虑,比如桌面端用户可能更倾向于确立已久的用途,平板端用户的使用环境则更多会在沙发靠椅咖啡桌旁边,移动用户端则是使用时间更短,” Prasad描绘出了不同客户端用户与数字信息进行交互的不同方式,让我们了解到,人们在不同的客户端交互方式和习惯都不一样。
Kiran Prasad 最后说到,“你不可能先打造一款移动应用,然后照搬到平板或桌面端中。许多响应式设计都是基于某个特定的平台环境先打造一个网站,然后把它移植到其他多个平台,这对于网站来说或许还可行,但是对于应用来说却不奏效。对于应用来说,你必须基于不同平台的用户案例设计不同的用户界面才行。”
来源:互联网 转载于临企外贸网站建设新闻频道