一、基础须知
1、Flutter包括一个现代化的响应式框架、一个2D渲染引擎、现成的widget和开发工具。
2、核心原则:一切皆为widget。结构元素、一个文本样式元素、布局的一个方面(如填充)
二、环境搭建以及项目运行
A:Android端
1、目前直接在官网下载Flutter的SDK即可,然后将Flutter的bin路径配置到环境变量中即可。同时最好需要配置一下Android_HOME 路径。
2、Android Studio中搜索插件Flutter下载重启即可。Dart的SDK以及插件下载貌似都会默认。
3、Android Studio中插上真机运行即可。
B:IOS端
1、目前 没有MAC暂不涉及。
三、Dart语言学习。
Dart基础:
1、Dart所有的东西都是对象,都继承自Object
2、动态类型语言,但是尽量定义一个类型,会更安全,未定义的在Debug下类型会是dynamic
3、Dart中的类和接口是统一的,类即接口 -- 可以继承一个类,也可以实现一个类
4、Dart提供了顶级函数 main()等
5、变量名以"_"开头意味着对它的lib是私有的
6、没有初始化的变量都会被赋予默认值null
7、final的值只能被设定一次
8、const是一个编译时的常量
9、Dart由语言规范、虚拟机 、类库和工具等组成
10、SDK包含Dart VM、dart2js、Pub、库和工具
11、Dartium:内嵌Dart VM的Chromeium,可以在浏览器中直接执行dart代码
12、Dart2js:将Dart代码编译为JavaScript的工具。
13、Dart Editor 基于Eclipse的全功能IDE,包含以上所有工具。
数据类型:
1、num数字类型的父类 子类 int 和 double
2、String 可以用单引号或者双引号,可以互相嵌套使用引号
3、字符串中可以使用这个 ${表达式} ,若不带大括号,则只会执行前边的
4、bool 布尔类型
5、List list = new List();括号中可以指定List长度,但是一旦指定,则不能执行添加、删除操作。
单个添加 list.add('a'); 多个添加 list.addAll(['b','c']);
list.length 获取长度 list.first 获取第一个元素 list.last获取最后一个元素
list[0]索引获取元素 list.indexOf('apples')查找某个元素索引号(若多个重复,返回第一个)
list.RemoveAt(0)删除指定位置元素 list.Remove('apples');成功返回true删除元素(若多个重复,返回第一个)
list.removeLast();删除最后一个元素 list.removeRange(start,end)指定范围删除(含头不含尾)
list.removeWhere((item)=>item.length>6); list.clear();删除所有元素
6、Map的执行和Java一样
运算符和控制流程语句和Java是一样的(这边就不做介绍了)。
异常(抛出异常属于表达式)
1、抛出固定类型异常:throw new FormatException('Expected at least 1 section');
2、抛出任意类型异常:throw 'Out of llamas!';
3、可以将throw语句放在=>语句中,或者其他可以出现表达式的地方:distanceTo(Point other)=>throw new UnimplementedError
4、catch的 使用方式和Java类似,抛出
try{}on OutOfLlamasException{}on Exception catch(e){}catch(e,s){} 5、rethrow
final foo = '';
void misbehave() {
try {
foo = "1";
} catch (e) {
print('2');
rethrow;// 如果不重新抛出异常,main函数中的catch语句执行不到
}
}
void main() {
try {
misbehave();
} catch (e) {
print('3');
}
}
函数:
1、Dart的函数和C#类似,函数可以作为参数传递,方便回调,也可以将一个函数分配给一个变量;
2、每个应用程序都必须有一个顶层main()函数。
3、级联符号..允许在同一个对象上进行一系列操作,级联可以执行嵌套。
4、可选参数分为 可选的命名参数和可选的位置参数
可选的命名参数 void enableFlags({bool bold,bool hidden}){} enableFlags(bold:true,hidden:false)
可选的位置参数 void say(String from,String msg,[String device]){} 调用的是可写可不写
默认参数,和C#一致,可以提供默认参数选项,当调用不传的时候,直接使用默认值
Flutter的基础整理待续