说起来Adobe AIR这玩意儿,我刚开始接触它那会,也就是十来年前的事儿了,那时候我还在一家小公司里混日子。我们那时候的项目,要不是那种老掉牙的桌面程序,就是要写网站。写桌面程序就得用Delphi或者VB,效率是真低,界面做起来也死板。写网站,来回改需求,客户又老想着那种花里胡哨的动态效果,用JS和Flash来回捣鼓,也累得够呛。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
那段时间,我有个朋友跟我提了一嘴AIR,说能用web技术写桌面应用,我当时还半信半疑。觉得这不是瞎搞吗?网页的东西怎么可能跑到桌面上去。但是,架不住好奇心,我就硬着头皮去研究了。
第一次上手,感受“跨平台”的震撼
我记得我最先动手,就是想做个公司内部的小工具,用来统计一些杂七杂八的数据。老板当时的要求是,这玩意儿得在所有同事电脑上都能用,有的用XP,有的用Win7,还有个别爱折腾的用Mac。我一听就头疼了,不同系统搞一套代码,那不就是给自己挖坑吗?
-
我先是
我先是拉起了一个AIR项目,想着反正会写ActionScript,就用Flex搭个界面试试。结果一写起来,我发现这玩意儿真的是太方便了。我搭好了一个简单的界面,里头有几个按钮和文本框,主要就是用来导入导出Excel数据。写完之后,我直接打包成了Windows安装包,又打包了一个Mac安装包。当时我拿着这两个包去同事电脑上试,叮咚一响,安装完就能跑,无论是Windows还是Mac,界面一模一样,功能也完全正常。
-
我当时就震惊了,这不就是“一份代码跑多平台”吗?这一下就省了我多少事儿!以前想着还得找个懂Mac开发的同事帮忙,或者自己学一套Mac的开发,现在直接用我熟悉的ActionScript就能搞定,效率蹭蹭就上去了。
体验“熟悉的味道”,开发效率飞升
后来随着项目功能越来越复杂,客户又开始要求桌面应用得有更多的“互动性”,界面要好看,操作要流畅。那会儿,传统桌面开发做这种东西,真的能搞死人。比如做个平滑的动画效果,或者拖拽功能,都得写一堆底层代码。但是AIR这边,就完全不一样了。
-
我发现,因为AIR底层就是基于Flash Player的,或者说它就是Flash技术的延伸,所以我之前在Flash里写的那些动画代码、交互逻辑,甚至是一些UI组件,几乎都能直接搬到AIR项目里来用。这对我来说简直是福音,不用重新学一套UI框架,直接就能上手。
-
而且它不仅支持用ActionScript和Flex来写,后来也开始支持用HTML、CSS和JavaScript来开发。这更厉害了,我们组里那些前端同事,以前根本没法参与桌面应用的开发,现在直接拿他们手里的Web技术,也能做出一个像模像样的桌面应用。大家一起协作,开发的效率比以前高了好几倍。
-
我记得有一次,客户突然想在应用里加一个拖拽上传图片的功能,我当时就想,这在web里也挺常见的,我用JS写了两天,配合AIR的本地文件系统访问能力,轻轻松松就搞定了。要是换了传统桌面开发,我估计光是文件操作权限的问题,就能让我挠破头。
“桌面级”能力,突破浏览器桎梏
说到本地文件系统访问,这可是AIR给我最大的惊喜之一。以前我们写网页应用,最蛋疼的就是对本地资源的访问权限太受限了。想读取个本地文件,或者调个摄像头什么的,那基本上都是不可能的,或者得通过浏览器各种安全限制和用户授权。但是AIR,它可是个正儿八经的桌面应用。
-
我用它写过一个图片处理的小工具,可以直接让用户选择本地文件夹,然后批量处理里面的图片。这功能要是放浏览器里,简直是天方夜谭。但在AIR里,我直接调用系统接口,文件目录一览无余,用户体验瞬间就上来了。
-
还有一次,我们公司需要一个能和USB设备进行通信的应用。我当时都准备去啃C++的文档了,结果发现AIR也能做到。通过一些扩展库,我居然也能让它跟USB设备进行数据交换。虽然折腾了一阵子,但最终还是搞定了,这种能直接深入到操作系统层面的能力,真的让我觉得AIR不仅仅是个“套壳浏览器”,它是个实实在在的桌面应用开发平台。
稳定发布,让用户用得安心
说一下发布和部署。我们以前的桌面程序,经常需要用户自己去安装一大堆运行时环境,比如.NET,各种VC++库,搞得用户体验特别差。但AIR就简单多了。
-
我把应用打包成安装包,无论是exe还是dmg,用户下载下来,双击一下就安装好了,所有的运行时环境都集成在里面了,根本不用用户操心。这对于推广和用户使用来说,简直是方便到家了。
-
而且我还发现AIR的应用更新也挺省心,可以做无感知的后台更新,用户下次打开就是最新版本,完全不用像以前一样,每次更新都得重新下载整个安装包。这种平滑的更新体验,让我们的维护成本也降低了不少。
所以你看,从最开始的半信半疑,到后面真刀真枪地实践,我才算是真明白了Adobe AIR的这些厉害之处。它解决了我那时候遇到的很多痛点,也让我看到了桌面应用开发的新可能。虽然现在大家选择多了,新的技术层出不穷,但回过头看,当年用AIR搞出来的那些东西,到现在我还是觉得挺有成就感的。