flutter_app_config

Configure app name, ID, icon, and splash screen from pubspec.yaml, then run one command to update Android and iOS.

Why this package?

  • One config block in pubspec.yaml
  • One command to apply Android/iOS changes
  • One splash (native matches Flutter)

Quick start (3 steps)

1) Add dependency

dependencies:
  flutter:
    sdk: flutter
  flutter_app_config: ^1.0.3

2) Add config at root level

flutter_app_config:
  app_name: "My App"
  package_id: "com.example.myapp"
  version_name: "1.0.0"
  version_code: 1
  custom_icon_path: "assets/icons/app_icon.png"
  splash_image_path: "assets/images/splash.png"   # Optional
  splash_background_color: 0xFF2196F3            # Optional

Important: flutter_app_config: must be at root level, not inside dependencies:.

3) Apply config

dart run flutter_app_config:configure
# or:
flutter pub run flutter_app_config:configure

Run it again after any config change.


Use the splash screen widget (optional)

If you want a splash screen, add your splash asset under flutter.assets, then use: If you don’t want a splash screen, omit splash_image_path and use your normal home widget directly.

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

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SplashScreen(
        config: const SplashConfig(
          imagePath: 'assets/images/splash.png',
          duration: Duration(seconds: 2),
          backgroundColor: 0xFF2196F3,
          imageFit: BoxFit.contain, // contain=centered, cover=full screen
          imageWidth: 180,          // optional
          imageHeight: 180,
        ),
        home: const Scaffold(
          body: Center(child: Text('Home')),
        ),
      ),
    );
  }
}

Notes (short)

  • Single splash: Native splash uses the same image + background color, so no blank screen.
  • Android icon: custom_icon_path is copied into Android mipmap folders.
  • iOS icon: Use a generator like appicon.co and replace files in ios/Runner/Assets.xcassets/AppIcon.appiconset/.
  • Testing: run the app on an emulator or real device after dart run flutter_app_config:configure.

Requirements

  • Flutter SDK >= 3.0.0
  • Dart SDK >= 3.0.0