最美H5 酷站欣赏 UI素材 专题 设计导航

从互动广告到 iOS 开发

一年以前,我(指本文作者)还在从事各种 Flash 网站的开发,而现在却是拥有一间小工作室的iOS独立开发者。从互动广告行业转型到移动互联网,或许也是正在阅读本文的你心中的一点小念头。即便你仍然打算奋斗在互动广告行业,对移动互联网带来的冲击也不可能置身事外。

移动互联网,正在真真切切的改变我们每一个人的生活。那么,如何顺势而为,让我们能够在新的时代背景下游刃有余呢?

一、掌握移动平台的设计理念

首先,你应当成为移动互联网的应用达人,拥有一款移动设备,并成为重度用户。你要比用户或目标受众更了解这种新的媒介。同时,还需要学会观察和分析这些移动设备产品设计背后的精髓。这些设计内容主要包括以下方面

  • 用户手持设备的使用习惯。
  • 屏幕尺寸限制对设计的影响。
  • 多点触摸的操作方式。
  • 单窗口应用和多任务的设计方法。
  • GPS定位,陀螺仪等特有硬件模块。

然后,你还应当看看苹果公司的人机交互设计指南,了解那些极其详细的设计建议背后的理念。这将会保证你的创意不至于偏差得太过离谱。

此刻你一定已经有了一个不错的想法。好了,现在到了我们尽情发挥创意和设计才华的时刻。 像“下拉刷新”那样流行的操作可不是一开始就写在设计指南里的,而是由像我们一样的创作者想出来的绝妙创意。并且,这绝对是重度用户才能做出来的直觉式设计的最佳范例。还有 Instapaper 客户端的倾仰翻页,以及前段时间非常流行的 Clear 式轻扫和捏合操作,也都代表了交互设计的顶尖水平。

虽然在这个领域不乏一些专业的UI设计公司,还有各种互联网企业的UED正规军。但是在如何更进一步的改善移动应用设计方面,互动设计师也不甘示弱。如果将私密照片分享应用Path 2.0中的折叠菜单和以前的各种动态菜单作比较,我们可以发现其效果并不出众。用户在iOS应用上已经看了好几年标准界面的产物,难免开始产生审美疲劳。现在进入了重视用户体验的时代,互动从业者们在视觉表现和交互效果上的经验积累在此是一大优势。相比其它行业的转型者们,我们更容易创作出令人惊艳的作品。

但是这里也要提醒大家,我们的这种优势有时候也是一种制约。视觉效果是一把双刃剑,我们不能简单把之前为Web做设计的经验生搬硬套到移动平台上。我就曾见过为了展示动画效果,却把用户真正需求的东西放在流程后面的错误做法。移动设备还受到屏幕和电量的限制,在具体设计中我们应当把这些小亮点放在真正需要它们的地方,而把能够提升用户体验的设计放在第一位。

二、技术实现

讲完了设计层面,我再来谈谈技术层面。互动广告行业的前端技术人员大都来自 HTML 或 Flash 领域。当面临移动时代的转型时,一个难以抉择的问题是:要重头开始学习原生开发技术(Objective-C之于iOS,Java之于Android)还是延续现在的知识体系?这个问题没有标准答案,需要结合自己的职业定位来分析。

我们现在面对的是一个碎片化的平台,原先用 Flash 技术覆盖大部分前端需求的好日子已经一去不复返。最有希望的明日之星 HTML5 目前还受限于浏览器普及度和性能制约,尚不足以支撑原先在 Flash 技术上能够达到的高度。而运用原生语言针对不同平台进行定制开发的结果是成本和周期的成倍增长。

这里我分享一下自己的经历。去年我初次开发一款移动应用的时候,首先选择了 JavaScript+PhoneGap 的技术方案。为了模拟原生的UI,在网上搜索对比了不少框架(Zepto.js、JQMobile、Sencha Touch等)。最后选用Sencha Touch,一周之内就做出了应用。但是在开发过程中,我渐渐觉得用 JavaScript 做严谨的面向对象开发比较别扭。我渐渐觉得JavaScript不适合用于做严谨的面向对象开发。不要误会,我就是从学习脚本语言来入门编程的,对这类语言只有好感。我认为只有 jQuery 这种 Write Less, Do More 的思路才能表达出脚本语言灵活轻便的精髓。而先用脚本去做面向对象的开发,再做常规的UI设计会非常麻烦。再加上后来遇到了难以解决的 Mobile Safari 内存限制问题,最终我还是决定转向用 Objective-C 开发。但必须要说的是,掌握一款 JavaScript 移动开发框架也是很有好处的,至少能够很快的验证产品的想法。

我有一位朋友曾用AIR开发了一款收看美剧的应用。他首先尝试用Flex自带的Mobile组件,但视频画面不够流畅。后来转用ActionScript,但由于缺乏基本组件的支持,最终只好采用了基于AsWing的开发方案。

虽然他已经尽量优化性能,但依然无法完全达到原生组件的效率。从这一案例,我们可以看出:虽然语言迁移没有花费多少成本,但是在用AIR技术做移动开发的具体操作上,依然困难重重,更何况需要到真机上做调试。虽然现在已经有基于Starling的UI控件(GPU加速)和更加方便的USB调试,但是我认为Adobe在移动平台上的作为还是过于缓慢。

三、学习iOS原生开发

很多人对此望而生畏。他们都是被 Objective-C 怪异的语法给吓到了。就我个人的经验,消除这种恐惧最直接的办法就是找一段代码到 Xcode 中仔细研究。Xcode的代码辅助功能将会帮助你理解 Objective-C 语句的结构(当你亲眼看到 Xcode 生动的匹配提示时,你就会明白我的意思)。

一旦你熟悉了那些怪异的方括号语法以后,其它问题就可以迎刃而解。Objective-C 2.0以后的版本对属性存取引入了点语法,同时也缩小了与其它语言在书写上的差异性。为此,一些老派的 Objective-C 程序员还曾表示过抗议。实际上,大多数人在学会了 Objective-C 后,都会认同这种语言的优雅设计。

基本语言入门之后,我们就可以尝试在 CocoaTouch 框架上做些小例子。在网上的各种教程中,最受欢迎的是一套斯坦福的iPhone开发公开课教程。目前,最新的课程是对应于 iOS5 的2011版。如果你是刚刚接触iOS开发,建议直接学习 iOS5 以上的版本,新增的一些高级语言特性会让你的开发转型难度更小一些。 同时,不建议再翻看老版本的教程,以免在初始学习阶段给你带来混乱。

虽然进展到下一阶段后,还是免不了要和内存、引用计数机制等相对比较晦涩难懂的知识点打交道,但之前学到的知识,已经能让你写出一款不错的应用了。

入门以后,开发者便可以自主学习。伴随开发生涯最好的资料依然是苹果的官方文档。基本的视图和控制器开发指南,事件处理机制等应该了然于心。如果你比较关注表现层的绘图和动画技术,就应该多看看Quartz 2D和Core Animation指南。对于其它的不同框架,只要知道有何用途即可,具体知识要靠在项目实战中逐步掌握。对游戏比较感兴趣的可以去学习 Cocos2D 框架,据说和Flash类似。

随着技术研究的进一步深入,我们遇到的挑战会更大。选择原生语言开发就意味着选择与众多从传统编程领域转型而来的程序员展开竞争。而且在原生语言开发的过程中,需要接触大量的底层技术。但人生不正是由于充满挑战才变得多姿多彩的吗?

来自:?DamnDigital