在網上看到很多跨平臺框架,也用幾個不同的跨平臺框架開發了一些項目,發現都還不錯。由於目前還沒有涉及到一些複雜的應用,基本上市面上的跨平臺框架都能滿足需求。
首先說說自己開發跨平臺框架的一些感受。
一:環境搭建難度
uni-app:只需要到官網下載Hbuildx開發工具,就可以直接創建項目開始開發了,開發模式也比較清晰簡單。且只要會vue基本上可以上手開發了。
flutter:也是需要安裝開發工具,windows的安裝android studio或者其他開發工具,mac可以安裝xcode,android studio。不過配置過程可能稍微麻煩點。需要安裝插件。
代碼:其實就是類h5寫法。
二:開發難度
uni-app:基本只需要學會vue開發就可以,基本遵循vue結構開發的。內容結構比較清晰。且官網都是中文的,比較容易看懂,插件市場也比較多,目前有600-700個左右吧,社區活躍也還行,提問題回覆比較慢,一般加QQ羣提問題,回覆比較快點。
fultter :需要學習新的語言dart,如果你是java程序員可能學一會就看懂了。如果沒接觸過,剛開始學習的時候看這代碼一陣頭大,看這代碼:我在幹什麼,我在哪裏,我要去哪?。。。學習一段時間後。發現還是可以的。也可以引入組件,不過代碼清晰度來說不夠明顯,雖然會自動帶註釋。官方文檔也有中文版的,但具體佈局類說明沒有中文化,只能算部分中文。
代碼:這是一個搜索框。
Widget build(BuildContext context) {
return Scaffold(
body: Container(
//padding: const EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 0.0),
child: Container(
margin: const EdgeInsets.only(top: 50.0),
decoration: BoxDecoration(
color: Colors.blueGrey,
borderRadius: BorderRadius.all(new Radius.circular(16.0))
),
height: 40.0,
alignment: Alignment.center,
child: TextField(
decoration: InputDecoration(
prefixIcon: Icon(Icons.search),
border: InputBorder.none,
contentPadding: const EdgeInsets.only(left: 15.0),
// suffixIcon: Icon(Icons.delete)
),
),
),
)
三:性能比較
uni-app:官網引入weex,而weex性能和react-native差不多。
flutter:性能最接近原生的。據說畫面渲染達到120fps,可以做一些遊戲。