混合开发 Flutter框架 序言

#混合开发 Flutter框架 序言

Flutter是一个由谷歌开发的开源移动应用软件开发工具包,用于为Android、iOS、 Windows、Mac、Linux、Google Fuchsia开发应用

# 架构组织

flutter 主要组成部分:

  • Dart 平台
  • Flutter 引擎
  • 基础库
  • 定制化设计的语言组件

# Dart平台

Flutter应用是使用Dart语言编写的,并利用了该语言的许多高级功能。

在Windows、macOS和Linux上,通过半官方的Flutter Desktop Embedding项目,Flutter在Dart虚拟机中运行,该虚拟机具有即時編譯执行引擎。在编写和调试应用时,Flutter使用即时编译功能进行“热重载”,可以将对源文件的修改注入正在运行的应用中。Flutter通过支持有状态的热重载来扩展此功能,在大多数情况下,对源代码的更改可以立即在运行的应用中反映出来,而无需重新启动或丢失任何状态。[11]Flutter实现的此功能已广受赞誉。

Flutter应用的发布版本在Android和iOS上都进行了提前(AOT)编译,使Flutter在移动设备上可以高性能地运行。

# Flutter引擎

Flutter的引擎主要使用C++开发,通过Google的Skia图形库提供底层渲染支持,亦提供平台相关的SDK,例如Android和iOS[10]。Flutter引擎是用于托管Flutter应用的可移植的运行环境。它实现了Flutter的核心库,包括动画和图形、文件和网络I/O、可访问性支持、插件架构以及Dart运行环境和编译工具链。大多数开发人员将通过Flutter框架与Flutter进行交互,该框架提供了一个现代、响应式的框架,以及一组丰富的平台、布局和基础组件。

# 基础库

基础库由Dart编写,提供了用Flutter构建应用所需的基本的类和函数,例如与引擎通讯的API

# 组件

Flutter是通过组织、创建不同的组件完成用户界面设计的。在Flutter中,一个组件代表用户界面中不可变的一部分;包括文本、多边形以及动画在内的所有图形都是用组件创建的。复杂的组件由简单的组件结合而成。

# 定制化设计风格的组件

Flutter框架包含了两套符合特定设计语言的组件。 称作Material Design的组件实现的是同名的谷歌设计语言,称作Cupertino的组件实现苹果公司iOS的扁平化设计(Flat Design)

# Hello World示例

import 'package:flutter/material.dart';

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

class HelloWorldApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello World App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Hello World App'),
        ),
        body: Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

你可能感兴趣的:(Flutter)