Flutter | 包管理

0005b72e6a0746b0be300e6117d1595b_tplv-k3u1fbpfcp-zoom-1

​ 在日常开发中,很多时候需要用到第三方的 SDK ,这些 SDK 可能会被很多个项目用到,因此可以将这些代码单独抽到一个模块中,使用的时候只需要集成对于的模块即可,

​ 在 Java 中,模块会被打成一个 jar 包

​ 在 Android 中,模块会被打成一个· aar 包

​ 一个 app 在开发的过程中可能会依赖非常多的包,这些包通常都会出现交叉依赖,版本依赖等,如果需要手动管理,则会非常麻烦,因此,各种编程语言的官方都会提供一下包管理工具,如:

​ 在 Android 中提供了 Gradle 来管理依赖

​ 在 IOS 中用 Cocoapods 或者 Carthage 来管理依赖

​ 而在 Flultter 中,使用的是 yaml 文件作为其配置文件,全名 pubspec.yaml

pubspec.yaml

name: flutter_study
description: A new Flutter application.

publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.0

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true
  • name :应用或者包名称
  • description:应用或包的描述,简介
  • version:应用或包的版本号
  • environment:环境版本
  • dependencies:应用或包导入的其他包或者插件
  • dev_dependencies:开发环境依赖的工具包(而不是 flutter 本身依赖的包)
  • flutter:flutter 相关配置选项

Pub 仓库

Pub 是 Google 官方的 Dart Packages 仓库,类似于 android 中的 jcenter ,我们可以在 Pub 上面查找我们需要的包和插件,也可以想 Pub 发布我们的包和插件

示例:

​ 在 Pub 上找到一个随机字符串的 widget,并确定最新版本号和是否支持 flutter,

image-20210111180250486

  • 添加依赖

    dependencies:
      flutter:
        sdk: flutter
      cupertino_icons: ^1.0.0
      english_words : ^3.1.5
    
  • 同步代码 pub Get

  • dev_dependencies

    dev_dependencies 的依赖包只是作为开发阶段的一个工具包,主要是用于帮助我们提高开发,测试效率,等,例如 flutter 自动化测试等

    dependencies 会将依赖包作为 app 源码的一部分并参与编译,生成最后的安装包

  • 使用 english_words 包生成随机字符串

    class RandomWordsWidget extends StatelessWidget {
      final wordPair = new WordPair.random();
    
      @override
      Widget build(BuildContext context) {
        return Padding(
            padding: const EdgeInsets.all(8.0),
            child: new Text(wordPair.toString()));
      }
    }
    

    将上面的 widget 添加到界面中

  • 点击热重载按钮,每次都会随机生成不同的单词

    image-20210112173345939

其他依赖方式

  • 依赖本地包

    dependencies:
        pkg1:
            path: ../../code/pkg1
    

    如果我们真正本地开发一个包,名字为 pkg1,可以通过上面的方式依赖,路径可以相对,也可以绝对

  • 依赖 git

    //git方式
    dependencies:
      flutter_easyrefresh:
        git:
          url: git://github.com/xuelongqy/flutter_easyrefresh.git
    

    flutter_easyrefresh:依赖的项目名称

    dependencies:
      kittens:
        git: [email protected]:munificent/kittens.git
        path: flutterpackagename
    

    依赖git仓库下的某个flutter package

Flutter 项目目录结构

image-20210112175412740
  • android

    flutter 与 android 原生交互的一些代码

  • ios

    flutter 与 ios 原生交互的一些代码

  • lib

    这里存放的是 dart 语言编写的代码,并且是项目中最核心的代码,我们主要编写的代码就是在这个文件夹

  • pubspec.yaml

    这里是配置依赖项的文件,例如远程的 pub 仓库,git 仓库等


参考自 Flutter实战

Guess you like

Origin blog.csdn.net/baidu_40389775/article/details/112548303