Base Requirements Packages For Flutter Apps

Onboarding, caching, splash screen, icon app name change and more

Change App Name

Usage

Android

Go to android manifest.xml.

android / app / src / main / AndroidManifest.xml

Change android label with your app name.

<application
          android:name="io.flutter.app.FlutterApplication"
          android:label="App Name"
          android:icon="@mipmap/launcher_icon">

Ios

Go to Info.plist.

ios / Runner / Info.plist

Change bundle name with your app name.

<key>CFBundleName</key>
<string>App Name</string>

Change App Icon

Usage

Android & Ios

Add last version of flutter_launcher_icons package in dev_dependencies.

dev_dependencies:
  flutter_launcher_icons: "^0.13.0"

Add your app icon path in pubspec.yaml/assets.

assets:
    - assets/icon/icon.png

Add your Flutter Launcher Icons configuration to your pubspec.yaml

flutter_icons:
  android: true
  ios: true
  image_path: "assets/icon/icon.png"

İf you want to change icon also web, windows, macos then add this:

web:
    generate: true
    image_path: "path/to/image.png"
    background_color: "#hexcode"
    theme_color: "#hexcode"
  windows:
    generate: true
    image_path: "path/to/image.png"
    icon_size: 48 # min:48, max:256, default: 48
  macos:
    generate: true
    image_path: "path/to/image.png"

After setting up the configuration, run the package.

flutter pub get
flutter pub run flutter_launcher_icons

Splash Screen

Usage

Android & Ios

Add last version of flutter_native_splash package in dev_dependencies.

dev_dependencies:
  flutter_native_splash: ^2.2.19

Add your app logo pubspec.yaml/assets.

assets:
    - assets/logo/

Add your Flutter Native Splash configuration to your pubspec.yaml

flutter_native_splash:
  color: "#dcd5cd"
  image: assets/logo/logo.png
  color_dark: "#1b1106"
  image_dark: assets/logo/logo_dark.png

  android_12:
    image: assets/logo/logo.png
    icon_background_color: "#dcd5cd"
    image_dark: assets/logo/logo_dark.png
    icon_background_color_dark: "#1b1106"

  web: false

After setting up the configuration, run the package.

flutter pub get
flutter pub run flutter_native_splash:create

Change Theme with Caching

Usage

Android & Ios

Add last version of flutter_bloc package for state management and hive, hive_flutter for caching in dependencies.

dependencies:
  flutter_bloc: ^8.1.2
  hive: ^2.2.3
  hive_flutter: ^1.1.0

Add last version of build_runner package and hive_generator in dev dependencies.

dev_dependencies:
  build_runner: ^2.3.3
  hive_generator: ^2.0.0

Create theme classes for your themes and create cubit class for your thememode value. Create box with hive and make caching.

Localization

Usage

Android & Ios

Add last version of easy_localization in dependencies.

dependencies:
  easy_localization: ^3.0.1

Create folder and add translation your local files.

assets
└── translations
    ├── en-US.json
    └── tr-TR.json

Add assets localization directory in pubspec.yaml

flutter:
  assets:
    - assets/translations/

Add easy localization widget.

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:easy_localization/easy_localization.dart';

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

  runApp(
    EasyLocalization(
      supportedLocales: [Locale('en', 'US'), Locale('de', 'DE')],
      path: 'assets/translations', // <-- change the path of the translation files
      fallbackLocale: Locale('en', 'US'),
      child: MyApp()
    ),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: context.localizationDelegates,
      supportedLocales: context.supportedLocales,
      locale: context.locale,
      home: MyHomePage()
    );
  }
}

If you have many localization keys and are confused, key generation will help you. The code editor will automatically prompt keys

flutter pub run easy_localization:generate -O lib/product/init/lang -f keys -o locale_keys.g.dart --source-dir assets/translations

If you want to change locale, You change with context.

Onboarding/Introduction

Usage

Android & Ios

Add last version of introduction_screen in dependencies.

dependencies:
  introduction_screen: ^3.1.7

Create PageViewModel Widget for your introduction pages.

PageViewModel(
  title: "This is a title",
  body: "This is a description.",
  image: const Center(
    child: Text("Text", style: TextStyle(fontSize: 100.0)),
  ),
)

Create IntroductionScreen and configure with page list.

IntroductionScreen(
  pages: listPagesViewModel,
  showNextButton: false,
  done: const Text("Done"),
  onDone: () {
    // Caching and Routing
  },
)

P.s. Add your caching function on onDone callback.

Routing

Usage

Android & Ios

Add last version of go_router in dependencies.

dependencies:
  go_router: ^6.5.7

Create GoRouter Widget for your Navigation System.

final _router = GoRouter(
  routes: [
    GoRoute(
      path: '/',
      builder: (context, state) => HomeScreen(),
    ),
  ],
);

Configure MaterialApp like this.

MaterialApp.router(
  routerConfig: _router,
);

GitHub

https://github.com/suleymangunes/base-requirements-package-flutter