flutter_app_environment 1.0.2 copy "flutter_app_environment: ^1.0.2" to clipboard
flutter_app_environment: ^1.0.2 copied to clipboard

Simple solution to handle environment variables using `.json` or config in entrypoint file.

Flutter App Environment #

Simple solution to handle environment variables using .json or config in entrypoint file.


Installation #

$ flutter pub add --dev flutter_app_environment

Requirements for handle environment variables from .json config #

  • Call before initialize the environment

    WidgetsFlutterBinding.ensureInitialized();
    
  • Add res/config/ to pubspec.yaml assets. This folder contains json files with environment variables

    flutter:
        assets:
            - res/config/
    
  • For EnvironmentType.development use name development.json for configuration file

  • For EnvironmentType.test use name test.json for configuration file

  • For EnvironmentType.production use name production.json for configuration file

Usage for handle environment variables from .json config #

Easy three steps #

  1. Create config

    @JsonSerializable(createToJson: false)
    class EnvironmentConfig {
        const EnvironmentConfig({
            required this.title,
            required this.initialCounter,
        });
    
        factory EnvironmentConfig.fromJson(Map<String, dynamic> json) =>
            _$EnvironmentConfigFromJson(json);
    
        final String title;
    
        final int initialCounter;
    }
    
  2. Initialize

    WidgetsFlutterBinding.ensureInitialized();
    
    await Environment.initFromJson<EnvironmentConfig>(
        environmentType: EnvironmentType.development,
        fromJson: EnvironmentConfig.fromJson,
    );
    
  3. Use it

    home: HomePage(
        title: Environment<EnvironmentConfig>.instance().config.title,
    ),
    

Usage for handle environment variables from entrypoint file #

Easy three steps #

  1. Create config

    @JsonSerializable(createToJson: false)
    class EnvironmentConfig {
        const EnvironmentConfig({
            required this.title,
            required this.initialCounter,
        });
    
        factory EnvironmentConfig.fromJson(Map<String, dynamic> json) =>
            _$EnvironmentConfigFromJson(json);
    
        final String title;
    
        final int initialCounter;
    }
    
  2. Initialize

    WidgetsFlutterBinding.ensureInitialized();
    
    Environment.init<EnvironmentConfig>(
        environmentType: EnvironmentType.test,
        config: const EnvironmentConfig(
        title: 'Test evironment title',
        initialCounter: 0,
        ),
    );
    
  3. Use it

    home: HomePage(
        title: Environment<EnvironmentConfig>.instance().config.title,
    ),
    

Usage for handle environment with custom environment type #

  1. Create environment type

        enum CustomEnvironmentType { dev, stage, prod }
    
  2. Use method initFromJsonWithCustomType for json config

        await Environment.initFromJsonWithCustomType<EnvironmentConfig,
            CustomEnvironmentType>(
            environmentType: CustomEnvironmentType.stage,
            fromJson: EnvironmentConfig.fromJson,
        );
    
  3. Or use method initWithCustomType for entrypoint config

        Environment.initWithCustomType<EnvironmentConfig, CustomEnvironmentType>(
            environmentType: CustomEnvironmentType.dev,
            config: const EnvironmentConfig(
                title: 'Test evironment title',
                initialCounter: 0,
            ),
        );
    

Contribute #

Please feel free to fork, improve, make pull requests or fill issues. I'll be glad to fix bugs you encountered or improve the extension.

4
likes
160
pub points
69%
popularity

Publisher

unverified uploader

Simple solution to handle environment variables using `.json` or config in entrypoint file.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, json_annotation

More

Packages that depend on flutter_app_environment