flutter 创建应用

2020-09-01  本文已影响0人  cheng1314

一、创建新应用

1、创建新应用

flutter create xxx (xxx为应用名称)

2、运行应用

flutter run

3、查看flutter连接设备

flutter devices

4、推荐使用Androidstudio运行flutter项目

Android Studio打开项目的之后,通过(Preferences>Plugins on macOS, File>Settings>Plugins on Windows & Linux).安装Flutter和Dart两个插件即可运行flutter项目在iOS和安卓设备上.

二、环境、工具、版本问题

1.flutter有stable、beta、dev、master版本,选择stable版本
2.flutter doctor 可插件项目问题;
3.工具:xcode、Androidstudio、VPN镜像

三、程序入口

JavaScript没有预定的入口函数、但是在Dart中,每个app必须有一个顶级的main()函数作为应用程序的入口

//Dart
main() {
}

变量

Dart的类型是安全的 - 它使用静态类型检查和运行时的组合,检查确保类型始终与变量的静态值匹配类型,尽管某些类型是必选的,但某些类型注释是可选的,因为Dart会执行类型推断。

创建分配变量

在JavaScript中无法定义变量类型;在Dart中变量必须是系统能够解析的类型;

//JavaScript 
var name = "xiaoming";
//Dart
String name = "xiaoming";//定义一个确定类型的变量
var name = "xiaoming";//定义一个可以推断的变量
//以上两种类型在Dart都可以使用

默认值

在JavaScript中,未初始化的变量值为undefined;在Dart中未初始化的变量值为null

//JavaScript 
var age;// undefined 
//Dart
var age;
int age;
//以上二者都为null

检查null或零

//JavaScript 
var myNull = null;
if (!myNull) {
    console.log('true');
}
var zero = 0;
if (!zero) {
    console.log('true');
}
//Dart 
var myNull = null;
if (myNull == null) {
    print('true');
}
var zero = 0;
if (zero == 0) {
    print('true');
}
  bool isConnected(a,b) {
    bool outCon = outgoing[a]?.contains[b] ?? false;
    bool inCom =  incoming[b] ?.contains[a] ?? false;
  }

?.运算符在左边为null的情况阻断右边调用,??运算符作用是在左侧为null的时候为其设置默认值;

  print(null ?? false);  //false
  print(false ?? 11);//false
  print(true ?? false);//true
int length = model?.data?.length ?? 0;

FUCTIONS

//JavaScript 
function fn() {
    return true;
}
//Dart
fn() {
    return true;
}
bool fn() {
    return true;
}

异步编程

与JavaScript一样,Dart支持单线程执行。在JavaScript中Promise表示最终的执行完成或失败,在Dart中使用Future来表示异步操作;

import 'dart:convert';
import 'dart:html';

void main() {
  _getIPAddress() {
    final url = "https://httpbin.org/ip";
    HttpRequest.request(url).then((value) => {
      print(json.decode(value.responseText)['origin'])
    }).catchError((error) => print(error));
  }
  _getIPAddress();
}

async 和 await

在Dart中async函数返回一个Future,函数主体是稍后执行。await运算符用于等待Future:

import 'dart:convert';
import 'dart:html';

void main() {
  _getIPAddress() async{
    final url = "https://httpbin.org/ip";
    var request = await HttpRequest.request(url);
    String ip = json.decode(request.responseText)['origin'];
    print(ip);
  }
  _getIPAddress().then((value) => {
      print('获取ip结束')
    }).catchError((error) => print(error));
}
上一篇下一篇

猜你喜欢

热点阅读