Build a first-launch onboarding / intro flow with the `introduction_screen` package (`IntroductionScreen` + `PageViewModel`). Use when adding walkthrough or welcome screens.
Architects a Flutter application using the recommended layered approach (UI, Logic, Data) with Riverpod for state management and dependency injection. Use when structuring a new project or refactoring for scalability.
Generate app launcher icons for all platforms (Android, iOS, web, Windows, macOS) from one source image with the `flutter_launcher_icons` package via pubspec config + a CLI generator. Use when setting or changing the app icon.
Generate native splash screens (Android incl. Android 12+, iOS, web) with the `flutter_native_splash` package via pubspec config + a CLI generator. Use when setting up or changing the launch/splash screen.
Create model classes with `fromJson` and `toJson` methods using `dart:convert`. Use when manually mapping JSON keys to class properties for simple data structures.
Check and request runtime permissions (camera, location, notifications, storage, etc.) with the `permission_handler` package, including the required native (Android/iOS) configuration. Use when a feature needs a device permission.
Configure `MaterialApp.router` using a package like `go_router` for advanced URL-based navigation. Use when developing web applications or mobile apps that require specific deep linking and browser history support.
Set up runtime internationalization with the `easy_localization` package (JSON translation files, `.tr()`, locale switching). Use when adding or extending i18n in this boilerplate — this is the localization approach the project actually uses.