Flutter 多環境


什么是多環境,為什么用多環境

配置多環境是開發經常需要用到的操作,實現多環境配置后可以規避生產測試環境混合帶來的麻煩和風險,減少項目風險。

多環境可以讓你定義一些構建配置,並根據需要進行切換。

我們開發過程中通常會有三個以上的開發環境(開發、生產、演示)。

通過多環境,我們可以給不同的開發需求使用不同的api和圖片文字等。而且只需要運行不同的命令就可以。

 

那我們開始寫代碼吧:

新建一個config.dart的文件,在里面進行多環境的配置。代碼如下:

import 'package:flutter/material.dart';

enum Flavor {
  DEVELOPMENT,
  RELEASE,
}

class Config {

  static Flavor appFlavor;

  static String get helloMessage {
    switch (appFlavor) {
      case Flavor.RELEASE:
        return '生產環境';
      case Flavor.DEVELOPMENT:
      default:
        return '開發環境';
    }
  }

  static Icon get helloIcon {
    switch (appFlavor) {
      case Flavor.RELEASE:
        return new Icon(Icons.new_releases);
      case Flavor.DEVELOPMENT:
      default:
        return new Icon(Icons.developer_mode);
    }
  }
}

上面的代碼很簡單,我想應該不用解釋吧

來看看頁面my_home.dart:

import 'package:flutter/material.dart';

import 'config.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '多環境',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: '多環境'),
    );
  }
}
class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(

        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new Text(
              'Hello',
              style: Theme
                  .of(context)
                  .textTheme
                  .headline,
            ),
            new Text(Config.helloMessage,
              style: Theme
                  .of(context)
                  .textTheme
                  .display1,
            ),
            Config.helloIcon,
          ],
        ),
      ),
    );
  }
}

 

新建兩個文件 main_dev.dart、main_uat.dart

開發環境 main_dev.dart:

import 'config.dart';
import 'my_home.dart';

void main() {
  Config.appFlavor = Flavor.DEVELOPMENT; 
runApp(MyApp());
}

生產環境main_uat.dart:

import 'config.dart';
import 'my_home.dart';

void main() {
  Config.appFlavor = Flavor.RELEASE;
  runApp(MyApp());
}

 

如何使用

運行的時候指定運行哪個版本

flutter run lib/main_dev.dart

編譯也是一樣

flutter build apk lib/main_dev.dart

如果我們編譯的時候想要加上版本號可以這么寫

flutter build apk -t lib/main_uat.dart --release --build-number=2 --build-name=1.0.2

 

 

                

 

 

 

 

pub.dev中也有不少的多環境的輪子,大家也都可以看看,方法有很多,主要看個人習慣

本文項目已經上傳到 GitHub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM