作者:個推iOS開發(fā)工程師 伊澤瑞爾
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供永登網(wǎng)站建設(shè)、永登做網(wǎng)站、永登網(wǎng)站設(shè)計、永登網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、永登企業(yè)網(wǎng)站模板建站服務(wù),十載永登做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
Flutter是Google推出的跨平臺的解決方案,用以幫助開發(fā)者在 Android 和 iOS 兩個平臺開發(fā)高質(zhì)量原生應(yīng)用的全新移動 UI 框架。 之前我們?yōu)榇蠹医榻B了《跨平臺框架Flutter的優(yōu)勢與結(jié)構(gòu)》,概括了Flutter選擇Dart語言的必要性及其自底而上的框架結(jié)構(gòu),大家可以點擊標(biāo)題鏈接來回顧前文。在本文中,我們將帶大家進一步了解Flutter的搭建與運行。
01Flutter開發(fā)環(huán)境搭建(Windows版)
一、系統(tǒng)環(huán)境要求:要安裝并運行Flutter,開發(fā)環(huán)境必須滿足以下條件。
操作系統(tǒng):Windows 7或更高版本(64-bit);
磁盤空間:400MB;
工具:Flutter依賴PowerShell 5.0或更新的版本和Git for Windows(Git命令行工具)這些命令行工具。
我們可以去Flutter官網(wǎng)下載最新可用的安裝包。
下載地址:
https://flutter.io/sdk-archive/#windows
注意:Flutter的渠道變動頻繁,請以官網(wǎng)為準(zhǔn)。同時,我們也推薦去Flutter github項目下下載安裝包。
下載地址:
https://github.com/flutter/flutter/releases
下載完成后,請先將安裝包zip解壓到想安裝Flutter SDK的路徑(注意:不要將Flutter安裝到需要高權(quán)限的路徑,如 C:Files)。之后,在Flutter安裝目錄的flutter文件下找到flutter_console.bat,雙擊運行并啟動flutter命令行。
二、更新環(huán)境變量:若想在Windows系統(tǒng)自帶命令行運行flutter命令,開發(fā)者需要添加以下環(huán)境變量到用戶PATH:“控制面板->用戶賬戶->更改我的環(huán)境變量”,同時,在“用戶變量”下檢查是否有名為“Path”的條目:如果該條目存在,追加flutter \ bin的全路徑,使用;作為分隔符。如果該條目不存在,創(chuàng)建一個新用戶變量Path,然后將flutter \ bin的全路徑作為它的值。Flutter的執(zhí)行需要聯(lián)網(wǎng),還需要設(shè)置:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASH_URL=https://storage.flutter-io.cn
三、運行flutter doctor命令:開發(fā)者需在Flutter命令行運行flutter doctor命令來查看是否需要安裝其它依賴,如果需要,則進行安裝。在終端中輸入flutter doctor,如果出現(xiàn)和下圖類似的結(jié)果,甚至得到的x比圖示更多,主要原因是沒有安裝Android studio。下面我們將列出Android Studio的安裝步驟。
四、Android Studio的安裝:
在官網(wǎng)下載Android Studio,下載地址:https://developer.android.com/;
啟動Android Studio,執(zhí)行“Android Studio安裝向?qū)А辈惭b最新的Android SDK、Android SDK工具和Android SDK構(gòu)建工具,這些都是用Flutter進行Android開發(fā)所需要的;
打開Android Studio軟件,找到Plugin的配置,搜索Flutter插件,出現(xiàn)如圖所示頁面。點擊中間“Search in repositories”,然后點擊安裝,全部安裝完成后需重啟。
五、安裝Android證書
安裝好Android Studio后,再次打開終端(命令行),輸入flutter doctor,這時x的數(shù)量會明顯減少,但可能還是會遇到1-2個,如果只有1個就說明沒有安裝證書,開發(fā)者只需在終端里執(zhí)行以下命令即可:
flutter doctor --android-licenses
當(dāng)提示Y/N選擇時,請直接選擇Y即可完成安裝。
02Flutter開發(fā)環(huán)境搭建(Mac版)
一、系統(tǒng)環(huán)境要求:要安裝并運行Flutter,開發(fā)環(huán)境必須滿足以下條件。
操作系統(tǒng): MacOS(64-bit);
磁盤空間:大于700M,如果算上Android Studio等編輯工具,盡量大于3G;
命令行工具:bash、mkdir、rm、git、curl、unzip、which、brew。
二、下載Flutter SDK包:
推薦在官網(wǎng)下載,網(wǎng)址:https://flutter.io/setup-macos/ 。
下載完成后,解壓安裝包到想安裝的目錄,如:cd ~/development
unzip ~/Downloads/flutter_macos_v0.5.1-beta.zip
三、配置環(huán)境變量
壓縮包下載好以后,選擇位置進行解壓,壓縮包解壓的位置在下面配置環(huán)境變量的時候仍要使用。
首先打開終端工具,使用vim進行配置環(huán)境變量,命令如下:
vim ~/.bash_profile
然后,在打開的文件里增加一行代碼,配置flutter命令,使其在任何地方都可以使用。添加的代碼為:
export PATH=/app/flutter/bin:$PATH
這行命令需要根據(jù)壓縮包解壓的位置來進行編寫,內(nèi)容是你的路徑。配置完成后,還需用source命令重新加載,具體命令如下:
source ~/.bash_profile
完成以后, flutter的安裝工作已基本完成,但要進行開發(fā),還需要使用命令來檢測其是否成功安裝。
四、檢查開發(fā)環(huán)境:如上圖所示,已經(jīng)成功安裝了Flutter,但是還不具備開發(fā)環(huán)境,可以用flutter doctor命令來檢查還需安裝的插件和軟件。
五、安裝Xcode:要為iOS開發(fā)Flutter應(yīng)用程序,需要Xcode9.0或更高版本。
在蘋果商店安裝Xcode 9.0或更新版本。
配置Xcode命令行工具以使用新安裝的Xcode版本,命令如下:
sudo xcode-select --switch/Applications/Xcode.app/Contents/Developer
在大多數(shù)的情況下,當(dāng)你想要使用最新版本的Xcode時,這是正確的路徑。如果需要使用不同版本的Xcode,請指定相應(yīng)的路徑。
確保Xcode許可協(xié)議是通過打開一次Xcode或通過命令sudo xcodebuild –license 。
六、安裝Android Studio:和Windows一樣,在Android設(shè)備上構(gòu)建并運行Flutter程序都需要先安裝Android Studio。
03升級Flutter
Flutter SDK有多個分支,如beta、dev、master、stable,其中stable為穩(wěn)定分支,dev和master為開發(fā)分支。flutter安裝完成后,可以運行flutter channel,查看所有分支。
若想升級flutter SDK,需要執(zhí)行命令:flutter upgrade 。
該命令會同時更新Flutter SDK和flutter項目依賴包。若只更新項目依賴包(不包括Flutter SDK),可以使用以下命令:
flutter packages get 獲取項目所有的依賴包。
flutter packages upgrades 獲取項目所有依賴包的最新版本。
04開發(fā)工具的配置與使用
一、Android studio配置與使用
首先需要安裝兩個插件,分別是Flutter和Dart插件:
Flutter插件:支持Flutter開發(fā)工作流(運行、調(diào)試、熱重載等);
Dart插件:提供代碼分析(輸入代碼時進行驗證、代碼補全等)。
1.安裝步驟
啟動Android Studio;
打開插件首選項 (MacOS:Preferences>Plugins, Windows:File>Settings>Plugins);
先選擇 Browse repositories…,再選擇 flutter 插件并點擊 install;
重啟Android Studio后插件生效。
2.創(chuàng)建Flutter應(yīng)用
選擇 File>New Flutter Project ;
選擇 Flutter application 作為 project 類型, 然后點擊 Next;
輸入項目名稱 (如 myapp),點擊 Next;
點擊 Finish;
等待Android Studio安裝SDK并創(chuàng)建項目。
3.運行應(yīng)用程序
定位到Android Studio工具欄;
在 target selector 中, 選擇一個運行該應(yīng)用的Android設(shè)備。如果沒有列出可用,請選擇 Tools>Android>AVD Manager 創(chuàng)建;
在工具欄中點擊 Run圖標(biāo);
如果一切正常,在設(shè)備或模擬器上會看到啟動的應(yīng)用程序,如下圖所示:
4.體驗熱重載:Flutter可以通過熱重載實現(xiàn)快速的開發(fā)周期,熱重載無需重啟應(yīng)用程序就能實時加載修改后的代碼,并且不會丟失狀態(tài)。對代碼進行簡單的更改,然后使用IDE或命令行工具進行重新加載,可以在設(shè)備或模擬器上看到更改。
打開lib/main.dart
文件;
將字符串'You have pushed the button this many times:'
更改為'You have clicked the button this many times:'
;
不要按“停止”按鈕,讓應(yīng)用繼續(xù)運行;
要查看更改,請調(diào)用 Save(cmd-s
/ ctrl-s
),或者點擊 熱重載按鈕(帶有閃電圖標(biāo)的按鈕)。
二、VS Code的配置與使用
1.安裝flutter插件:
啟動VS Code;
調(diào)用View>Command Palette...;
輸入'install'后選擇Extensions:Install Extension action;
在搜索框輸入flutter,在搜索結(jié)果列表中選擇'Flutter'并點擊Install;
選擇'OK'并重新啟動VS Code;
驗證配置:首先,調(diào)用View>Command Palette...,輸入'doctor',然后選擇'Flutter:Run Flutter Doctor'action。查看“OUTPUT”窗口中的輸出是否有問題。
2.創(chuàng)建Flutter應(yīng)用
啟動VS Code;
調(diào)用View>Command Palette...;
輸入'flutter'后選擇'Flutter:New Project'action;
輸入Project名稱(如myapp)并按回車鍵;
指定防止項目的位置,然后確認(rèn);
等待項目創(chuàng)建繼續(xù),并顯示main.dart文件。
3.體驗熱重載
用VSCode編寫Flutter的缺點之一是需要手動加載更新應(yīng)用,這在一定程度上影響了工作效率。當(dāng)我們運行flutter run以后,會出現(xiàn)一段紅色的文字提示,如下所示:
r 鍵:點擊后熱加載,即重新加載;
p 鍵:顯示網(wǎng)格,可以掌握布局情況;
o 鍵:切換Android和iOS的預(yù)覽模式;
q 鍵:退出調(diào)試預(yù)覽模式。
4.寫一個HelloWorld程序
當(dāng)我們搭建好開放環(huán)境搭后,按照慣例我們需要寫一個HelloWorld程序。 將下面這段代碼寫在根目錄.dart文件中,作為Flutter主文件。
import 'package:flutter/material.dart';
//主函數(shù)(入口函數(shù)),下面我會簡單說說Dart的函數(shù)
void main() =>runApp(MyApp());
// 聲明MyApp類
class MyApp extends StatelessWidget{//重寫build方法
@override
br/>//重寫build方法
@override
//返回一個Material風(fēng)格的組件
return MaterialApp(
title:'Welcome to Flutteraa',
home:Scaffold(
//創(chuàng)建一個Bar,并添加文本
appBar:AppBar(
title:Text('Welcome to Flutter'),
),
//在主體的中間區(qū)域,添加一個hello world 的文本
body:Center(
child:Text('Hello World'),
),
),
);
}
}
結(jié)果如下圖所示:
05連接設(shè)備運行Flutter應(yīng)用
Window下只支持為Android設(shè)備構(gòu)建并運行Flutter應(yīng)用,而macOS同時支持iOS和Android設(shè)備。下面將分別介紹如何連接Android和iOS設(shè)備來運行flutter應(yīng)用。
一、連接Android模擬器
在Android模擬器上運行并測試Flutter應(yīng)用,請按照以下步驟操作:
啟動 Android Studio>Tools>Android>AVD Manager 并選擇 Create Virtual Device;
選擇一個設(shè)備并選擇 Next;
為要模擬的Android版本選擇一個或多個系統(tǒng)印象,然后選擇 Next。建議使用 x86 或 x86_64 image;
在 “Emulated Performance”下, 選擇 Hardware - GLES 2.0 以啟用硬件加速;
驗證AVD配置是否正確,然后選擇 Finish;
在“Android Virtual Device Manager”中,點擊工具欄的 Run。模擬器啟動并顯示所選操作系統(tǒng)版本或設(shè)備的啟動畫面;
運行 flutter run 啟動您的設(shè)備。連接的設(shè)備名是 Android SDK built for
二、連接Android真機設(shè)備
要準(zhǔn)備在Android設(shè)備上運行并測試Flutter應(yīng)用,需要Android 4.1或更高版本的Android設(shè)備。
在Android設(shè)備上啟用開發(fā)人員選項和USB調(diào)試;
使用USB將手機插入電腦。如果設(shè)備出現(xiàn)調(diào)試授權(quán)提示,請授權(quán)你的電腦可以訪問該設(shè)備;
在命令行運行 flutter devices 命令以驗證Flutter識別您連接的Android設(shè)備;
運行啟動你應(yīng)用程序 flutter run。
三、連接iOS模擬器
要準(zhǔn)備在iOS模擬器上運行并測試Flutter應(yīng)用,請按以下步驟操作:
在你的MAC上,通過 Spotlight 或以下命令找到模擬器:open -a Simulator;
通過檢查模擬器 Hardware > Device 菜單中的設(shè)置,確保模擬器正在使用64位設(shè)備(iPhone 5s或更高版本);
根據(jù)電腦屏幕大小,模擬高清屏iOS設(shè)備可能會溢出屏幕。可以在模擬器的 Window> Scale 菜單下設(shè)置設(shè)備比例;
運行 flutter run,啟動flutter應(yīng)用程序。
四、連接iOS真機設(shè)備
如果要將Flutter應(yīng)用安裝到iOS真機設(shè)備,除了需要一些額外的工具和一個Apple賬戶,還需要在Xcode中進行一些設(shè)置。
1.安裝homebrew(如果已經(jīng)安裝了brew,跳過此步驟);
2.打開終端并運行如下這些命令:
brew update
brew install --HEAD libimobiledevice
brew install ideviceinstaller ios-deploy cocoapods
pod setup
如果這些命令中的任何一個失敗并出現(xiàn)錯誤,需要運行brew doctor并按照說明解決問題
3.遵循Xcode簽名流程來配置項目:
在你Flutter項目目錄中通過open ios/Runner.xcworkspace打開默認(rèn)的Xcode workspace。
在Xcode中,選擇導(dǎo)航面板左側(cè)中的Runner項目。
在Runner target設(shè)置頁面中,確保在General > Signing > Team下選擇你的開發(fā)團隊。當(dāng)你選擇一個團隊時,Xcode會創(chuàng)建并下載開發(fā)證書,向你的設(shè)備注冊你的賬戶,并創(chuàng)建和下載配置文件。
如果要開始你的第一個iOS開發(fā)項目,需要使用你的Apple ID登錄Xcode。任何Apple ID都支持開發(fā)和測試,但若想將應(yīng)用分發(fā)到App Store,就必須注冊Apple開發(fā)者計劃。
當(dāng)你第一次使用attach真機設(shè)備進行iOS開發(fā)時,需要同時信任你的Mac和該設(shè)備上的開發(fā)證書。iOS設(shè)備首次連接到Mac時,選擇信任。然后轉(zhuǎn)到iOS設(shè)備上的設(shè)置菜單,選擇常規(guī)>設(shè)備管理并信任您的證書。
運行flutter run,啟動flutter應(yīng)用程序。
個推技術(shù)團隊基于Flutter平臺也進行了不少開發(fā)和探索,其中消息推送插件Getui Flutter Plugin,作為一個特殊的Package,可以為Android和iOS提供底層封裝,在Flutter底層提供組件功能,使Flutter可以較為方便地調(diào)用Native模塊。借助Getui Flutter Plugin,開發(fā)者可以快速構(gòu)建穩(wěn)定高效的消息推送系統(tǒng),滿足日常的工作需求。
下載鏈接:
https://github.com/GetuiLaboratory/getui-flutter-plugin