① android app開發中常用到哪些開源框架
在前面的課程中,隨著對Android體系的了解,已經可以進行正常的Android應用開發了。在Android開發中,同其他工程開發一樣,也經常使用一些提高效率的框架,本文我們做一個對比。這些框架,既包括:網路請求框架、也包括圖片載入庫框架、還包括資料庫操作等一些框架,總之,了解和熟悉這些框架,會對自己的開發效率有很大的提升和幫助。
網路請求框架
1、okHttp
在前文的學習中,我們已經了解過okHttp,是一個常用的網路載入庫。
2、Retrofit
介紹
Retrofit是一個很不錯的網路請求庫,該庫是square開源的另外一個庫,之前的okhttp也是該公司開源的。
Retrofit是基於OkHttp封裝的RESTful網路請求框架,使用註解的方式配置請求。優點是速度快,使用註解,callback函數返回結果自動包裝成Java對象。官方自己的介紹說:
A type-safe REST client for Android and Java
該網路框架在github上的地址如下:https://square.github.io/retrofit/
要求
Retrofit支持的http方式方式包括 GET/POST/PUT/DELETE/HEAD/PATCH,Retrofit要求Java的版本是1.8+,Android應用的API版本應該在21+。
依賴
使用Retrofit庫,和其他庫一樣,首先需要設置依賴,依然是在build.gradle文件中設置依賴:
//添加retrofit庫依賴
implementation 『com.squareup.retrofit2:retrofit:2.1.0』
//添加gson轉換器
implementation 『com.squareup.retrofit2:converter-gson:2.1.0』
使用
通過一個例子,我們可以來演示該框架的使用步驟:
1、定義請求介面,即程序中都需要什麼請求操作
public interface HttpServices {
/**
獲取頭條新聞
@param type 新聞類型
@param key apiKey
@return
*/
@GET(「toutiao/index」)
Call getNewsList(@Query(「type」) String type, @Query(「key」) String key);
}
2、實例化Retrofit對象,使用的Builder的模式創建,如下代碼所示:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_API)
.addConverterFactory(GsonConverterFactory.create())
.build();
注意,這里設置結構體轉換器,是可以直接把網路請求回來的數據轉換為Java結構體,這里設置的Gson解析器,因此要引入相應的轉換器支持庫。
3、得到介面對象,自己創建的全局的介面對象,並調用相應的介面,得到一個類似於請求Call對象。如下所示:
HttpServices httpServices = retrofit.create(HttpServices.class);
Call newsListCall = httpServices.getNewsList(「top」, Constants.API_KEY);
4、加入到請求隊列中,並設置回調方法:
newsListCall.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
//網路請求成功的回調方法
List list = Arrays.asList(response.body().result.data);
Log.i(「TAG」, 「請求成功:」 + String.valueOf(list.size()));
NewListAdapter adapter = new NewListAdapter(RetrofitActivity.this);
adapter.setmData(list);
mRecyclerView.setAdapter(adapter);
}
@Override
public void onFailure(Call call, Throwable throwable) {
//網路請求失敗的回調方法
Log.i(「TAG」, 「請求失敗:」 + throwable.getMessage());
}
});
其他界面操作和之前的Android中的內容一致。
3、RxJava
簡單來說,用來處理事件和非同步任務,在很多語言上都有實現,RxJava是Rx在Java上的實現。
原理
RxJava最基本的原理是基於觀察者模式來實現的。通過Obserable和Observer的機制,實現所謂響應式的編程體驗。
特點
RxJava在編程中的實現就是一種鏈式調用,做了哪些操作,誰在前誰在後非常直觀,邏輯清晰,代碼維護起來非常輕松。
RxJava也是一個在github上的庫,githubhttp://www.xingkongmj.com/news/id/62.html地址如下:https://github.com/ReactiveX/RxJava
基於此,還有一個RxAndroid,github地址如下:https://github.com/ReactiveX/RxAndroid
RxJava和RxAndroid的關系
RxAndroid是RxJava的一個針對Android平台的擴展,主要用於 Android 開發。
基本概念
RxJava 有四個基本概念:
Observable:可觀察者,即被觀察者Observer:觀察者subscribe:訂閱事件
這四個概念之間的邏輯關系是:Observable和Observer通過subscribe方法實現訂閱關系,從而Observable可以在需要的時候發出事件來通知Observer。
事件
RxJava 的事件回調方法主要包含以下幾個:
onNext:普通的事件onCompletedhttp://dachang.net/432717.html:事件隊列完結。RxJava 不僅把每個事件單獨處理,還會把它們看做一個隊列。RxJava 規定,當不會再有新的 onNext 發出時,需要觸發 onCompleted 方法作為標志。:事件隊列異常。在事件處理過程中出異常時, 會被觸發,同時隊列自動終止,不再允許再有事件發出。在一個正確運行的事件序列中, onCompleted和 有且只有一個,並且是事件序列中的最後一個。需要注意的是,onCompleted() 和 () 二者也是互斥的,即在隊列中調用了其中一個,就不應該再調用另一個。
資料庫操作框架
在開發時,本地資料庫可以起到緩存數據和存儲業務數據的作用,隨著技術的成熟,不斷推出了有很多關於資料庫的操作框架。比較常見的資料庫操作框架有諸如:GreenDao,OrmLite 和 ActiveAndroid,DBFlow等。
GreenDAO
GreenDAO是一個開源的 Android ORM(「對象/關系映射」),通過 ORM(稱為「對象/關系映射」),在我們資料庫開發過程中節省了開發時間!
GreenDao的官方文檔地址如下:http://www.xingkongmj.com/news/id/63.html
GreenDao的作用
通過 GreenDao,我們可以更快速的操作資料庫,我們可以使用簡單的面相對象的API來存儲,更新,刪除和查詢 Java 對象。這款資料庫操作框架的特點是:
高性能,在官方的統計數據中,GreenDao在GreenDao,OrmLite 和 ActiveAndroid三個框架中,讀、寫、更新操作效率均表現第一。易於使用的強大 API,涵蓋關系和連接。內存消耗較小。安全:greenDAO 支持 sqlCipherhttp://www.xingkongmj.com/news/id/64.html,以確保用戶的數據安全;
核心概念
GreenDao 的核心類有三個:分別是:
DaoMaster:保存資料庫對象(SQLiteDatabase)並管理特定模式的 DAO 類(而不是對象)。它有靜態方法來創建表或刪除它們。它的內部類 OpenHelper 和DevOpenHelper 是 SQLiteOpenHelper 實現,它們在 SQLite 資料庫中創建模式。DaoSession:管理特定模式的所有可用 DAO 對象,您可以使用其中一個getter方法獲取該對象。DaoSession 還提供了一些通用的持久性方法,如實體的插入,載入,更新,刷新和刪除。XXXDao:數據訪問對象(DAO)持久存在並查詢實體。對於每個實體,greenDAO 生成DAO。它具有比 DaoSession 更多的持久性方法。Entities:可持久化對象。通常, 實體對象代表一個資料庫行使用標准 Java 屬性(如一個POJO 或 JavaBean )。
使用
按照官方的文檔和github上的說明可以實現green的使用。
首先進行的是依賴,對於greenDao,有兩個地方需要設置,分別是項目根目錄中的 build.gradle,還有mole中的build.gradle。
classpath 『org.greenrobot:green-gradle-plugin:3.3.0』 // add plugin
在項目根目錄中的build.gradle目錄中寫這句話的意思是添加greenDao的插件。
在項目mole中的build.gradle中也需要進行配置,有兩個地方需要設置,如下圖所示:
apply plugin: 『org.greenrobot.greenhttp://www.xingkongmj.com/news/id/66.html』 //開頭加入該代碼
dependences{
implementation 『org.greenrobot:green:3.2.0』
}
然後就可以使用了。
bean實體
可以在項目中創建自己業務需要的實體類,並通過註解來設置是實體類,欄位約束等內容。然後點擊Android Studio中的Make mole,即可自動生成XXXDao代碼,以此來方便開發者的操作。生成的XXXDao類,不可修改和編輯,是自動生成的。
ORMLite
ORMLite框架是另外一款Android開發中可以使用的資料庫操作框架。該框架的文檔地址如下:https://ormlite.com/sqlite_java_android_orm.shtml
該框架的文檔准備的不是特別友好,此處不再贅述。
總結,所有的框架原理幾乎都相差不大,只是操作有所差異。
視圖注入框架
在Android項目開發過程中,有太多的頁面需要布局完成,同時在代碼中需要些大量的findviewbyid的操作,來實現控制項的解析。於是就有人想能否輕松一些,解放雙手節省時間,干一些其他有意義的事情,於是ButterKnife就來了。
ButterKnife是一個專注於Android系統的View注入框架,可以減少大量的findViewById以及setOnClickListener代碼,可視化一鍵生成。
該項目在github上的地址如下:http://www.xingkongmj.com/news/id/65.html
這個框架的優勢也非常明顯:
強大的View綁定和Click事件處理功能,簡化代碼,提升開發效率方便的處理Adapter里的ViewHolder綁定問題運行時不會影響APP效率,使用配置方便代碼清晰,可讀性強
使用
首先是設置依賴,在build.gradlehttp://dachang.net/432714.html中進行依賴設置:
implementation 『com.jakewharton:butterknife:10.2.1』
annotationProcessor 『com.jakewharton:butterknife-compiler:10.2.1』
需要注意,該框架要求Java環境1.8版本以上,SDK版本在26以上,因此在使用到的mole中的build.graldle文件中,還必須添加如下代碼配置:
apply plugin: 『com.jakewharton.butterknife』
android{
//…
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
//…
}
另外,還必須在項目根目錄中的build.gradle文件中,添加該框架的插件,如下圖所示:
dependences{
classpath 『com.jakewharton:butterknife-gradle-plugin:10.2.1』
}
然後即可在代碼中進行使用了。
在使用該框架的頁面進行綁定諸如,如下所示代碼:
ButterKnife.bind( this) ;
主要的功能
@BindView():控制項id 註解,解放雙手,不用再每個控制項都寫一遍findviewById@BindViews():多個控制項id 的註解,括弧內使用花括弧包括多個id即可,中間用,分割開在Fragment中使用,綁定Fragment。@BindString():綁定字元串@BindArray:綁定數組@BindBitmap:綁定bitmap資源@OnClick、@OnLongClick:綁定點擊事件和長按事件…還有很多
插件安裝
如果是頁面很復雜,一個一個寫BindView也很費勁,在Android Studio中,可以安裝一個ButterKnife的插件,安裝該插件後,可以在Studio中直接將對應的布局中的所有控制項均給自動生成。
注意,在進行自動生成時,滑鼠要放在布局文件上。
注意事項
ButterKnife框架在使用時,要求的版本比較高,包括Java的版本也有限制。因此,如果計劃在項目中使用,要提前做好預備工作,以防止對已有項目和業務帶來不必要的麻煩,反而影響工作進度。
② WEB移動端開發使用什麼框架比較好
很久以前整理了篇將手機網站做成手機應用的JS框架。時隔一年多,很多新的技術已經出現,下面再來總結下還有哪些框架是適合面向手機設備的開發的。
1、jQuery Mobile
jQuery Mobile 是 jQuery 在手機上和平板設備上的版本。jQuery Mobile 不僅會給主流移動平台帶來jQuery核心庫,而且會發布一個完整統一的jQuery移動UI框架。支持全球主流的移動平台。jQuery Mobile開發團隊說:能開發這個項目,我們非常興奮。移動Web太需要一個跨瀏覽器的框架,讓開發人員開發出真正的移動Web網站。
2、jQTouch
jQTouch 是一個 jQuery 的插件,主要用於手機上的 Webkit 瀏覽器上實現一些包括動畫、列表導航、默認應用樣式等各種常見UI效果的 JavaScript 庫。支持包括 iPhone、Android 等手機。
3、DHTMLX Touch
DHTMLX Touch是一個免費的HTML5/JavaScript框架,專門為觸摸屏設備而優化。為您帶來快速開發工藝精美的移動Web應用程序的能力。DHTMLX Touch UI Designer是一個可視化的編輯器用於構建移動用戶界面。它能夠幫您以最少的編碼構建一流的用戶界面。在其主頁上提供一些示例可以展示DHTMLX Touch強大的用戶界面。包括一個menu app for the iPad (適用於開發餐廳應用) 和Book Shop (一個電子書店應用)。
4、Mobilize.js
Mobilize.js是一個開源的HTML5-JavaScript框架用於從任何現在有標准網站快速,簡便地構建移動網站。這個框架其實就是將需要在移動設備上顯示的部分頁面以jQuery Mobile的默認主題顯示,而不是實現一個全新完整的移動頁面。Mobilize.js 可用於任意網站,但對於基於WordPress和Sphinx的網站不需要使用該框架轉換,因為已經有非常多的插件可以使用。
5、The M Project
The-M-Project是另外一個強大的JavaScript框架,它利用HTML5新的特性來更好和更簡便地開發移動應用。這個框架遵循著名的MVC軟體架構模式。它還支持離線,所以你的用戶可以在沒有連接網路的情況下繼續操作(當下次有連線的時候,再將數據同步到伺服器中)。提供優秀的文檔(這個項目擁有一個引導新用戶入門的開發指南)。可以查看提供的示例來對該項目有一個初目的了解。這些示例包括:ToDo App(待辦事項目應用) 和 KitchenSink (這個示例包括這個框架提供的所有UI元素)。
6、WebApp.Net
WebApp.Net 提供了很多的 API,因此可以幫助你節省很多工作了。不需要花時間去進行 Ajax 調用的編碼,因為已經內置了,另外還有很多其它內置功能,提供了詳細的文檔和應用演示。
7、Wijmo
Wijmo是一個基於jQuery UI的UI部件的套件。Wijmo部件進行了優化客戶端Web開發和利用jQuery的優越的性能和易用性的力量。所有的Wijmo部件都配備了20多個主題和支持ThemeRoller。
8、960 Grid on jQuery-Mobile
jquery-mobile-960 是一個用於移動 Web 開發的網格框架,綜合了 960.gs 的靈活性和 jQuery Mobile 的方便性。它的目的是讓 jQuery Mobile 布局更加的靈活,使得應用應許在移動終端更加易用。
9、Sencha Touch Framework
Sencha Touch 是世界上第一個基於 HTML5 的移動 Web 開發框架,支持最新的 HTML5 和 CSS3 標准,全面兼容 Android 和 Apple iOS 設備,提供了豐富的 WEB UI 組件,可以快速的開發出運行於移動終端的應用程序。Shencha是第一個使用HTML5,CSS和JavaScript並且支持音頻/視頻,本地存儲,圓角,漸變背景以及陰影的開發框架。
10、NimbleKit
NimbleKit 是為 iOS 設備構建應用程序最快速的方式,你不需要知道 Objective-C 或者 iOS SDK,你只需結合 JavaScript 代碼編寫 HTML 頁面就可以了。
11、Touchy™ Boilerplate
Touchy Boilerplate 是一個用來創建移動web app,包括HTML模板,Meta tag等的工具。Touchy可以支持動態頁面導航,固定頁頭,滾動內容,瀏覽歷史記錄等功能。Touchy使用jQuery或者 Zepto.JS。
12、PhoneGap
PhoneGap是一個用基於HTML,CSS和JavaScript的,創建移動跨平台移動應用程序的快速開發平台。它使開發者能夠利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手機的核心功能——包括地理定位,加速器,聯系人,聲音和振動等,此外PhoneGap擁有豐富的插件,可以以此擴展無限的功能。PhoneGap是免費的,但是它需要特定平台提供的附加軟體,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5配套開發。使用PhoneGap只比為每個平台分別建立應用程序好一點點,因為雖然基本代碼是一樣的,但是你仍然需要為每個平台分別編譯應用程序。
13、joshfire
Joshfire是一個開源的跨設備開發框架,幫助開發者創建可以在多種設備上運行的web app。它使用HTML5和JavaScript,並且允許開發者快速整合本地應用和特定的web應用。Joshfire可以讓你的應用接受鍵盤,滑鼠,觸摸屏,遙控器等設備的輸入。Joshfire支持Node.JS。4.Sencha Touch:基於HTML5的移動網頁開發框架。
14、 Julia
Julia框架由基本CSS3文件、JS庫和各個平台的運行庫構成。不像PhoneGap,Julia不僅僅包含調用本機代碼的介面層,它還包含 Model-View-Controller(MVC)支持,Delegation支持,OAuth支持,非同步資料庫存取介面,HTML選擇符(類jQuery調用介面),HTML模版(允 許嵌入JS代碼)等應用開發必備的API介面。 基於Julia的應用開發就像網站開發那麼簡單,是的,你終於可以用HTML5開發一個完整的、跨平台 的、不亞於本機代碼的、易於維護的移動應用了!大幕即將揭曉,讓我們一起進入移動開發的新時代
15、SproutCore HTML5 Application Framework
SproutCore 是一個 HTML5 移動 Web 開發框架,它的目標是在無需瀏覽器插件的情況下,在瀏覽器中位應用程序提供極佳的桌面效果。
16、Titanium
這是一個強大的,健壯的移動Web開發框架。能夠讓使用現有的HTML, CSS和JavaScript知識來為 iOS和Android平台開發原生移動應用。作為一個越來越大的移動Web框架,它擁有超過300個的APIs和活躍的開發者社區。你從這個社區中得到每一個開發人員的幫助。Titanium Mobile支持原生的iOS和Android UI元素如Table views, tabs, switches和popovers。它提供能夠與移動設備的攝像頭和本地文件存儲系統相交互的特性。
17、Lungo.js
Lungo.js 是一個採用HTML5, CSS3 和JavaScript技術實現的移動Web應用程序開發框架。利用這框架開發的應用程序可運行所有流行的平台包括:iOS, Android, Blackberry 和 WebOs。它還支持觸摸事件如:tap, double-tap和swipe。整個框架沒有用到任何圖片包括圖標,所有都矢量化。可以在這個框架中使用HTML5擁有的一些特性如:WebSQL, 地理位置定位,歷史或設備方向等。Lungo.js是一個模塊化並且完全可定製的框架。
18、xui.js
有時候你可能需要一個超輕量級的框架,只要擁有用於開發標准客戶端所需要的功能如:DOM操作,事件處理,Ajax和一些動畫效果。如果是這樣的話,這個框架剛好非常適合你。整個框架採用GZIP壓縮完之後只有4.2 KB。
19、EmbedJS
EmbedJS是一個用於嵌入式設備的JavaScript框架如:行動電話,TVs、tablets和so forth。EmbedJS強大之處在於,它擁有專門為特定平台和瀏覽器如iOS, Firefox, Android等提供相應的開發版本。這樣就能夠以最少的代碼,為用戶提供最佳的體驗。而且假如你喜歡自己定製,可以利用其提供的EmbedJS Build tool工具實現。EmbedJS基於Dojo實現,所以你如果熟悉Dojo API語法,那EmbedJS將是你最佳的選擇。
20、zepto.js
zepto.js是一個專為mobile WebKit瀏覽器(如:Safari和Chrome)而開發的一個JavaScript框架。它標榜自己在其簡約的開發理念,能夠幫助開發人員簡單、快速地完成開發交付任務。更重要的是這個JS框架,是超輕量級的,只有5KB。zepto.js的語法借鑒並且兼容jQuery。
21、Baker
Baker是用來在iPad或者iPhone平台上發布互動式的電子書或者電子雜志的HTML5電子書框架。
22、ChocolateChip-UI
ChocolateChip-UI 是一個手機移動 Web 開發框架,採用 HTML5, WAML, CSS 和 JavaScript等技術實現。基於 ChocolateChip JavaScript 框架,包含最新的 ChUI.JS 和 ChUI.css.
23、Magazine Grid
Magazine Grid 是一個超現代的 CSS 框架,用於 iPad 和 iPhone 手機,使用類似雜志的設計風格。Magazine Grid 可讓用戶使用 HTML5 元素來組織雜志頁,非常輕量級(<4k),在移動設備上載入非常快,對老的瀏覽器也支持。
24、Kendo UI
Kendo UI是一個強大的框架用於快速HTML5 UI開發。基於最新的HTML5、CSS3和JavaScript標准。 Kendo UI包含了開發現代JavaScript開發所需要的所有一切,包括:強大的數據源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控制項。
25、HTML App Host Framework
這是一個用於構建基於 Windows Phone 7 的 HTML/JavaScript 託管框架,使用 HTML5 技術。該框架由支持在標准 xap 格式中嵌入 html 應用的控制項。
③ web前端主流框架主要有哪些
1、Bootstrap
AUI是最近流行起來的,作者聲稱是專為APIClound設計的一套框架,解決了許多移動端開發實際中遇到的許多問題,是一個純CSS框架。使用容器+布局+模塊的構建方式,JS輔助,更自由更靈活更易於擴展使用。遵循Google Material設計規范,完美適配各個機型。面向HTML5,使用CSS3實現動畫交互,輕量級高性能。AUI是使用MIT License授權,你可以復制、出售。目前最新版本2.0。
8、Amaze UI
這是稱為妹子UI的開源框架,據稱是中國首個開源HTML5跨屏前端框架。妹子UI以移動優先為理念,從小屏逐漸到大屏,實現響應式網頁。Amaze UI包含20+個CSS組件、20+個JS組件,更有多個包含不同主題的Web組件。相比國外框架,妹子UI關注中文排版提供本地化支持。面向HTML5開發,使用CSS3來實現動畫交互,輕量級高性能。
9、Frozen UI
Frozen UI是一款開源,簡單易用,輕量敏捷的移動端框架。基於手Q樣式規范,目前全面應用於企鵝手Q增值業務中。基礎樣式效果簡單色調清爽,社區活躍,組件自然不少。包括按鈕、列表、表單、通知、提示條、彈出框、選項卡等等常用組件。還包括一個FrozenJs的JS組件庫。可以在主流的Android和IOS上應用。基本樣式使用離線包的方式減少請求提供快速接入方案。當然,根據網友反映,也存在大大小小的bug。不過總體來說,還是值得一用的。奇怪的是,Github上顯示的最後更新時間是一年前,難道已經沒人維護了嗎?
# Running this will show the space usage of each folder in the current directory.# The -h option makes the report easier to read.# -s prevents recursiveness and shows the total size of a folder.# The star wildcard (*) will run on each file/folder in current directory. -sh *1.2G Desktop4.0K Documents40G Downloads4.0K Music4.9M Pictures844K Public4.0K Templates6.9M Videos
還有一個相似的命令 df(Disk Free),使用df會返回有關可用磁碟空間的各種信息。
④ 移動APP開發框架盤點2:Web移動前端框架大全
開源項目其實有一個成熟周期,這個周期大概是三年左右,自React框架在2013年發布並引爆了前端框架的大潮,這個屬於前端的周期就此開始了。
之後在2015年5月開源的React Native又開啟了屬於Web移動前端的周期,15-16年,18-19年,21-22年正好就是屬於移動前端的三個爆發點。
三年前,在第一個成熟收獲期,我盤點了移動開發框架。在這第二個成熟收獲期,理所當然要來盤點一波。
不過,當我點開github項目的code-frequency時,還是被這個准到嚇人的周期猜想驚呆了,先給你們看一波,剩下的自行驗證。
1、https://github.com/youzan/vant/graphs/code-frequency
2、https://github.com/quasarframework/quasar/graphs/code-frequency
再來說第二個比較有意思的發現,停止維護的項目絕大多數是Vue框架項目。
盤點開始的時候我還覺得React框架處於絕對劣勢,到完成時我發現React無論在選擇面還是成熟度上都超過了Vue。
原因我這里就不分析了,反正大家都有自己的看法。
網頁類框架就是前端組件框架,這一次雖然有大量項目停止維護,但是也有很多項目堅持了下來,而且還涌現出了一批新項目。
大廠佔了主導,因為這些年大廠在移動開發上的需求,遠高於其它方面。個人項目要堅持確實不易。
本來是想要做一個驗證項目,把所有框架都試用一遍並給出推薦度的。由於進度太慢,還是下一次再發吧。
這次的重點是漸進類框架,就是所謂多端同構框架(小程序框架)。這幾年國內的重點的各種小程序平台,所以多端框架的需求很是旺盛。
不過大多數先行者都沒挺過來還是讓我很意外,只有Taro成功了,想想還是有很多讓人唏噓的東西。
在這里還是先預測一波吧,因為這一類框架最變化最大,最終還是有很多框架要出局的。
漸進類框架是一個過渡性的產品,最終會變成橋接類框架的一部分,所以,與橋接類框架協同才是框架的出路。
這個賽道基本全是大廠了。
騰訊新一代跨端開發框架Hippy
Hippy一看就是淘寶Weex的對標項目,Kpi功能全面壓制。所以官方支持 React 和 Vue 兩種主流前端框架。在Weex2019年實質停更後發布,要不要這么卷?
Hippy 2.x 架構主要分成三層,UI(JS) 層 Hippy-React 和 Hippy-Vue 負責驅動 UI 指令生成;中間層 C++ HippyCore 負責抹平平台差異性和提供高性能模塊;渲染層 Android 和 iOS 負責提供終端底層模塊、組件,並與布局引擎通信。
對Weex慘遭遺棄,我上次就說過:「ReactNative提供工具,Weex提供框架,將平台差異化屏蔽(Write Once, Run Everywhere)。所以Weex則註定功能相對弱小,並且坑比較多。」Weex最終下馬也是必然的,淘寶又發布升級版北海,為了實現(Write Once, Run Everywhere),它採用自繪,而且是基於Flutter自繪。
所以Hippy3.x就一如既往的Kpi功能層層加碼,很有騰訊風格。在未來的 3.x 中業務與渲染層中的具體實現可根據用戶實際場景進行切換:業務層上不再局限於 JS 驅動,還可選擇(如:DSL/Dart/WASM 等)其它語言進行驅動;在渲染層中,渲染引擎除了支持現有原生(Native)渲染之外,還可以選擇其他渲染 Renderer,如 Flutter(Voltron) 渲染。
「Kraken 北海」是一款高性能Web渲染引擎。底層基於 Flutter 進行渲染。
Kraken 不限制上層開發者使用的框架,無論你是使用 Vue 、Rax 還是 React 都可以開發 Kraken 應用。
Kraken 的 runtime 通過 JS Engine Binding 的方式提供了一系列 Web 標準的 API 介面,調用相應 API 會執行相關邏輯並創建一系列需要發送給 Dart 層處理的指令。
Kraken 其實就是一個小程序平台,而且追求全平台完全一致。我雖然認為各平台不一致是很自然的事情,但是也表示理解,畢竟別人吹牛有當真的傳統(KFC表示認同)。
Kraken 現在也是一個小號瀏覽器,所以它的主要工作就是摳標准,畢竟它是一款基於 W3C 標準的高性能渲染引擎。
最後,我勸淘寶領導定Kpi要理智些,畢竟Hippy4我還蠻期待的。
滴滴出品的超輕量級動態化跨端開發框架,主打輕量和實用。
Hummer 以 JS 引擎為基石,目前已支持 JavaScriptCore、Hermers、QuickJS 等業內知名 JS 引擎(這里本來還有個V8的,我刪除了,源碼裡面沒有,Kpi需要)。再配合經過調優的 Yoga 布局引擎,抹平了兩端視圖布局差異(性能更佳的自研布局引擎開發中)。順便提一下,Hippy採用V8(功能更強)自研布局引擎(性能更佳)。
Hummer 的特點是拋棄了業界其他動態化跨端框架普遍使用的DSL層和VDOM層,因此原生 Hummer 不具備前端開發常用的響應式編程的能力,但同時換來的是接近原生開發的體驗和性能。再以原生 Hummer 為基礎,在此之上開發了一套基於MVVM架構的開發框架 —— Tenon ,通過 Tenon,可以把使用 Vue/React 編寫的代碼,轉換成原生 Hummer 的代碼。
Hummer也是一個小程序平台,而且超輕量。如果想要無限提升自己APP的能力,可以考慮嵌入Hummer。
Web移動前端框架正在迎來第三個高速發展期,各類框架得到極大繁榮。
個人在具體項目的貢獻已經微乎其微了,創新、架構創新是唯一制勝的手段,這也是我看好React的根本原因。
最後,還是想做點微不足道的 探索 ,現在前端組件庫層出不窮,更換組件庫帶來的代價有點大。想創建一個框架,來實現上次說的組件公約數和公倍數,無縫切換組件庫。理論上支持所有組件庫 ,也能為後來者提供彎道超車的機會。我想大廠可能沒有需求,也不會願意發布這種框架,畢竟都是平台部門說了算。
這個庫就是useMobile,當然分為useMobileReact和useMobileVue。下次先發布useMobileReact。等我發布後,再來填上面表中缺的推薦度。
原文地址: https://www.cnblogs.com/windfic/p/16019457.html
⑤ 前端常用的框架有哪些
在Web前端開發中,適時地使用一些框架,對於我們日常的開發,可以說是事半功倍。那麼,常用的Web前端框架有哪些呢?程序員常用的Web前端開發框架如下:
1、Bootstrap
Bootstrap流行的CSS框架,它是最早的Web前端框架,Bootstrap提供了許多實例來幫助入門。使用Bootstrap可以將不同的組件和布局組合在一起,從而創建有趣的頁面設計,還提供了大量詳細的文檔。
2、QUICK UI
QUICK UI一套完整的企業級web前端開發解決方案,由基礎框架、UI組件庫、皮膚包、示例工程和文檔等組成。使用QUICKUI開發者可以極大地減少工作量提高開發效率,快速構建功能強大、美觀、兼容的web應用系統。
3、MDC Web
Material Components for the web(MDC Web),谷歌為Web設計的全新前端框架。MDC Web幫助開發人員執行Material Design,組件由谷歌的核心工程師團隊和UX設計人員開發。這些組件可以建立可靠的開發工作流程以構建美觀且功能強大的Web項目。
4、Pure
Bootstrap,Patternfly和MDC Web功能非常強大的CSS框架,但非常繁瑣復雜。如想要一個輕量級的CSS框架建議嘗試Pure.css,本身更接近於CSS編程,但又可以幫助構建一個不錯的網頁。Pure是具有最小佔用空間的輕量級CSS框架由Yahoo開發根據BSD許可是開源。
5、Foundation
Foundation聲稱是世界上最先進的響應式前端框架。它提供了用於構建專業網站的高級功能和教程。許多公司,組織都使用該框架,並且該框架具有大量可用的文檔。
6、Bulma
Bulma基於Flexbox的開源框架可根據MIT許可證開源。一個非常輕量級的框架,只需要一個CSS文件。Bulma擁有簡潔明了的文檔可輕松選擇想要的主題。還具有許多Web組件可以在設計中使用它們。
7、Skeleton
輕量級框架Skeleton。Skeleton庫只有大約400行,且該框架僅提供一些基本的CSS框架組件。Skeleton還是提供了詳細的文檔來幫助快速上手。
8、Materialize
Materialize 是一個基於 Material Design風格的一個現代化的響應式前端框架,解決了最繁重的工作,結合的自定義組件為提供默認的樣式。Materialize的文檔頁面非常全面很容易遵循。其組件頁麵包括按鈕,卡片,導航等。
9、Bootflat
Bootflat是從Twitter的Bootstrap派生的開源CSS框架。與Bootstrap相比Bootflat更簡單更加輕量級。大部分都是圖像沒有太多的文字。
10、PatternFly
PatternFly是Red Hat的開源CSS框架,和Bootstrap不同的是Bootstrap是為那些想要創建漂亮網站的人而設計,而PatternFly主要專注於企業應用程序開發人員提供諸如條形圖、圖表、導航之類的組件,實際上Red Hat就是使用它創建了OpenShift。除了靜態HTML,PatternFly還支持ReactJS框架,這是Facebook開發的流行JavaScript框架。PatternFly具有許多適用於企業級應用程序的高級組件,如條形圖,圖表,模式和布局。
11、flex
Flex目前還在孵化階段,還不是Apache的正式項目,Flex4.8也不是一個正式的Apache版本。,該版本標志著Flex新時代的開始,Flex的未來將由社區來驅動而不是由一個公司驅動。開發者可以通過貢獻代碼來幫助改進Flex,如修復bug、增加功能等。
以上就是分享的Web前端開發常用的一些框架。程序員們可以根據自己的業務需求選擇簡潔直觀、功能強大的前端開發框架,讓自己的工作更迅速簡單,提高開發的效率。