Flutter - 初识
一、跨平台技术
RN、Weex、uni-app 、flutter 等等。
其中 RN 和 Flutter 的区别是:
RN 底层沿用的本地原生,封装了uikit。
flutter 自渲染引擎。
日后会具体分析实现原理分析。#future
二、用android studio创建flutter 项目
1、flutter application 开发一个app。
2、flutter plugin 开发插件,同时用于原生。
3、flutter package 仅用于纯flutter。
4、flutter module 单独项目模块,用于混合开发 (flutter create -t module xxapp_module)
三、如果遇到运行卡住的情况,可以删除 /opt/flutter/bin/cache/lockfile
四、flutter中 widget 分为有状态的 Stateful 和 无状态的 Stateless
五、三个重要的布局 row、colum、stack。
六、部件渲染原理
简单的说就是不断的清除加载、清除加载。
所有界面都是不可变的(无状态的!)
Stateful需要一个state对象来管理状态。
七、Flutter环境搭建
开发环境:
mac - 10.15.7
xcode - 12.4
android studio - 3.6.3
安装 flutter - 1.22.6
1、进入官网https://flutter.dev/docs/get-started/install/macos
2、根据官网操作一步步来。
3、可能遇到的问题:
(1) 配置 flutter 的 PATH 环境变量,这里我将flutter sdk,放在系统opt文件夹下。
我的配置如下:
# Flutter
#镜像地址
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
#sdk路径
export FLUTTER=/opt/flutter/bin
export PATH=$FLUTTER:$PATH
(2) flutter precache
这个命令的意思是:flutter 命令行工具会下载不同平台的开发二进制文件,如果需要一个封闭式的构建环境,或在网络可用性不稳定的情况下使用等情况,你可能需要通过下面这个命令预先下载 iOS 和 Android 的开发二进制文件。此处我先省略(省略之后,后面运行各种报错,不能省略)。
(3) 直接执行 flutter doctor
出现:Android licenses not accepted. To resolve this, run: flutter doctor –android-license 报错
直接执行 flutter doctor –android-license

完美通过。
(4) 还遇到了一个坑点,就是当我关闭终端,再次准备输入flutter命令的时候,发现flutter命令不管用了。必须重新source ~/.bash_profile 命令才可以。
这只是单次解决方案。
产生问题的原因是:从 macOS Catalina 版开始,mac将使用zsh的shell版本。这里的区别以及shell版本以后会具体分析说明。#future
解决方案: open ~/.zshrc , 将bash_profile的内容 copy进来 即可。最后 source ~/.zshrc 一下。
八、开始创建项目
1、直接用命令 flutter create my_app。
2、用android studio运行flutter项目(前提装了flutter插件)。
3、如果我直接用xcode运行ios项目,直接报错了。报找不到 Flutter.podspec。其实是我没有执行完:flutter precache。
4、也可以直接用android studio创建一个flutter项目。
5、vscode 感觉用的不是很爽,写小程序还可以,flutter我还是喜欢用android studio 。