Flutter&Dart简介

  • 内容
  • 评论
  • 相关

Fuchsia
Fuchsia是谷歌开发的一款全新的操作系统,该系统与Android相比,无论是存储器还是内存之类的硬件要求都大幅降低,外界推论是一款面向物联网的系统。

Flutter
Flutter是谷歌的移动跨平台UI框架,可快速在iOS、Andriod和Fuchsia上构建高质量的原生用户界面。其官方编程语言为Dart,也是一门全新的语言。
官方地址:https://flutter.io/
特性:
快速开发:Flutter的热重载可以快速地进行测试、构建UI、添加功能并更快地修复错误。
富有表现力,漂亮的用户界面:自带的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果。
响应式框架:使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。
访问本地功能和SDK:Flutter可以复用现有的Java、Swift或ObjC代码,访问iOS和Android上的原生系统功能和系统SDK。
统一的应用开发体验:Flutter拥有丰富的工具和库,可以帮助开发者轻松地同时在iOS和Android系统中实现想法和创意。
原生性能:Flutter包含了许多核心的widget,如滚动、导航、图标和字体等,这些都可以在iOS和Android上达到原生应用一样的性能。
Flutter渲染引擎依靠跨平台的Skia图形库来实现。

Material Design
中文名:材料设计语言,是由Google推出的全新的设计语言。https://material.io/
https://github.com/material-components/material-components-flutter
https://design.google/

Flutter生态
https://github.com/Solido/awesome-flutter
https://pub.dartlang.org/
loading样式库:https://pub.dartlang.org/packages/flutter_spinkit
比较好的flutter工程demo:https://github.com/CarGuo/GSYGithubAppFlutter

Dart
Dart是谷歌开发的计算机编程语言,于2011年10月份发布,可以被用于web、服务器、移动端和物联网等领域的开发。Flutter采用Dart,原因很多,抛开商业层面的Java版权问题,单纯从技术层面:
Dart是AOT(Ahead Of Time)编译的,编译成快速、可预测的本地代码,使Flutter几乎都可以使用Dart编写;
Dart也可以JIT(Just In Time)编译,开发周期快;
Dart可以更轻松地创建以60fps运行的流畅动画和转场;
Dart使Flutter不需要单独的声明式布局语言;
Dart容易学习,具有静态和动态语言用户都熟悉的特性。
Dart SDK:https://api.dartlang.org/stable/1.24.3/index.html,其中包含官方Dart API库,要系统学习Dart这门语言需要去它的官方网站:https://www.dartlang.org/,后面会单独介绍。

Gradle
Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。

widget是Flutter应用程序用户界面的基本构建块,每个widget都是用户界面一部分的不可变声明,与其他将视图、控制器、布局和其他属性分离的框架不同,Flutter具有一致的统一对象模型:widget。在更新widget的时候,框架能够更加的高效。

对于Android平台,Flutter引擎的C/C++代码是由NDK编译,在iOS平台,则是由LLVM编译,两个平台的Dart代码都是AOT编译为本地代码,Flutter应用程序使用本机指令集运行。

Flutter正是是通过使用相同的渲染器、框架和一组widget,来同时构建iOS和Android应用,而无需维护两套独立的代码库。

Flutter将UI组件和渲染器从平台移动到应用程序中,这使得它们可以自定义和可扩展。Flutter唯一要求系统提供的是canvas,以便定制的UI组件可以出现在设备的屏幕上。

MaterialApp和Scaffold是Flutter提供的两个Widget,其中:
MaterialApp是一个方便的Widget,它封装了应用程序实现Material Design所需要的一些Widget。
Scaffold是Material Design布局结构的基本实现。此类提供了用于显示drawer、snackbar和底部sheet的API。

Widget和Widget之间通过child: 进行嵌套。其中有的Widget只能有一个child,比如下方的Container;有的Widget可以多个child ,也就是children:,比如Column布局。

Flutter中也使用Redux进行状态管理,它是一种单向数据流架构,可以轻松开发,维护和测试应用程序。

阿里云闲鱼技术:https://yq.aliyun.com/search/articles/?spm=a2c4e.11163080.searchblog.146.59b72ec1ub37s7&q=flutter&idx=default&days=&p=2
谷歌机器学习框架,TensorFlow:https://tensorflow.google.cn/

Dart是基于单线程模型的语言,在Dart也有自己的进程(或者叫线程)机制,名叫isolate
进程与线程:https://www.cnblogs.com/fuchongjundream/p/3829508.html

java的this和super,this相当于是指向当前对象本身。super理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注