Flutter 是一个由 Google 开发并维护的开源移动应用开发框架,它允许开发者使用单一代码库构建 Android、iOS、Web(通过 Flutter 插件)以及桌面应用程序(通过 Flutter Desktop Embedding)的应用程序。
Flutter 的整体框架结构可以分为以下几个部分:
Dart 语言:Flutter 使用了 Dart 语言作为开发应用程序的主要语言。Dart 是一种面向对象的编程语言,具有静态类型、编译型和跨平台的特点。
Flutter 引擎:这是 Flutter 的核心,包含了 Dart 的解释器(用于运行时编译 Dart 代码)以及用于渲染 UI 的 Skia 图形库。
Flutter 框架:这是构建应用程序的实际组件集合。它包括各种内置的 UI 组件(如按钮、文本框等)、数据持久化机制(如文件 I/O)、网络访问等。
Flutter 插件:这些是一些为 Flutter 提供特定功能的第三方库。例如,Flutter 的 Firebase 插件可以让开发者使用 Firebase 的各项服务(如身份验证、云存储等)。
Flutter 应用:这是最终的应用程序,由开发者使用 Flutter 框架和插件构建。
在 Flutter 中,一切都是 Widget(小部件)。Widget 是表示用户界面的最小单元,你可以把它理解为一个 UI 组件。Flutter 中的 Widget 是可变的,这意味着你可以在运行时修改它们的状态。
下面是一个简单的 Flutter 应用代码示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } }
class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override _MyHomePageState createState() => _MyHomePageState(); }
class _MyHomePageState extends State<MyHomePage> { int _counter = 0;
void _incrementCounter() { setState(() { _counter++; }); }
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(this.widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( 'You have pushed the button this many times:', ), Text( '$_counter', // 这个符号可以用来表示变量,即显示 _counter 的值。 style: Theme.of(context).textTheme.headline4, // 使用主题中的标题4样式。