development
』,進入『development
』資料夾中,再建立一個『flutter
』資料夾shift + command + .
』來顯示所有隱藏的檔案,將所有檔案全部拷貝下來,貼到上一步建立好的『flutter
』資料夾中shift + command + .
』來顯示所有隱藏的檔案,找到『.zshrc
』檔案.zshrc
』檔案後,在最上面新增一行『export PATH="$PATH:${flutter 資料夾的路徑}/bin"
』(假設前面步驟都與我相同,新增的這行就是『export PATH="$PATH:/Users/${你的使用者名稱}/development/flutter/bin"
』,假設 flutter 放置路徑與上方步驟不同,則可以直接從 Finder 中找到 flutter 資料夾,並用右鍵點選查看資訊,將位置從『使用者』開始複製下來使用)若要升級 flutter 需 cd 到
/development/flutter
後,執行命令flutter upgrade
若要升級 Xcode 可執行命令xcodebuild -downloadPlatform iOS
Install Xcode
的兩行命令拷貝起來,接著開啟終端機,貼上那兩行命令執行(會叫你輸入密碼)sudo xcodebuild -license
一直按空白鍵到底部輸入 agree 同意條款open -a Simulator
開啟一個 iPhone 模擬器(這邊要等幾分鐘模擬器才會開機並顯示內容唷)Download Android Studio Flamingo
』按鈕,接著勾選同意條款後,根據電腦系統選擇點擊下載安裝『Mac with Intel chip
』或『Mac with Apple chip
』Android Studio
複製到電腦的應用程式資料夾中Android Studio
會進入安裝的視窗,過程中主要需確保有勾選 SDK 以及 API 的 components、將所有條款設為 Accept,其他步驟都可以直接點擊 Next 跳過Android Studio
應用程式,請點擊 More Actions -> SDK Managerflutter doctor
,這會顯示目前有什麼存在的問題以及該如何解決✗ Unable to find bundled Java version.
』這邊可以通過開啟 Finder 然後找到 Android Studio
右鍵,顯示套件內容,建立一個資料夾『jre』,然後將『jbr』的內容全副拷貝貼上至『jre』(解決方法參考)Android licenses status unknow
』,執行命令『flutter doctor --android-licenses
』會顯示條款,不斷地按下 y 來同意,最後再重新執行一次『flutter doctor
』即可看到 Android toolchain
變成通過的狀態了✗ CocoaPods not installed.
』,則根據提示進入該頁,執行 $sudo gem install cocoapods
即可更新flutter doctor
,看見所有項目都呈現通過且最後一行顯示 • No issues found!
則表示環境安裝完成首先開啟 VS Code
進入『延伸模組』區域,搜尋 Flutter
點擊安裝
安裝後會發現它順帶也為你安裝了 Dart
的模組
接著我們用終端機 cd 到任意一個你想生成 flutter 的位置
執行 flutter create ${project name}
(假設我的 project name 叫 myapp,則執行 flutter create myapp
)
這邊要注意,項目名稱不能包含任何的
.
、-
或 空格,也不得使用英文大寫
另外,假設需要命名為多個單字,則建議使用_
來取代-
下一步,
我們需要先開啟一個任意系統的手機模擬器(Android 或 IOS 都可)
接著開啟終端機,cd 到 myapp 資料夾
執行 flutter run
(初次執行需要打包編譯所以會花上幾分鐘時間)
直到終端機中出現『r Hot reload. 🔥🔥🔥』就完成了
回到剛才開啟的模擬器,畫面中就會出現 Flutter Demo Home Page 的畫面
點擊右下角的+號可增加畫面中央的數字
原始碼的部分可以透過 VS Code 找到 myapp/lib/main.dart
檔案
每次更新程式碼後,可回到剛才執行 flutter run
的終端機中,輸入 r
進行熱加載
(即不需關閉再重新執行,而是直接重新執行,與 nodemon 相似)
另外除了通過終端機執行 flutter run
啟動 flutter 之外
這邊更推薦的作法則是直接使用 VS Code 選單列中的『執行>執行但不進行偵錯』來開啟服務
(快捷鍵是 control
+ F5
,初次會詢問要用什麼來開啟,選擇『Dart&Flutter』即可)
該動作一樣會使用電腦目前開啟的手機模擬器顯示出 Flutter Demo Home Page 的畫面
且每次更新程式碼不需再輸入 r
而是會自動的執行熱加載,可以直接在模擬器中看見最新的狀態
下次開啟 VS Code 後,可以直接在 VS Code 右下方的選單列中切換設備,
點擊下圖中的 macOS(drawin)
即可選擇要使用哪個模擬器
選擇好模擬器後再使用快捷鍵 control
+ F5
啟動 flutter 即可
如果下載別人的 flutter 專案,要啟動前須先安裝所有依賴
類似於npm install
,於終端機中執行flutter pub get
即可安裝 flutter 專案的依賴
// int 整數
int age;
int currentYear = 2023;
// double 浮點數
double weight;
double bodyWeight = 58.7;
// num 數字(包含整數與浮點數)
num width;
num height = 200;
num bodyHeight = 170.3;
// print 類似 console.log 將東西打印出來
print(name);
// void 聲明一個函數的返回類型為空
void main() {...};
// String 字串,可用雙引號也可用單引號(需確保使用時引號頭尾相同)
String name;
String roomName = "worlds";
// var 宣告一個擁有值的變量, Dart 會自動判斷 `=` 後面的資料型態
var name = "Max";
var size = 11;
// class 創建對象,唯一需要用大小英文開頭命名的
class Person {
var name = "Max";
var age = 30;
}
/lib/main.dart
檔案中,該檔案是 flutter 的入口文件void main()=>runApp(MyApp)
import 'package:flutter/material.dart';
extends
表示繼承。我們可以建立一個 class
,並讓該 class
繼承其他 class
的方法及變數,以進行程式碼復用,舉例來說 StatelessWidget
是 material 提供的一個 class
,我們可以建立一個新的 class
來繼承 StatelessWidget
的方法及變數:
class App extends StatelessWidget { // 建立 class App 繼承 material 提供的 StatelessWidget
Widget build(BuildContext context) { // 調用 build 方法
return MaterialApp( home: Text('Hello!') ); // 回傳可被實際渲染的小部件
}
}