Flutter 结构和导包

在这里插入图片描述

A. 入口程序 main.dart

每一个Flutter项目的/lib目录下都有一个main.dart文件,打开该文件,里面应该有一个main()函数。Flutter使用Dart语言开发,而在Dart语言中,main()函数是Dart程序的入口,也就是说,Flutter程序在运行的时候,第一个执行的函数就是main()函数。如下面的代码所示:

C. 程序入口

void main() => runApp(Widget app);

从上面的代码中可以看到,main()函数中只调用runApp函数,使用runApp函数可以将给定的根组件填满整个屏幕。你可能会有疑问,为什么一定要使用runApp函数?如果不调用runApp函数,项目也可以正常执行,但是屏幕上什么都不会显示。Flutter是Dart语言的移动应用框架,runApp函数就是Flutter框架的入口,如果不调用runApp函数,那你执行的就是一个Dart控制台应用。

B. Material Design设计风格

每一个.dart文件的第一行几乎都会导入flutter/material.dart包,这个包是Flutter实现Material Design设计风格的基础包,里面有文本输入框(Text)、图标(Icon)、图片(Image)、行排列布局(Row)、列排列布局(Column)、Decoration(装饰器)、动画等组件,大家可以将它们理解为网页中的按钮、标题、选项框等组件库。

import 'package:flutter/material.dart';

那么Material Design又是什么呢?是谷歌推出的一套视觉设计语言。比如有的App可以换皮肤,而每一套皮肤就是一种设计语言,有古典风、炫酷风、极简风,等等,而Material Design就是谷歌风。Flutter采用的就是Material Design风格。

D.E 无状态组件和有状态组件

● 无状态组件(StatelessWidget)是不可变的,这意味着它们的属性不能改变,所有的值都是最终的。
● 有状态组件(StatefulWidget)持有的状态可能在Widget生命周期中发生变化。实现一个StatefulWidget至少需要两个类:
○ 一个StatefulWidget类。
○ 一个State类。StatefulWidget类本身是不变的,但是State类在Widget生命周期中始终存在。

使用资源包

Flutter包类似于Java语言里的jar包,由全球众多开发者共同提供第三方库。例如,网络请求(http)、自定义导航/路由处理(fluro)、集成设备API(如url_launcher&battery)以及第三方平台SDK(如Firebase)等。这使得开发者可以快速构建应用程序,而无须从头造轮子。

所有包(package)都会发布到Dart的包仓库里
包仓库地址:

// 地址 (需要翻墙) https://pub.dartlang.org 
// 国内地址 https://pub.flutter-io.cn

在这里插入图片描述

包使用示例
在这里插入图片描述

点击Packages get 在控制台输出:
在这里插入图片描述

引用和使用
在这里插入图片描述

import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final wordPair = new WordPair.random();
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Hello Flutter'),
        ),
        body: new Center(
          child: new Text(wordPair.asPascalCase),
        ),
      ),
    );
  }
}

分享个返利程序,可以赚点零花钱。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter项目的结构推荐是遵循一种清晰、模块化和可维护性的架构。以下是一个常见的Flutter项目结构推荐: 1. lib文件夹:这个文件夹是主要的代码目录,包含所有的Flutter代码文件。 2. main.dart文件:这个文件是Flutter应用的入口点,它包含了应用的初始化和启动逻辑。 3. models文件夹:这个文件夹用于存放数据模型,比如用户、商品等,通常会创建一个类来代表每个模型对象。 4. views文件夹:这个文件夹用于存放所有的视图文件,每个视图都应有一个对应的.dart文件,用来处理界面布局和交互逻辑。 5. widgets文件夹:这个文件夹用于存放所有的自定义小部件,它们是Flutter的基本构建块,可以重用和组合来构建各种界面。 6. services文件夹:这个文件夹用于存放与后台通信、数据库访问等服务相关的代码,可以使用单例模式来管理这些服务。 7. utils文件夹:这个文件夹用于存放各类工具函数,比如日期处理、网络请求等,可以以函数库的形式提供给其他部分使用。 8. assets文件夹:这个文件夹用于存放应用所需的静态资源,比如图片、字体文件等。 9. tests文件夹:这个文件夹用于存放单元测试代码,以确保应用的质量和稳定性。 以上是一种常见的Flutter项目结构推荐,它能够提供清晰的代码组织和模块化的开发方式,同时也便于协作和维护。但实际项目中,根据具体需求和团队的喜好,可能会进行适当的调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值