Flutter 第五课 --- 包管理器和资源管理

273 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

Flutter系列文章列表

  1. 2022年了,你还不会flutter!!!
  2. Flutter 第一课---flutter特点及组件开发
  3. Flutter 第二课---组件生命周期和App生命周期
  4. Flutter 第三课---状态管理之Provide
  5. Flutter 第四课---路由管理

什么叫包管理器

包管理器就是用来管理程序运行依赖的一个配置应用。在程序运行中,我们会用到各种各样的第三方程序包,若我们手动管理这些程序,他将变得十分臃肿。这时候便诞生了包管理器,类似于手机中的AppStore。比如说我们手机中的某个程序更新了,我们就可以通过AppStore来更新。同样的我们可以通过包管理来更新我们程序中用到的依赖包。

Flutter 包管理器

Flutter包管理器是Yanr。它能够快速、安全、 并可靠地完成这些工作。通过Yarn你可以使用其他开发者针对不同问题的解决方案,使自己的开发过程更简单,你还可以上报或者贡献解决方案。一旦问题被修复, Yarn会更新保持同步,Flutter项目默认的配置文件是pubspec.yaml。

name: flutter_demo
description: A new Flutter project.

version: 1.0.0

dependencies:
  flutter:
    sdk: flutter

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
 assets:
  - images/a_dot_burr.jpeg
  - images/a_dot_ham.jpeg

fonts:
  - family: Schyler
  fonts:
  - asset: fonts/Schyler-Regular.ttf
  - asset: fonts/Schyler-Italic.ttf
  style: italic
  1. name:应用或包名称。
  2. description: 应用或包的描述、简介。
  3. version:应用或包的版本号。
  4. dependencies:生产环境依赖的工具包。
  5. dev_dependencies:开发环境依赖的工具包。
  6. flutter:flutter相关的配置选项。
    • assets: 配置静态文件
    • font: 配置字体文件

Pub仓库

Pub 是Google官方的Dart Packages仓库,类似于node中的npm仓库,我们可以在上面查找我们需要的包和插件,也可以向pub发布我们的包和插件。关于安装依赖的相关步骤,这里不展开讲,自行学习。

资源管理

flutter资源主要包括静态数据(例如JSON文件)、图标和图片(JPEG,WebP,GIF,动画WebP / GIF,PNG,BMP和WBMP)等。每个asset都通过相对于pubspec.yaml文件所在位置的进行配置。如上所述的image图片、font字体等。

配置图片资源

  1. 首先在pubspec.yaml flutter 配置环境下,配置静态文件目录或者文件名
assets:
  - images/tabbar  //  可以直接配置静态资源文件目录
  - images/image.png // 也可以配置图片名
  1. 使用资源图片资源
Center(
  child: Image.asset(
    'images/image.png',
    width: 350,
    height: 335,
  ),
),

关于图片资源存放目录,官网说要必须配置2.x、3.x 文件目录(AssetImage 可以将asset的请求逻辑映射到最接近当前设备像素比例(dpi)的asset。),我在开发中没有配置,图片也正常加载了。所以你若没有此类需求,只是单纯去加载图片资源,建议创建一个图片资源文件夹就够了。 若我出现引导错误,及时纠正。

配置全局字体资源

  1. 下载字体资源包,存放在程序主目录/fonts 文件夹(存放目录可以是任何位置,需要在pubspec.yaml 配置正确的目录地址)
  2. 在pubspec.yaml flutter 配置环境下,配置静态文件目录或者文件名
fonts:
  - family: Avenir
    fonts:
      - asset: fonts/Avenir/Avenir.ttf  // 配置正确的字体存放路径
        weight: 900
  1. 在main.dart 中定义全局字体配置
MaterialApp(
   theme: ThemeData(fontFamily: 'Avenir'),
   debugShowCheckedModeBanner: false,
  ),
);

配置完成后,你程序中的默认字体就是你所下载的字体文件了。是不是so easy!

关于静态资源配置,上述两种是我在项目中经常遇到的一些配置。关于其他静态资源配置,暂时没有遇到,若之后遇到了,解决了,我会及时补充,还请各位同学理解。

结束语

关于flutter包管理器和资源管理的学习到这里就结束了。下期我们来说说flutter网络请求及封装处理。如果你刚好正在学习flutter,可以关注我,请相信会给你不一样的收获。如果你是flutter大佬,欢迎指导!