Flutter是最新的跨平台开发技术,可以横跨Android、iOS、MacOS、Windows、Linux等多个系统。Flutter采用了更为彻底的跨平台方案,即自己实现了一套UI框架,然后直接在GPU上渲染UI页面。

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。

Flutter的特点:跨平台、丝滑般的体验、响应式框架、支持插件、60fps超高性能。
Flutter的核心:组件、构建、状态、框架等。

在Java编程时,我们将一切看作对象。而使用Flutter时,我们将一切视为组件(Widget)。组件是Flutter应用程序用户界面的基本构建块。

Widget具有丰富的属性及方法,属性通常用来改变组件的状态(颜色、大小等)及回调方法的处理(单击事件回调、手势事件回调等);方法主要是提供一些组件的功能扩展。

我们可以使用Flutter的组件嵌套来实现复杂度高的UI。最基础的组件类是Widget,其他所有的组件都是继承Widget的。

Flutter Widget分为:有状态组件(Stateful Widget)及无状态组件(Stateless Widget)。

构建Widget
我们可以重写Widget的build方法来构建一个组件。

@protected Widget build(BuildContext context);

处理用户交互

父Widget可以自由地创造子Widget的新实例且不会失去子Widget的状态,而不是通过持有子Widget来维持其状态。

State(状态),State是一个组件的UI数据模型,是组件渲染时的数据依据

分层的框架

Material层通常组合来自Widget层的基本Widget
Widget层通过较低级对象渲染层来构建。

//新建flutter-app,修改main.dart文件如下:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello World!',
      theme: ThemeData(
        primaryColor: Colors.red,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Welcome to Fultter'),
        ),
        body: Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

参考资料:亢少军老师的《Flutter技术入门与实战》

Flutter 初学之路—初识Flutter