Flutter_advanced_boilerplate

screenshot of Flutter_advanced_boilerplate

A new advanced flutter boilerplate project uses BLoC.

Overview

This product is a boilerplate that aims to create clear, readable, reusable, scalable, testable, performant, and maintainable projects. It provides several key features to facilitate the development of production-grade MVP products. The boilerplate focuses on simplicity and easy scalability, reducing boilerplate code and maintaining code quality through linting rules. It also includes bloc and golden tests for verification and utilizes CI/CD for automated development processes.

Features

  • API System & Authentication: Rest and GraphQL API support with token renewal and socket support using Dio, GraphQL, and Fresh.
  • Performance: Optimized for lag caused by builds through frame-splitting rendering via keframe.
  • State Management & Architecture: BLoC & Hydrated Bloc for separating business logic from the UI and creating persistent state management.
  • Advanced Linting: Linting rules with detailed settings to maintain code health and adhere to Dart standards.
  • Type Safety: Utilizes type-safety first approach to avoid null errors during development.
  • Forms: Easy and fun form creation and management using Reactive forms.
  • Testing: Automated tests with Bloc Test, Golden Toolkit, and Mocktail for ensuring app functionality.
  • Dependency Injection & Service Locator: Reduce coupling between classes for greater code reusability with Injectable and GetIt.
  • Code Generation: Improve productivity and code quality with data class generation using Freezed, Artemis, and Build Runner.
  • CI & CD Integration: Continuous Integration and Continuous Delivery to automate code deployment and ensure efficient delivery of new features and bug fixes using Codemagic.
  • Easy & Clean Routing: AutoRouter facilitates strongly-typed arguments passing, effortless deep-linking, and code generation to simplify routes and reduce code boilerplate.
  • Design Pattern: Utilizes the Repository design pattern to reduce data layer complexity, isolate unstructured data, and organize project structure.
  • Exception Handling: Provides utility for handling exceptions and data routing with Data Channel.
  • Encrypted Storage: Allows for secure storage of tokens and user information using encrypted storage in the platform's keychain.
  • Dynamic: Content omitted.

Summary

This boilerplate aims to provide developers with a comprehensive set of tools and features to create high-quality and scalable projects. It prioritizes simplicity, code quality, and automation through the use of linting rules, automated testing, CI/CD integration, and code generation. With its state management, authentication, form handling, dependency injection, and clean routing capabilities, this boilerplate offers a robust foundation for building production-grade MVP products.