flutter环境配置


小伙伴,很高兴能看到这篇文章,也许你是 flutter 大牛,也许你是小白,请耐心看完, 这是 flutter 多环境配置及 Dio 请求封装的最佳实践, 相信这也是全网最好的一篇 flutter 实践文章, 适合大中小型项目, 相信一定会有所收获

如果阅读过程中让你感到困惑,请按照文章步骤,创建对应文件,编写代码运行项目感受一下,相信这不会让你失望的

flutter 多环境配置

所谓多环境是指 开发环境, 联调环境, 测试环境, 演示环境, 生产环境等,当我们在各个环境之间切换时,势必需要快速高效的解决方案, 多环境配置由此而生, 相信在看到这篇文章之前,也看过很多关于环境配置的博文,大多都是在项目中手动切换环境变量以达到环境切换目的(例如下图), 虽然能解决问题但是总感觉有些low,下面让我们来解开 flutter 正确的启动方式
在这里插入图片描述
**

提示: 在本地初始化一个 flutter 项目,然后按照下文操作

**

目录结构概览

先来看下图的 目录结构总览, 接下来我们会逐一创建各个文件,并详细讲解其作用
==需要注意每个文件的位置==
  1. config.dart // 环境公共配置文件
  2. dev.dart // 开发环境配置文件
  3. prod.dart // 生产环境配置文件
  4. main.dart // 项目入口文件
  5. index.dart // 项目主页文件
  6. http.dart // dio请求封装文件
  7. interface.dart // 接口文件
    在这里插入图片描述

创建文件

  1. 在 lib 目录下创建 public 文件夹

  2. 在public目录下创建 config.dart 文件

  3. 在public目录下创建 dev.dart 文件

  4. 在public目录下创建 prod.dart 文件

    目前先创建这几个文件

环境变量公共配置文件 config.dart

打开 config.dart 文件 编写如下代码 推荐使用 android studio 编写 flutter 应用

/// 注意这里包的引入路径
/// 如果你是 Android studio 用户 这里可以不着急引入包,当你把代码复制到自己的项目里时,由于路径不对, 
/// 编辑器检测不到对应的包时,对应的代码会变红,如下图,此时把选中红色波浪线的单词按住 ctrl + enter键 选择需要的包就好了
import 'package:flutter/material.dart';

/**
 * @CreateDate:   2020/7/2 20:45
 * @Author:       Gleason
 * @Description:  环境变量
 **/
 /// 这里继承自 InheritedWidget 这个类 
 /// 可以在 weiget 中通过上下文获取到环境变量
 /// 当然 也可把 主题和一些全局 设置放到这里
class ENV extends InheritedWidget {
   
   
  static String appName; // 系统名称
  static String envName; // 运行环境
  static String baseUrl; // 基础url

  ENV({
   
   
    @required String appName,
    @required String envName,
    @required String baseUrl,
    @required Widget child,
  }) : super(child: child){
   
   
    ENV.appName = appName;
    ENV.envName = envName;
    ENV.baseUrl = baseUrl;
  }
  // 这里 是在 weiget 中拿到当前环境变量的关键
  static ENV of(BuildContext context) {
   
   
    return context.dependOnInheritedWidgetOfExactType(aspect: ENV);
  }

  @override
  bool updateShouldNotify(InheritedWidget oldWidget) => false;
}

配置 dev 环境 (开发环境)

import 'package:flutter_template/main.dart';
import 'package:flutter/material.dart';
import 'package:flutter_template/public/config.dart';
void main() {
   
   

  var configuredApp = new ENV(
    appName: 'app 名称', // 项目名称 或者 app 名称
    envName: 'dev',		// 环境变量
    baseUrl: 'https://www.dev.com/', // 接口基础地址
    child: new MyApp(),
  );

  runApp(co
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gleason.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值