企业应用移动APP偷工减料的秘密
??????? 偷工减料,让没有能力从事移动开发的团队,也能进行移动开发。偷工减料,但做出的成品,质量并不亚于完全原生代码开发的应用。这同样使得从事开发的企业能够省钱少力。何乐而不为?偷工减料,同时也可以大大加快开发速度。
??????? 企业移动APP开发,现在多数采用对HTML版进行封装。所以,一般我们称APP有两类,一类是NATIVE APP,那就是说,IOS肯定是完全OBJECT C++源码的。ANDROID肯定是JAVA源码的。另一类,就是使用相关的封装工具,瘵MOBILE WEB APP包装成NATIVE APP(所以,我们称为封装APP)。
??????? 这里有几点:第一,如果快速做出MOBILE WEB APP。这就需要对应的开发框架。则这类框架是很多的。列举如下:
baseJS
?
官方网站:http://paularmstrongdesigns.com/projects/basejs/
?
一套为Safari, Firefox和Mobile Safari设计的轻量化javascript framework,目前和以后都不支持IE。
?
iAd JS
?
官方网站:http://developer.apple.com/iad/
?
iAd JS是Apple为了iAd广告而设计的javascript framework,只支持iOS4以上的iPhone和iPod Touch。不过已经有开发者把它用于app的开发。需要和Apple付费申请iOS Developer Program才能使用。
?
iUI: iPhone User Interface Framework
?
官方网站:http://code.google.com/p/iui/
?
iUI是一套包含Javascript library, CSS和影像的iPhone web app framework,能够让web app有和native app相同的外观,并提供屏幕旋转侦测。
?
Jo HTML5 mobile app framework
?
官方网站:http://joapp.com/
?
另一个为行动装置设计的轻量javascript framework,对于HTML5的支持较其它framework丰富,包含WebQL, Audio。设计上比较特殊的部份在于UI组件的抽象化,因此能够在不同的装置上显示对应的UI。
?
jQTouch
?
官方网站:http://www.jqtouch.com/
?
jQTouch是一个jQuery的外挂,jQuery的开发者能够用最短的时间开发iPhone web app,支持自订主题和extension。
?
jQuery Mobile
?
官方网站:http://jquerymobile.com/
?
jQuery和jQiery UI的行动版本,强调跨装置(Smartphone和Tablet)跨平台( iOS, Android, BlackBerry, bada, Windows Phone, webOS, symbian和MeeGo ),提供jQuery核心与UI widget。
?
PhoneGap
?
官方网站:http://www.phonegap.com/
?
PhoneGap是一套开发原始码的包装软件 (Wrapper),能够把Mobile Web App包装成原生软件,支持iPhone/iTouch, iPad, Google Android, Palm, Symbian和Blackberry。透过PhoneGap所提供的Javascript library,便可以取得联络人、加速计、位置信息,还能控制震动。
?
Sencha Touch
?
官方网站:http://www.sencha.com/products/touch/
?
由ExtJS、jQTouch和Raphael(一个SVG library)整合而成的HTML5 mobile web app framework,支援iPhone, iPad与Android触控装置。具有完整的touch event (tap, double tap, swipe, tap and hold, pinch和rotate)、data integration (Ajax, JSONp及YQL)和完善的UI组件。
?
iWebKit
?
官方网站:http://iwebkit.net/
?
一个轻量的iPhone mobile web app freamework,主要功能在于利用CSS3仿真navitve app的外观。
?
MooTouch
http://dailyjs.com/2010/03/24/mootouch/
?
官方网站:http://gist.github.com/341230
?
MooTools javascript framework的外挂,目的在于模拟iPhone native UI。
?
Titanium Mobile
?
官方网站:http://www.appcelerator.com/products/titanium-mobile-application-development/
?
Titanium Mobile让你使用javascript、HTML5和CSS3就能打造iPhone和Android native app。因为它与OS深度整合,因此它能够使用Camera、存取文件系统、本地数据库,在通讯方面则支持SOAP和YQL。如果功能还不够,Titanium Mobile也允许使用Objective-C和Java扩充,再运用javascript呼叫。
?
PastryKit
官方网站:无
源文件:
http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.js
http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.css
Apple官方自己使用的javascript library,在iPhone上Safari预设书签里的iPhone使用手册(用iPhone打开才看得到效果)就是使用PastryKit打造而成的。PastryKit能够让Mobile Safari有着和native app有相同的外观(隐藏网址列、固定位置的工具列、重新定义页面卷动)。因为不是公开的framework,因此目前没有正式的文件,目前仅有零星几篇介绍和功能说明。
?
UiUIKit
官方网站:http://code.google.com/p/iphone-universal/
?
UiUIKit是一个模拟iPhone native UI的HTML/CSS3 framework,并提供原始的PSD影像文件。
?
Unify
?
官方网站:http://unify.github.com/unify
?
在destop, smartphone和tablet上模拟native app的web app framework,能够与Adobe AIR和Phone Gap整合,算是支持平台最广的framework,不过在2011 Q3才会提供tablet的UI组件。
?
WebAPP.Net
官方网站:http://webapp-net.com/
?
一个轻量化的javascript iPhone web app javascript framework,提供基本的UI组件与AJAX功能(附php proxy供跨网域存取)。
?
XUI
?
官方网站:http://xuijs.com/
?
PhoneGap的开发团队认为现代javascript framework (例如:jQuery, Ext, MooTools等)在行动装置上加载过于缓慢。因为这些framework都有很强大的跨浏览器兼容性,而在手持装置上这些并没有必要。于是他们打造了为行动装置浏览器最佳化的XUI。XUI目前支持WebKit, Fennec和Opera,未来也有计划IE Mobile和BlackBerry。
语法与jQuery相近,实作了方便的选取器, DOM操作, Event handeling, Style, Fx与XHR。
?
zeptojs
官方网站:http://github.com/madrobby/zepto
?
为行动装置最佳化的javascript framework,兼容于iOS 4+, Android 2.2+和webOS 1.4.5+,语法与jQuery相近。
?
也许,这些资料有些老了,可能还有更多新的。比如:
?
Jo HTML5 Mobile App Framework
http://joapp.com/
?
?
??????? 这些不同的Mobile Web App Framework,我认为在功能上应该可分为三大部份。
?
UI Component:提供适用于触控屏幕的UI组件Javascript Library:让开发更有效率的Javascipt函式库。Wrapper:把Mobile Web App包装成原生软件 (Native App),同时提供一些function让javascript可以存取一些底层的功能(例如:相机、档案系统、各类sensor)。?
??????? 实际上,框架第一步提供的是开发,第二个更为重要。那就是封装。上述框架中提供Wrapper的据本人所知,只有phoneGap和Titanium Mobile。 当然还有更多的第三方的Wrapper可用。
??????? 接下来,还有一项最重要的,那就是,你的APP与NATIVE? APP质量上的差别。其实,差别只在流量这一方面。因为,你的APP的界面定义是从服务器端下载下来的。NATIVE APP只要下载与安装一次。
??????? 不过,你的APP有一个最大的优势,那就是,你不需要不断更新,你会自动推给用户新功能与新版本。
??????? 为此,我们需要扬长避短。那就需要设法节省流量。好在,现在同样也有一些新技术支持我们这样干,这是什么呢?JS客户端模板引擎。通过JS客户端模板引擎,我们的界面只下载一次,后面均是数据交换。那么,我们的流量实际与NATIVE差别不是很大了。
????????JS客户端模板引擎目前也是相当多的。比如:
Nano 纳米 -? jQuery的模板引擎??????? 当然,上面很多是基于JQUERY的插件。相信,基于其它移动开发框架的肯定有很多客户端模板引擎。
??????? 好了,秘密完全公开了。 公式是: MWAF + WRAPPER + JS TEMPLATE = NATIVE APP。
???????? 相信,根据此,很多企业也就能够开发自己的APP了。
?
?
?
?
?