1、dart安装

windows(推荐):

    http://www.gekorm.com/dart-windows/

  mac:

    如果mac电脑没有安装brew这个工具首先第一步需要安装它:  https://brew.sh/

    brew tap dart-lang/dart
    
    brew install dart

dart -version检测安装是否成功

安装太慢解决办法:https://blog.csdn.net/weixin_37910453/article/details/94060152

这里我们主要给大家讲解的是如果在Vscode中配置Dart。

  1、找到vscode插件安装dart

		2、找到vscode插件安装code runner     Code Runner  可以运行我们的文件

2.dart语法

var

类似于JavaScript中的var,它可以接收任何类型的变量,但最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型

dynamic和Object

Object 是Dart所有对象的根基类,也就是说所有类型都是Object的子类(包括Function和Null),所以任何类型的数据都可以赋值给Object声明的对象. dynamic与var一样都是关键词

  • 相同点:声明的变量可以赋值任意对象。而dynamic与Object相同之处在于,他们声明的变量可以在后期改变赋值类型

    • 不同点:dynamic与Object不同的是,dynamic声明的对象编译器会提供所有可能的组合,而Object声明的对象只能使用Object的属性与方法,否则编译器会报错也就是说,dynamic声明的对象拥有该对象的所有属性和方法等(包括object的属性方法),而object声明的对象只拥有object的属性与方法

    final和const: 常量

    • 相同点: 被final或const修饰的变量,变量类型可以省略,两者修饰的变量都是常量
    • 不同点:const要求在声明时初始化,赋值必需为编译时常量;final变量在第一次使用时被初始化, 并不要求赋的值一定是编译时常量,可以是常量也可以不是常量
Dart 里的 String

跟 Java 中的一样,是不可变对象;不同的是,检测两个 String 的内容是否一样事,我们使用 == 进行比较;如果要测试两个对象是否是同一个对象(indentity test),使用 identical 函数。

在 Dart 2 里,创建对象时可以省略 new 关键字,也推荐省略 new

关键字 is:

if (obj is Map<String, int>) {}

注解 @required

如果想告诉用户某个具名参数是必须的,可以使用注解 @required:

Dart 不支持函数的重载。、
字符串

使用三个单引号或三个双引号 创建多行字符串

异步
  1. 当使用async作为方法名后缀声明时,说明这个方法的返回值是一个Future
  2. 当执行到该方法代码用await关键字标注时,会暂停该方法其他部分执行;
  3. await关键字引用的Future执行完成,下一行代码会立即执行。
可选命名参数

在方法参数中,使用"{}"包围的参数属于可选命名参数,比如

  void _buildThree(int num, {String name, int range}) {
    
  }
可选位置参数

在方法参数中,使用"[]"包围的参数属于可选位置参数,比如

  void _buildHouse(int num, [String where, int range]) {

  }
  
  void _buildHouseAndDefaultValue(int num, [String where = 'Shanghai', int range]) {

flutter

电脑配置要求

(一) 操作系统:Windows 7 SP1或更高版本(64位)

(二) 磁盘空间:400 MB(不包括IDE /工具的磁盘空间)。

(三) 对Android Studio的要求:需要安装3.0 或者更高的版本。

(四) Flutter支持的sdk环境:Android 4.1(API 16)或者更高版本。

(五) 对Android模拟器镜像的要求:推荐使用x86或者x86_64镜像。

(六) 工具:Flutter需要用到以下2个工具:

(1) PowerShell 5.0或更新版本

(2) Git for Windows(下载Flutter)

flutter upgrade更新命令

(3)环境变量配置

(4)flutter的常见命令

在flutter根目录打开flutter_console.bat,输入命令,flutter不支持Git小乌龟或黑窗口命令

要查看您当前使用的分支,请运行flutter channel查看。

要切换分支,请使用flutter channel betaflutter channel master

常用命令含义
–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副本。

(5)Android Studio配置

Flutter对的要求:需要安装3.0 或者更高的版本

Android Studio需要FlutterDart插件才可以使用:

(6)创建我们的第一个FlutterDemo

Flutter支持的sdk环境:Android 4.1(API 16)或者更高版本。 Android模拟器:推荐使用x86或者x86_64镜像。

(一)打开AS,点击 File --> New Flutter Project,选择Flutter application ,点击next,输入一个工程名字

**注意:**项目名称必须是小写,单词之间用下划线隔开

(二)输入包名,点击next,点击finish,等待编译就可以了。如果没配置好,这个时候往往会报错。

三)首先模拟器,然后选择要运行的项目,注意了,这里有一个MainActivitymain.dart,选择main.dart,然后点击绿色的三角号图标运行(或者点击菜单栏 Run)就可以了。

img

出现上图因为你没有配置adb,需要在本地配置adb,还有一个ANDROID_HOME也一定要配置:

https://blog.csdn.net/lyh1299259684/article/details/80505185?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

adb配置:

img

ANDROID_HOME配置:

img

说明一下:这里的变量名一定要是ANDROID_HOME,否则会出错。变量值为你android sdk的路径


