local_config 0.0.1 copy "local_config: ^0.0.1" to clipboard
local_config: ^0.0.1 copied to clipboard

A Flutter package to manage local configs in your app.

Local Config #

๐Ÿงฉ A Flutter package for managing local configs โ€” just like Remote Config, but offline.


โœจ Features #

  • Manage app configuration values locally
  • Use a familiar API inspired by Firebase Remote Config
  • Easily initialize from a simple Map.
  • Access configs at runtime anywhere in your app
  • Built-in entrypoint screen for viewing/editing local configs

๐Ÿš€ Getting Started #

Initialization #

Initialize with your values

import 'package:flutter/material.dart';
import 'package:local_config/local_config.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await LocalConfig.instance.initialize(
    defaults: {
        'feature_home_banner_enabled': 'true',
        'api_base_url': 'https://api.myapp.com/v1',
        'retry_attempts': '3',
        'welcome_message': 'Welcome to MyApp!',
        'theme': '{"primaryColor": "#2196F3", "darkMode": false}',
    },
  );

  runApp(const YourApp());
}

Initialize with Remote Config values

import 'package:flutter/material.dart';
import 'package:firebase_remote_config/firebase_remote_config.dart';
import 'package:local_config/local_config.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await FirebaseRemoteConfig.instance.fetchAndActivate();

  await LocalConfig.instance.initialize(
    defaults: FirebaseRemoteConfig.instance.getAll().map(
      (key, value) => MapEntry(key, value.asString()),
    ),
  );

  runApp(const YourApp());
}

FilledButton(
  onPressed: () {
    Navigator.of(context).push(
      MaterialPageRoute(
        builder: (_) => LocalConfig.instance.entrypoint,
      ),
    );
  },
  child: const Text('Go to Local Config'),
)

๐Ÿ’ก Usage Example #

You can access your config values anywhere after initialization:

final message = LocalConfig.instance.getString('config_string');
final delay = LocalConfig.instance.getInt('config_number');
final enabled = LocalConfig.instance.getBool('config_boolean');
final json = LocalConfig.instance.getJson('config_json');

Or listen to changes (if your implementation supports it):

LocalConfig.instance.stream.listen((configs) {
  print('Configs updated: $configs');
});

For a full demo, check the /example folder.


๐Ÿง  Why Local Config? #

Use this package when you:

  • Want to replicate Remote Config behavior without needing a backend
  • Need local overrides for testing or staging
  • Prefer to keep configuration values bundled with the app

๐Ÿ“ฆ Additional Information #

  • ๐Ÿ› Report issues or request features in the GitHub Issues
  • ๐Ÿ’ฌ Contributions are welcome! Feel free to open pull requests.
  • ๐Ÿงพ Licensed under MIT
0
likes
0
points
139
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package to manage local configs in your app.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_localizations, flutter_secure_storage, get_it, intl, provider, re_editor, re_highlight, shared_preferences

More

Packages that depend on local_config