|
这里是Adobe官方网站对于AIR的介绍:
Adobe® AIR® 运行时使开发人员能使用 HTML、JavaScript、Adobe Flash® Professional 软件和 ActionScript® 构建 Web 应用程序,这些应用程序可以作为独立的客户端应用程序运行并且不受浏览器的约束。Adobe AIR 作为 Flash Platform 的一个关键组件,为跨设备和平台交付应用程序提供了一个一致、灵活的开发环境,使设计人员和开发人员能完全释放自己的创意。现在提供 AndroidΤΜ BlackBerryΤΜ Tablet OS 和 ios* 移动操作系统及电视支持。
MixMatchMusic首席执行官兼共同创始人,MobBase 移动应用程序服务开发人员,Charles Feinn,这样评价Adobe AIR:
借助 Adobe AIR,我们将相同的代码用于桌面、Tablet 和智能手机,这不仅为我们节省了时间和资金,还提供了部署效率。我们随后可以快速、有效地通过 Adobe 的应用程序分发服务 Adobe InMarket 分发这些应用程序。
Emantras Inc. 首席执行官,Sesh Kumar也给Adobe AIR不错的评价:
使用 Adobe AIR 和 Flash Platform 创建应用程序的投资回报和资源节省真正扭转了形势。AIR 是唯一可用的解决方案,它允许您通过重用代码瞄准智能手机、Tablet、台式机和电视。通过多种设备提供电子教学内容的能力令几乎所有人都能进行学习。
Adobe AIR诞生数年来,已经从1.0版本升级至如今的2.5版本,产品日趋成熟,其跨平台理念也从电脑桌面扩展到了移动平台,包括Android系统、ios系统、黑莓系统等等。
目前在各个领域已经涌现出了许多优秀的使用Adobe AIR技术开发的客户端软件,例如在社交应用领域,就有著名的TweetDeck,Twhirl,Spaz,Seesmic Desktop等等。他们可以支持Twitter, Facebook,FriendFeed,Myspace等国外常用的社交网站。
笔者是一位JavaEE和Flex开发者,但曾经做过Web设计师的工作。在使用如上社交应用的同时,笔者发现中国相应的应用非常稀少,因此萌生了为中国现有的社交网站开发应用的想法。目前笔者开发的豆瓣网应用DoubanTalk、豆瓣桌面客户端以及新浪微博客户端都受到了网友的热烈欢迎。
Adobe AIR可谓是开发社交应用的首选。首先,你可以使用Html、Javascript、ActionScript以及Flex进行开发,这比传统的基于C++、VB、Java语言的桌面应用的开发速度快了许多倍。其次,借助于Flash技术,你可以设计出极为炫目和体验极佳的用户界面,而传统桌面应用开发技术需要耗费大量精力才能做到。再次,Adobe AIR的跨平台特性为你省去了开发多平台版本软件的麻烦,最新的Adobe AIR甚至支持在手机平台运行,真正做到了“一处编写,处处运行”。
当然,笔者也考虑过使用SilverLight与WPF技术进行类似开发。虽然C#语言在与原生操作系统交互上更胜一筹,但是笔者后来还是放弃了。首先因为利用WPF技术开发的应用需要.NET Framework,这一运行时安装起来极其麻烦和费时,用户体验非常不好(尤其是WindowXP操作系统),而自带此运行时的Windows7操作系统目前的普及率并不算高。再次,.NET Framework运行时的跨平台特性做的远不如Adobe AIR成功,而这一点对于社交应用是至关重要的。
当然,AIR最大的劣势就是不能原生地与操作系统交互。因此,用AIR开发本地特性比较多的应用是没有多大优势的。然而,对于本地特性使用很少的社交应用来说,AIR自带的本地接口以及AIR2.0提供的本地程序调用接口(NativeProcess)已经完全够用了。
这里笔者提供一个具体案例——DoubanTalk,来说明如何使用Adobe AIR进行社交应用开发。
开发需求
豆瓣网是目前中国比较热门的社交网站,它提供一种类似Facebook和Twitter形式的社区交流形式,但是是非实名的,另外它还是著名的书评、影评、乐评网站。豆瓣网开放了有限的基于OAuth的API,调用方法是REST形式。豆瓣网目前的应用还比较贫乏,现有的应用也不够成熟和易用。
社交应用的吸引力在于给使用者带来不同于网页版本的方便快捷,以及创新的功能。
笔者开发应用的初衷便是希望提供一个这样的应用:能够完成豆瓣的基本功能;能够进行友邻广播的过滤和自动提醒;能够查询书影音信息并查看评论;还能够搜索书影音条目的下载地址。
最终的应用版本基本实现了上述功能,并加入了众多豆瓣网页没有的创新点,例如可以转发我说和日记;可以同步显示豆瓣电台歌词;可以查看同城天气预报等等,这些创新点也是该应用受到热烈欢迎的原因。
应用截图如下:
实现概览
笔者采用了Flex3.5来开发此AIR应用。相对于使用JavaScript和Flash Professional软件,Flex提供了易于维护和方便开发的XML标记语言——MXML语言。ActionScript是核心的Flash Player编程语言,而MXML是建立在其基础上的一个抽象。另外,Flex提供的各类标准组件大大加快了开发速度。
豆瓣网提供了REST形式的API,返回结果有两种,JSON和XML。对于第一种返回结果,可以使用Adobe官方提供的as3corelib库来进行解析;对于XML形式的返回结果,ActionScript3.0自带的e4x语法已经非常强大,解析XML非常方便。
部分API访问前需要进行OAuth认证,可以去Google上搜索相应语言对应的OAuth库。
在用户数据存储和离线数据存储方面,该应用采用了Adobe AIR自带的Sqllite本地数据库来储存用户数据。针对于Sqllite数据库的数据持久化,可以采用一些持久化框架,也可以自己编写Sql语言来实现。
当然,如果数据格式不是太复杂,也可以采用文本文件或者XML文件来进行数据存储。
实现细节
这里以应用的一项基本功能——获取最新友邻广播列表来进行说明。获取列表信息需要向豆瓣API服务器发出GET请求,而通过Flex的HTTPSerivice组件可以非常方便的发出GET请求。
首先,我们需要声明一个Flex HTTPSerivice组件:
<mx:HTTPService id="miniblogSrv" result="miniblogSrv_result_hander(event)" fault="faultHander(event)"/>
it知识库:基于Adobe AIR的社交应用开发及案例研究,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。