第一次创建项目卡着了,解决办法上网搜,gradle改为国内镜像

https://blog.csdn.net/lj402159806/article/details/78422953

大致是自己去gradle网站https://services.gradle.org/distributions/上下载你要的版本,然后配置当前工程使用本地路径的gradle。

修改gradle_wrapper.properties的distributionUrl=https://http://services.gradle.org/distributions/gradle-5.6.2-all.zip

distributionUrl=file:/Users/xxx/.gradle/wrapper/dists/gradle-5.6.2-all/local/gradle-5.6.2-bin.zip

注:经过测试不改gradle_wrapper.properties也可以,改build.gradle文件镜像地址为国内


需要安卓28

每个项目的build.gradle修改配置

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter/'}
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter/'}
    }
}

运行flutter doctor --android-licenses命令

  • Linux 或 Mac
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
  • Windows

新增两个环境变量即可

PUB_HOSTED_URL ===== https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL ===== https://storage.flutter-io.cn

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Raz44Zc-1665627182939)(C:\Users\liang\AppData\Roaming\Typora\typora-user-images\1602726895228.png)]


配完变量重启电脑

flutter packages get获取包,在项目根目录下运行命令*

flutter pub get

https://blog.csdn.net/jinglinggg/article/details/105383270

第一次运行别的项目设置gradle版本

build.gradle文件设置

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
    }

gradle-wrapper.properties文件设置

distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

另外可能需要设置dart和flutter的目录

Scaffold布局控件

自带主页骨架

《flutter实战》笔记

1、路由管理
onPressed: (){
                Navigator.push(context,
                    MaterialPageRoute(
                        builder:(context){
                    return NewRoute();
                    }
                    )
                );
              },
  MaterialPageRoute({
    WidgetBuilder builder,
    RouteSettings settings,
    bool maintainState = true,
    bool fullscreenDialog = false,
  })

maintainState:默认情况下,当入栈一个新路由时,原来的路由仍然会被保存在内存中,如果想在路由没用的时候释放其所占用的所有资源,可以设置maintainState为false。

1.2.4 路由传值
1.2.5 命名路由
注册路由表

路由表的注册方式很简单,我们回到之前“计数器”的示例,然后在MyApp类的build方法中找到MaterialApp,添加routes属性,代码如下:

MaterialApp(
  title: 'Flutter Demo',
  theme: ThemeData(
    primarySwatch: Colors.blue,
  ),
  //注册路由表
  routes:{
   "new_page":(context) => NewRoute(),
    ... // 省略其它路由注册信息
  } ,
  home: MyHomePage(title: 'Flutter Demo Home Page'),
);


 Navigator.pushNamed(context, "new_page");
命名路由参数传递
 var args=ModalRoute.of(context).settings.arguments;

2.3 包管理

flutter如何使用配置文件pubspec.yaml(位于项目根目录)来管理第三方依赖包。

1、将“english_words”(3.1.3版本)添加到依赖项列表,如下:

2、下载包。在Android Studio的编辑器视图中查看pubspec.yaml时(图2-6),单击右上角的 Packages get

3、引入english_words包。

其它依赖方式

上文所述的依赖方式是依赖Pub仓库的。但我们还可以依赖本地包和git仓库。

  • 依赖Git:你也可以依赖存储在Git仓库中的包。如果软件包位于仓库的根目录中,请使用以下语法

    dependencies:
      pkg1:
        git:
          url: git://github.com/xxx/pkg1.git
    

    上面假定包位于Git存储库的根目录中。如果不是这种情况,可以使用path参数指定相对位置,例如:

    dependencies:
      package1:
        git:
          url: git://github.com/flutter/packages.git
          path: packages/package1
    

上面介绍的这些依赖方式是Flutter开发中常用的,但还有一些其它依赖方式,完整的内容读者可以自行查看:https://www.dartlang.org/tools/pub/dependencies 。

2.4 资源管理

指定 assets

和包管理一样,Flutter也使用pubspec.yaml文件来管理应用程序所需的资源,举个例子:

错误总结

1、Unimplemented handling of missing static target

不用热重载,重新运行就好,可能是新导入包了

demo笔记

实现一个 stateful widget 至少需要两个类:

  1. 一个 StatefulWidget类。

  2. 一个 State类。

格式化代码

  • Android Studio / IntelliJ IDEA: 右键单击Dart代码,然后选择 Reformat Code with dartfmt.

2.4 资源管理

指定 assets

和包管理一样,Flutter也使用pubspec.yaml文件来管理应用程序所需的资源,举个例子:

错误总结

1、Unimplemented handling of missing static target

不用热重载,重新运行就好,可能是新导入包了

demo笔记

实现一个 stateful widget 至少需要两个类:

  1. 一个 StatefulWidget类。

  2. 一个 State类。

格式化代码

  • Android Studio / IntelliJ IDEA: 右键单击Dart代码,然后选择 Reformat Code with dartfmt.

在Dart语言中使用下划线前缀标识符,会强制其变成私有的。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