http://www.open-open.com/lib/view/open1328834050046.html
http://blog.csdn.net/gmailtoyou/article/details/6763447 lauch循环切换
http://www.eoeandroid.com/thread-156452-1-1.html 字体飞跃
偷工减料,让没有能力从事移动开发的团队,也能进行移动开发。偷工减料,但做出的成品,质量并不亚于完全原生代码开发的应用。这同样使得从事开发的企业能够省钱少力。何乐而不为?偷工减料,同时也可以大大加快开发速度。
企业移动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的模板引擎
The “template” binding
JsViews:下一代jQuery的模板
JsRender:下一代jQuery的模板
Google-jstemplate
jQuery的模板插件
jQote2 - JavaScript的模板改组
kite JavaScript模板引擎
mustache.js
Tempo
当然,上面很多是基于JQUERY的插件。相信,基于其它移动开发框架的肯定有很多客户端模板引擎。
好了,秘密完全公开了。 公式是: MWAF + WRAPPER + JS TEMPLATE = NATIVE APP。
相信,根据此,很多企业也就能够开发自己的APP了。
原来是因为方法名字重复了,因为baseview的方法名和子view的方法名字相同,都是initparam,所以就执行了子view的initparam方法,而没有执行baseview的
[UIColor colorWithRed:230.0/255.0 green:224.0/255.0 blue:200.0/255.0 alpha:1.0f]];
再配上数码测色计,真是无敌啊,哈哈,什么颜色都能设置。