⑴ APP有哪些比較好的後台開源框架
1.Framework 7
來自iDangero.us —自版本1.0在一年前發布以來,Framework就一直是開發iOS應用程序的最佳選擇之一。由於它提供對安卓的支持,如果你先從iOS入手,但隨後構建具有類似iOS外觀感覺的安卓版本,它也是個不錯的選擇。功能特性包括:Material Design用戶界面、原生滾動、1:1頁面動畫、自定義DOM庫以及XHR緩存和預裝入。
3.jQuery Mobile
來自jQuery基金會— 這種成熟的輕量級框架基於jQuery,缺少本文中介紹的大多數程序包具有的許多高級功能,不過它仍擁有一群龐大的忠實用戶。雖然它提供了語義標記、漸進式改進、主題化設計和PhoneGap/Cordova支持之類的功能,但是在類似原生系統的功能和性能或者高級用戶界面方面乏善可陳。另一方面,它又很簡單,這意味著「編寫一次,到處運行」是常常可以實現的目標;對於還需要在Windows Phone和黑莓上運行的簡單應用程序而言,它也是個不錯的選擇。
2.Ionic
來自Ionic — 這種流行的跨平台框架基於Sass CSS擴展語言,使用起來相當容易,不過它還能集成用於構建更高級應用程序的Angularjs。Ionic提供了一個豐富的庫,包括針對移動設備優化的HTML、CSS和JS CSS組件、手勢及工具,可與預定義的組件協同工作。命令行介面提供了模擬器、實時重裝和日誌等功能。還有一個基於Cordova的應用程序包裝器。
4.Kendo UI
來自Telerik — 這種基於jQuery的HTML5/java框架既有開源版,又有商業版。對企業用戶友好的Kendo UI提供了種類豐富的用戶界面窗口組件和插件。它最廣為人知的地方就是擁有無數具有Material Design風格的預構建主題,另外還有一個主題構建器,可用於構建自定義主題。其他功能特性包括:Angular和Bootstrap UI集成以及性能優化。
6.Native
來自Telerik —顧名思義,Native專注於原生用戶體驗開發,但是它提供了跨安卓和iOS的跨平台代碼共享支持。該軟體使用現有的原生用戶界面庫,用戶界面由Java、XML或視情況而定的Angular來描述。然而,使用起來,它不如Telerik更傳統的跨平台Kendo UI框架來得容易。
5.Mobile Angular UI
來自Maurizio Casimirri —這個開源項目將AngularJS和經過修改的推特Bootstrap合並到了一個移動用戶界面框架。據說它保留了Bootstrap 3的大部分語法,因而更容易實現從Web應用程序向移動應用程序的移植,同時增添了Bootstrap缺失的許多組件,比如切開關、覆蓋、側邊欄、可滾動區域以及固定位置的導航條。庫包括fastclick.js和overthrow.js。
7.Onsen UI
來自Asial Corp. — Onsen基於HTML和CSS而建,旨在與並非預先集成的PhoneGap和Cordova協同運行。它還可以與Angular和jQuery協同運行。顧名思義,該程序強調用戶界面開發,並提供了一系列廣泛的基於Web的用戶界面組件和特性,比如表格的雙列視圖。(然而,仍然缺少Material Design。)這個文檔完備的程序針對這樣的jQuery Mobile用戶:既需要易於使用,又想要更多的功能、更高的性能和更豐富的用戶界面特性。總部位於東京的Asial正在開發一種拖放式GUI工具,該公司還開發和維護Monaca。
9.Sencha Touch
來自Sencha — Sencha的成熟的、面向企業的HTML5/Java框架既有開源版,又有商業版。Sencha建立於ExtJS的基礎上,能夠獲得類似原生的性能。它為HTML5提供了可視化應用程序構建器,另外還提供了重復使用自定義組件的功能。原生包裝器簡化了分發到Google Play等應用程序商店的工作。
8.React Native
來自Facebook — React Native是一種開源框架,從Facebook的React Java框架派生而來,眾所周知,Java框架取代了早些時候的HTML5基礎。顧名思義,這個面向iOS的高端程序與其說是一種跨平台框架,還不如說是原生程序包裝器,但是由於新增了對安卓的支持,它很適合我們的要求,因為你實際上只要用Java編寫一次代碼,就能移植到這兩個平台。目前,只有OS X桌面得到全面支持,不過也有試驗性的Linux和Windows版本面向安卓開發。
10.Titanium
來自Appcelerator —不像那些比較偏向Web的框架,Titanium使用Java來構建原生代碼,聲稱有望提升性能。這種基於Node.js的軟體開發工具包(SDK)為iOS、安卓、Windows、黑莓和HTML5提供了5000多個API。Titanium更廣為人知的地方是性能和豐富的功能特性,而不是易用性。軟體是開源,不過只要你不發布你的應用程序,功能齊全的免費版可以免費享用,眼下你每月至少得支付39美元。
⑵ 如何用JS調用幾十萬原生API
《近匠》HBuilder:如何用JS調用幾十萬原生API?
發表於2014-04-15 18:02| 次閱讀| 來源CSDN| 0 條評論| 作者翟方慶
近匠訪談開發工具HBuilder王安DCloudHTML5
摘要:《近匠》第25期:HBuilder是DCloud開發的一套Web開發IDE,它通過完整的語法提示和代碼輸入法、代碼塊等,大幅提升HTML、JS、css的開發效率。更有意思的是,它可以利用JS調用原生API。
CSDN:請講講團隊和您以往的從業經歷?
DCloud CEO王安:我們團隊從03年起開始做手機App,從J2me、Symbian、Win mobile、Brew一直做到現在的Android、iOS和WP。之前一直在為企業市場提供跨平台手機App的無線中間件。
後來我們看好HTML5的前途,而且也經不住toC市場的誘惑,就毅然出來二次創業。成立了 DCloud.io,開始做基於HTML5的生態系統服務,包括開發工具和雲服務。
我們是W3C的會員,也是HTML5中國產業聯盟的發起單位。我們是一個典型的輕團隊,人不多,但極客化。我們的合夥人之一王淮也在Facebook工作了很久,給我們帶來了很多矽谷的模式。
CSDN:為什麼要做HBuilder這樣一款工具?
王安:人稱HTML5是「性、工、能」缺失,其中「工」指工具不給力,確實如此。
任何主流編程語言,都有優秀的開發IDE,不管是java、.net、Obj-C,但HTML5領域卻一直在用低效的文本編輯器開發。我個人用了十幾年文本編輯器,對比我熟悉的其他語言的IDE,效率也實在讓我受不了。我們就動手開發了HBuilder。
HTML十幾年前初生時,是簡單的標記語言,確實文本編輯器足矣。那時候寫頁面的人都不被視為真正的程序員。但時代不同了,現在JS、css已經發展為真正的編程語言,一個工程會非常龐大,此時沒有IDE會很低效。就像用文本編輯器寫java或Obj-C一樣,效率比專業IDE差很多。
過去也確實沒有太好的HTML5 IDE,更不用提免費的好工具。因為web IDE開發確實很困難,web語法庫沒有統一標准,月月更新,JS是無類型的動態語言……
但是有問題,就會有解決問題的人。所以我們花費大力氣,建立最全的語法庫和瀏覽器兼容資料庫,開發動態JS解析引擎,開源框架語法庫。並且我們在開發效率提升上下了非常大的功夫,快是HBuilder最大的特點,能提升數倍開發效率。
另一方面,HTML5的重要價值是開發手機App,HBuilder為開發者提供移動App開發的全套支持,支持插上數據線真機聯調,不需xcode等原生開發環境就能打包手機App。此外,我們有項創新的技術是JS調用幾十萬原生API。
CSDN:HBuilder是針對移動應用的哪一個環節?在這個環節中,現在是一種什麼狀況?格局是什麼樣的?
王安:使用HTML5、JS、css開發跨平台手機App,這類工具其實之前已經有Phonegap、Titanium。從品類相比,Phonegap只有Runtime沒有IDE,Titanuim的IDE是為其特殊API而製作的專有工具。但HBuilder是一個通用的HTML5開發IDE且又內置了手機runtime。也就是開發者只需要HBuilder就夠了,PC web、Mobile web、App,一個工具一套代碼。
我們推崇一個理念叫「響應式應用」:一套代碼根據不同運行環境調用不同能力來優化用戶體驗。比如文本框,在普通瀏覽器下就是一個文本輸入框,在Chrome瀏覽器下運行時加個判斷調Chrome的語音輸入,而運行在App模式下,則再加一個判斷調用原生的語音識別SDK,比如plus.speech。這樣一個應用可以根據設備的不同而最大化的優化用戶體驗,這種模式很有魅力,對用戶而言體驗更好,對開發者而言成本更低。
當然,比其他同類產品更神奇的一點是,HBuilder里能通過JS代碼的寫法操作幾十萬原生API,即Obj-C和Android原生的對象。
CSDN:HTML5在跨平台App開發上有哪些問題?
王安:前景美好,但卻有四個致命缺點阻礙它的爆發,就是「性、工、能」缺失,碎片化嚴重。相對於原生,HTML5的App性能低,工具差,能力弱。原生雖然不跨平台,但HTML5的瀏覽器兼容性也讓開發者撓頭。HBuilder為了解決這些難題做了很多努力。
1. 先說工具
HBuilder大幅提升了HTML5開發效率。並且也擁有最全且實時更新的HTML5新語法庫。瀏覽器更新版本後一周內其新增的語法就可以被HBuilder提示出來。
HBuilder追求快,還有一個目的,就是降低開發者對框架的依賴。PC Web里框架非常流行,很多框架簡化了開發。但是框架的簡化開發建立在性能下降的基礎上,手機上HTML5本來就慢,層層封裝後只會越來越慢。但開發者使用HBuilder會發現,在HBuilder里不用框架開發的速度,比用其他開發編輯器配合框架的速度,更快。
目前主流HTML5開發工具都更新在沒有手機真機聯調等功能,HBuilder提供了這些功能才能有效的語法庫里幫助開發者開發手機App。
2. 瀏覽器兼容性
由於瀏覽器內核不同,自有擴展語法多,新語法增加速度快,導致碎片化很嚴重,而且是持續性的給開發者造成困擾。HBuilder里每個語法,都有瀏覽器兼容性說明,是目前最全的瀏覽器兼容資料庫。見下圖,-webkit-user-select這個屬性的值域all,IE和Firefox自然不支持,圖標為灰色。但同為webkit內核,Chrome支持;而Android瀏覽器不支持,圖標為灰色;Safari也只有7.0以上才支持,圖標是半亮。
有人說手機上都是webkit內核瀏覽器,應該沒有兼容性問題。但上圖告訴開發者殘酷的真相:iOS、Safari、Android瀏覽器、Chrome安卓版,主流的3款手機瀏覽器一樣有兼容性問題。Google和Apple聯手打破IE的壟斷後,又開始分裂,Chrome去年另起了Blink引擎,開始獨立擴展語法。另外雖然Safari的Mac版和iOS版有點差別,但不多;而Chrome的Android版和Android系統自帶的瀏覽器完全是2個產品。作為開發者,我甚至有點懷念IE壟斷市場的日子。
我們努力做出這個瀏覽器兼容庫,希望可以幫助到廣大開發者。
3. 能力
HTML5規范的好處是跨平台的,但壞處是規范能力比原生差非常多。為了解決這個問題,我們推出了兩套方案:HTML5+的跨平台規范和JS直調原生API。
HTML5+的跨平台規范:開發者常用的手機能力,封裝在HTMLplus.org規范里,包括二維碼、語音輸入等,比如在JS里輸入plus.barcode調用二維碼,plus.speech調用語音輸入。開發一次在不同手機上都可以運行。JS直調原生API:我們提供了plus.ios和plus.android這2個很神奇的對象,使得web開發者不用學習Obj-C,不用買Mac設備,就能在JS里調用原生對象。我們可以這么定義一個JS變數,但實際上是Obj-C對象:我們可以這么定義一個JS變數,但實際上是Obj-C對象:JS直調原生API:我們提供了plus.ios和plus.android這2個很神奇的對象,使得web開發者不用學習Obj-C,不用買Mac設備,就能在JS里調用原生對象。我們可以這么定義一個JS變數,但實際上是Obj-C對象:
var a = plus.ios.implements("NSObject",{"authenticationChanged:":authenticationChanged});
或者如下圖中的:var Intent = plus.android.import("android.content.Intent");其中的"android.content.Intent"是Android的原生類。這段代碼就是使用JS方式給在安卓手機桌面創建一個App快捷方式。這樣,使用HTML5編程的App,在能力方面就和原生一樣強大了。 以前用HTML5做的游戲都無法調用Game Center,O2O應用也調不了Passbook,現在這些都輕而易舉。我們相信這對於web工程師而言,是極大的能力解放,充滿機會的一扇新窗口!
4. 性能
HTML5應用的性能一直是這個產業發展的瓶頸。
手機硬體比PC差、HTML5作為解釋性語言比原生的編譯型語言性能差、手機瀏覽器的默認控制項樣式未優化導致需要在應用層重新封裝UI。這一系列問題疊加在一起,使得性能成為所有HTML5開發者心頭的痛。
另外前端工程師大多長於UI,相比伺服器工程師,他們的代碼性能也要低不少。比如前端工程師很習慣使用框架,框架層層封裝越來越慢,性能如何上的去。HBuilder在解決這個問題上也花費了很多心血:
a. 調用原生繪制界面
在HTML5+規范里有一個plus.ui的子集。一些原生樣式或動畫,比如翻頁動畫或下拉刷新,使用HTML5+JS+css模擬要寫很多代碼,執行起來很慢,此時通過plus.ui擴展就可以在窗體上設置一塊區域,交給原生繪制。性能可大幅提升。
b. 性能第一的UI庫
以前宣稱為手機優化的框架,其實都不是把性能作為產品取捨的第一優先,或者為了框架使用者方便、或者為了框架維護者方便而犧牲了執行性能。我們決定自己做一個。這個項目我們還在開發中,不久會上線。
我們沒有把它稱為框架而是叫UI庫,是因為這里的控制項都是使用最簡單的css樣式的,直接寫class=」xxx」。相比於寫成data-role,然後在JS運行時才替換Dom,使用class的方式要高效的多。
控制項含有的必要的JS代碼,也是本著性能優先的原則開發的,代碼極其精簡高效,沒有$等三方框架,但又可以跨手機瀏覽器。並且這套UI庫會和HBuilder的打包機、Runtime深度整合,做到更高性能的優化。
CSDN:相對於編寫大量JS實現來說,HBuilder利用JS調用原生API,有哪些優點?
王安:JS調用原生API,最大的優點,是大大強化了HTML5的能力,突破了瀏覽器的限制,原生有幾十萬API,數量遠多於HTML5。比如攔截Android來電。
JS的執行效率肯定還是低於原生的,提升性能需要使用前述方案。
這項技術對於JS程序員來講是非常友好易學的,他不需要學習原生語言和配置開發環境,只需要查詢每個原生對象是做什麼用的,然後在JS的plus.ios或plus.andriod里把原生類名作為參數傳進去,就可以通過JS調用該原生對象的方法。
我們還製作了一批常用原生代碼模板,包括創建快捷方式、登錄game center的樣例代碼已經預置在HBuilder里。
CSDN:JS調用原生API,是如何實現的?
王安:這個非常復雜,不同的api需要不同的方法,手機、雲、IDE的共同配合。IDE的顯示代碼、打包機編譯、runtime實際運行這幾種情況下執行碼是不同的。
CSDN:HTML5跨平台開發領域的趨勢是怎麼的?
王安:HTML5的光明前途是毋庸置疑的,當Java被攔在iOS門外時、當終端和屏幕越來越多樣時,HTML5的簡單易用和跨平台這些特點都代表了未來的方向。
現在的問題僅僅是阻礙HTML5發展的那幾個難題,會在何時、會被哪些人解決。當性能、工具、能力、兼容性得到有效突破時,HTML5必將迎來發展爆發。
CSDN:接下來針對HBuilder,Dcloud還有哪些計劃?
王安:除了上面提到的高性能手機UI框架,HBuilder下一步會引入SNS和UGC,強化插件體系,聯合眾多開發者打造大家更滿意的工具和服務。我們很認真的開發著這個免費工具,也希望所有開發者都參與到這個工具的打造中來。目前HBuilder已經在 github.com/dcloudio上設立了3個開源項目,歡迎大家一起打造自己滿意的工具。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
⑶ android app開發中常用到哪些開源框架
1.Framework 7
來自iDangero.us —自版本.0在一年前發布以來,Framework就一直是開發iOS應用程序的最佳選擇之一。由於它提供對安卓的支持,如果你先從iOS入手,但隨後構建具有類似iOS外觀感覺的安卓版本,它也是個不錯的選擇。功能特性包括:Material Design用戶界面、原生滾動、1:1頁面動畫、自定義DOM庫以及XHR緩存和預裝入。
3.jQuery Mobile
來自jQuery基金會— 這種成熟的輕量級框架基於jQuery,缺少本文中介紹的大多數程序包具有的許多高級功能,不過它仍擁有一群龐大的忠實用戶。雖然它提供了語義標記、漸進式改進、主題化設計和PhoneGap/Cordova支持之類的功能,但是在類似原生系統的功能和性能或者高級用戶界面方面乏善可陳。另一方面,它又很簡單,這意味著「編寫一次,到處運行」是常常可以實現的目標;對於還需要在Windows Phone和黑莓上運行的簡單應用程序而言,它也是個不錯的選擇。
2.Ionic
來自Ionic — 這種流行的跨平台框架基於Sass CSS擴展語言,使用起來相當容易,不過它還能集成用於構建更高級應用程序的AngularJS。Ionic提供了一個豐富的庫,包括針對移動設備優化的HTML、CSS和JS CSS組件、手勢及工具,可與預定義的組件協同工作。命令行介面提供了模擬器、實時重裝和日誌等功能。還有一個基於Cordova的應用程序包裝器。
4.Kendo UI
來自Telerik — 這種基於jQuery的HTML5/Java框架既有開源版,又有商業版。對企業用戶友好的Kendo UI提供了種類豐富的用戶界面窗口組件和插件。它最廣為人知的地方就是擁有無數具有Material Design風格的預構建主題,另外還有一個主題構建器,可用於構建自定義主題。其他功能特性包括:Angular和Bootstrap UI集成以及性能優化。
6.Native
來自Telerik —顧名思義,Native專注於原生用戶體驗開發,但是它提供了跨安卓和iOS的跨平台代碼共享支持。該軟體使用現有的原生用戶界面庫,用戶界面由Java、XML或視情況而定的Angular來描述。然而,使用起來,它不如Telerik更傳統的跨平台Kendo UI框架來得容易。
5.Mobile Angular UI
來自Maurizio Casimirri —這個開源項目將AngularJS和經過修改的推特Bootstrap合並到了一個移動用戶界面框架。據說它保留了Bootstrap 3的大部分語法,因而更容易實現從Web應用程序向移動應用程序的移植,同時增添了Bootstrap缺失的許多組件,比如切開關、覆蓋、側邊欄、可滾動區域以及固定位置的導航條。庫包括fastclick.js和overthrow.js。
7.Onsen UI
來自Asial Corp. — Onsen基於HTML和CSS而建,旨在與並非預先集成的PhoneGap和Cordova協同運行。它還可以與Angular和jQuery協同運行。顧名思義,該程序強調用戶界面開發,並提供了一系列廣泛的基於Web的用戶界面組件和特性,比如表格的雙列視圖。(然而,仍然缺少Material Design。)這個文檔完備的程序針對這樣的jQuery Mobile用戶:既需要易於使用,又想要更多的功能、更高的性能和更豐富的用戶界面特性。總部位於東京的Asial正在開發一種拖放式GUI工具,該公司還開發和維護Monaca。
9.Sencha Touch
來自Sencha — Sencha的成熟的、面向企業的HTML5/Java框架既有開源版,又有商業版。Sencha建立於ExtJS的基礎上,能夠獲得類似原生的性能。它為HTML5提供了可視化應用程序構建器,另外還提供了重復使用自定義組件的功能。原生包裝器簡化了分發到Google Play等應用程序商店的工作。
8.React Native
來自Facebook — React Native是一種開源框架,從Facebook的React Java框架派生而來,眾所周知,Java框架取代了早些時候的HTML5基礎。顧名思義,這個面向iOS的高端程序與其說是一種跨平台框架,還不如說是原生程序包裝器,但是由於新增了對安卓的支持,它很適合我們的要求,因為你實際上只要用Java編寫一次代碼,就能移植到這兩個平台。目前,只有OS X桌面得到全面支持,不過也有試驗性的Linux和Windows版本面向安卓開發。
10.Titanium
來自Appcelerator —不像那些比較偏向Web的框架,Titanium使用Java來構建原生代碼,聲稱有望提升性能。這種基於Node.js的軟體開發工具包(SDK)為iOS、安卓、Windows、黑莓和HTML5提供了5000多個API。Titanium更廣為人知的地方是性能和豐富的功能特性,而不是易用性。軟體是開源,不過只要你不發布你的應用程序,功能齊全的免費版可以免費享用,眼下你每月至少得支付39美元。