Flutter 基础

环境搭建

Flutter 常用命令行


#运行项目
$ flutter run

#模拟器列表
$ flutter emulators

#启动模拟器,只有启动模拟器才可以运行模拟器
$ flutter emulators --launch <emulator id>
#例如未启动模拟器列表:
Nexus_5X_API_28     • Nexus 5X      • Google • Nexus 5X API 28
apple_ios_simulator • iOS Simulator • Apple

#启动安卓模拟器
$ flutter emulators --launch Nexus_5X_API_28

#运行所有模拟器
$ flutter run -d all

#运行指定模拟器
$ flutter run -d <deviceId>
#例如模拟器列表:
Android SDK built for x86 • emulator-5554             • android-x86 • Android 9 (API 28) (emulator)
xxx的 iPhone               • 00008020-001838491169002E • ios         • iOS 12.2

#运行安卓模拟器
$ flutter run -d emulator-5554

#运行IOS真机
$ flutter run -d 00008020-001838491169002E

#更新版本
$ flutter upgrade

#运行模拟器过程中命令
#热更新直接刷新
$ r

#热更新重启刷新
$ R

#退出运行模拟器
$ q

#切换android和ios 模式
$ o

#显示网格
$ p

#打包apk包

#直接打包:
flutter build apk

# 64位-release:
flutter build apk --release --target-platform android-arm64

# 32位-release:
flutter build apk --release --target-platform android-arm

#打包ipa包

#直接打包:
flutter build ios

# 64位-release:
flutter build ios --release --no-codesign --target-platform=ios --target=lib/main.dart

# 32位-release:
flutter build ios --release --no-codesign --target-platform=ios --target=lib/main.dart --build-number=1.0.0

Flutter -h 帮助命令含义

命令含义
--version查看 Flutter 版本
--h 或者 -help打印所有命令行用法信息
analyze分享项目的 Dart 代码
buildFlutter 构建命令
channel列表或开关 Flutter 通道
clean删除构建/目录
config配置 Flutter 设置
create创建一个新的 Flutter 项目
devices列出所有连接的设备
doctor展示了有关安装工具的信息
drive为当前项目运行 Flutter 驱动程序测试
format格式一个或多个 Dart 文件
fuchsia_reload在 Fuchsia 上进行热重载
help显示帮助信息的 Flutter
install在附加设备上安装 Flutter 应用程序
logs显示用于运行 Flutter 应用程序的日志输出
packages命令用于管理 Flutter 包
precache填充了 Flutter 工具的二进制工件缓存
run在附加设备上运行你的 Flutter 应用程序
screenshot从一个连接的设备截图
stop停止在附加设备上的 Flutter 应用
test对当前项目的 Flutter 单元测试
trace开始并停止跟踪运行的 Flutter 应用程序
upgrade升级你的 Flutter 副本

flutter 项目 重新生成 Android ios 模板项目

# android
# 进入工程目录,删除android目录
rm -rf android

# 重新创建java语言的android目录
flutter create -a java .

# 重新创建kotlin语言的android目录
flutter create -a kotlin .

# ios
# 进入工程目录,删除ios

rm -rf ios

# 重新创建指定swift语言的ios目录
flutter create -i swift .

# 重新创建指定objective-c 语言的ios目录
flutter create -i objc .

android gradle

pluginManagement {
    repositories {
        //gradlePluginPortal()
        //google()
        //mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
//        google()
//        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }

    }
}
rootProject.name = "My Application"
include ':app'

iOS Podfile

source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'

flutter 代码片段

Flutter Widget Snippetsopen in new window

SnippetDescription
fstfulStatefulWidget snippet. This is an alternative of stful
fstlessStatelessWidget snippet. This is an alternative of stless
fscaffScaffold widget snippet
fedgallEdgeInsets widget snippet with named constructor all
fedgonlyEdgeInsets widget snippet with named constructor only
ftxtText widget snippet
finitlfFlutter initState lifecycle method snippet
ficFlutter Icon widget snippet
fcontFlutter Container widget snippet
fcentFlutter Center widget snippet
frowFlutter Row widget snippet
fcolFlutter Column widget snippet
fexExpand widget snippet
fszbwSizedBox widget snippet with just width argument
fszbhSizedBox widget snippet with just height argument
fszbSizedBox widget with width and height arguments
fedgsymEdgeInsets widget with named constructor symmetric
fedgsymvEdgeInsets widget with named constructor symmetric with vertical parameter
fedgsymhEdgeInsets widget with named constructor symmetric with horizontal parameter
fimpmatAdd material's package import statement
fstreamDisplay a StreamBuilder widget
felbtnFlutter ElevatedButton snippet

Dart 相关代码片段

SnippetDescription
dvarDart variable declaration using var
dfinalDart variable declaration using final
dconstDart variable declaration using const
dinvarDart Public Instance variable snippet
dprinvarDart Private instance variable snippet
dmtDart public method snippet
dprmtDart private method snippet
darrDart public arrow function snippet
dprarrDart private arrow function snippet
dopnctorDart optional named parameters constructor snippet
dlistDart List collection snippet
dmapDart Map collection snippet
dsetDart Set collection snippet
dgetarrDart arrow function getter snippet
dimpasDart import as snippet
dimpshowDart import show snippet
dimplazyDart import deffered as snippet
dimphideDart import hide snippet
dexhideDart export hide snippet
dexshowDart export show snippet
dconvertDart convert lib import snippet
dimpmetaAdd meta package import statement
danAdd a Dart anonymous function
dclaAdd Dart Class snippet
dclaeAdd Dart Class snippet with extends keyword

Flutter Bloc 代码片段

SnippetDescription
fblocprovFlutter bloc provider snippet

GetX Snippets