準(zhǔn)備階段
下載 Flutter SDK
新建 Flutter 文件夾,克隆 Flutter SDK:
git clone -b beta https://github.com/flutter/flutter.git
配置 Flutter 環(huán)境
我是 Mac 系統(tǒng),F(xiàn)lutter SDK 下載完后的路徑:Users/wuxiaolong/Flutter/flutter/ 。
在命令行下,進(jìn)入用戶目錄
cd $HOME
打開(kāi).bash_profile文件
執(zhí)行命令打開(kāi)文件:
open -e .bash_profile
打開(kāi)文件后,添加 Flutter SDK 安裝的路徑:
export PATH=${PATH}:/Users/wuxiaolong/Flutter/flutter/bin:$PATH
更新剛配置的環(huán)境變量
source .bash_profile
驗(yàn)證
終端直接輸入 flutter,沒(méi)有提示該命令找不到,則配置成功。
flutter doctor
命令行輸入flutter doctor
,安裝 Futter 剩余依賴項(xiàng)。
安裝 Flutter 和 Dart 插件
啟動(dòng) Android Studio,搜索 Flutter 插件并單擊 install,系統(tǒng)提示您安裝 Dart 插件,點(diǎn)擊 Yes 安裝即可。
提示:安裝 Dart 插件可能會(huì)提示下載失敗,多試幾次。
第一個(gè)項(xiàng)目
Android Studio - File - New - New Flutter Project,等待創(chuàng)建成功后,運(yùn)行效果如下:
Dart 基本語(yǔ)法
Flutter 開(kāi)發(fā)語(yǔ)言是 Dart,這個(gè)語(yǔ)言相信我們做原生 Android 的都能看懂,我在學(xué)習(xí)過(guò)程,感覺(jué)這不就是 Java 嘛,我直接按照 Java 思維去寫(xiě),完全沒(méi)問(wèn)題。
基礎(chǔ)數(shù)據(jù)類型有 int、double、bool、String、List(數(shù)組)、Map;
聲明變量可以使用 var,也可以使用 const 和 final;
const 和 final 定義的都是常量,值不能改變,并且在聲明的時(shí)候就必須初始化,這是可以省略 var 或者其他類型;
函數(shù)可以有可選參數(shù);
if-else、for 循環(huán)、while 循環(huán)、switch-case、try-catch 等知識(shí)與 Java 類似;
更多詳見(jiàn)官網(wǎng):https://www.dartlang.org/
練手
這里使用了豆瓣電影的 API,功能很簡(jiǎn)單,就一個(gè)列表和詳情。
效果預(yù)覽
遇到問(wèn)題
學(xué)習(xí)新知識(shí),第一步就是模仿,多看,多想,多實(shí)踐,在這個(gè)過(guò)程我遇到一些問(wèn)題:
Flutter 怎么打印信息?
print('onclick');
Flutter 如何看報(bào)錯(cuò)信息?在 Android Studio 底欄 Run 非 LogCat;
網(wǎng)絡(luò)請(qǐng)求怎么寫(xiě)?
接口數(shù)據(jù)如何解析的?
如何一進(jìn)頁(yè)面就請(qǐng)求接口?
網(wǎng)絡(luò)圖片怎么顯示?
ListView 官網(wǎng)介紹的 Item 是通用的,如何定制?
跳轉(zhuǎn)頁(yè)面如何傳參?傳參后怎么用?
等等,遇到一個(gè)問(wèn)題,消滅一個(gè)。
源碼
源碼地址
https://github.com/WuXiaolong/flutter_movie ,該項(xiàng)目起始頁(yè)面在 lib/main.dart,注意的點(diǎn)我也都加了注釋,去吧,學(xué)習(xí)還是要靠自己,踏出第一步,實(shí)踐起來(lái)。
如何導(dǎo)入 Flutter 項(xiàng)目
下載 Flutter 項(xiàng)目
下載完 Flutter 項(xiàng)目,直接 Android Studio - Open。
配置 Flutter SDK
如圖,點(diǎn)擊 Open Flutter setting,點(diǎn)擊下拉按鈕,選擇 Flutter SDK 路徑,點(diǎn)擊 OK,會(huì)自動(dòng)配置 Dart SDK 路徑。
pubspec.yaml 下載庫(kù)
如圖,點(diǎn)擊 Packages get,下載項(xiàng)目用到的依賴庫(kù),編譯完成應(yīng)該就能正常運(yùn)行了。
最后
還是被 Flutter 驚艷到了,重拾當(dāng)初學(xué)習(xí) Android 的熱情,卻一不小心,我的肩痛又開(kāi)始了;
Flutter UI 全是代碼寫(xiě)的,不是 XML,復(fù)雜的 UI 實(shí)現(xiàn)有難度;
Flutter 聯(lián)想功能較弱,需要先導(dǎo)入相應(yīng)的包,才有相應(yīng)的類聯(lián)想;
新建了一個(gè) package,將 dart 文件拖入,相關(guān)聯(lián)包的路徑會(huì)相應(yīng)修改,但是我改了package 名,就無(wú)法相應(yīng)修改,bug?
Flutter,我感覺(jué)可以從 Java 實(shí)現(xiàn)無(wú)縫過(guò)度;
I'm a iOS Developer.
Flutter 開(kāi)源庫(kù)遠(yuǎn)沒(méi)有原生的豐富,目前還是 Beta 版,還是很值得期待,我會(huì)持續(xù)關(guān)注學(xué)習(xí),先就醬紫吧。