flutter_archkit 0.2.0 copy "flutter_archkit: ^0.2.0" to clipboard
flutter_archkit: ^0.2.0 copied to clipboard

An automated Flutter architecture generator (Clean, MVVM, MVC with Bloc, Cubit, Riverpod, Provider, GetX), feature module generator, and multi-flavor CLI configuration tool.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'architectures/clean/presentation/pages/clean_architecture_page.dart';
import 'architectures/mvc/views/mvc_architecture_page.dart';
import 'architectures/mvvm/views/mvvm_architecture_page.dart';
import 'core/config/server_config.dart';
import 'core/theme/app_theme.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const ArchKitExampleApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter ArchKit Showcase',
      debugShowCheckedModeBanner: false,
      theme: AppTheme.darkTheme,
      home: const ArchKitShowcaseScreen(),
    );
  }
}

class ArchKitShowcaseScreen extends StatefulWidget {
  const ArchKitShowcaseScreen({super.key});

  @override
  State<ArchKitShowcaseScreen> createState() => _ArchKitShowcaseScreenState();
}

class _ArchKitShowcaseScreenState extends State<ArchKitShowcaseScreen>
    with SingleTickerProviderStateMixin {
  late final TabController _tabController;

  final ServerConfig _serverConfig = ServerConfig.dev;

  @override
  void initState() {
    super.initState();
    _tabController = TabController(length: 3, vsync: this);
  }

  @override
  void dispose() {
    _tabController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Row(
          mainAxisSize: MainAxisSize.min,
          children: const [
            Icon(Icons.layers_outlined, color: AppTheme.accentBlue),
            SizedBox(width: 8),
            Text('Flutter ArchKit Architecture Showcase'),
          ],
        ),
        bottom: PreferredSize(
          preferredSize: const Size.fromHeight(80),
          child: Column(
            children: [
              // Flavor & Environment Banner
              Container(
                width: double.infinity,
                padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 16),
                color: const Color(0xFF1E293B),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    const Icon(Icons.tune, size: 14, color: AppTheme.accentGreen),
                    const SizedBox(width: 6),
                    Text(
                      'Flavor: ${_serverConfig.environment.toUpperCase()} | Base URL: ${_serverConfig.baseUrl}',
                      style: const TextStyle(
                        color: AppTheme.textSecondary,
                        fontSize: 12,
                        fontFamily: 'monospace',
                      ),
                    ),
                  ],
                ),
              ),
              TabBar(
                controller: _tabController,
                indicatorColor: AppTheme.accentBlue,
                indicatorWeight: 3,
                labelColor: AppTheme.accentBlue,
                unselectedLabelColor: AppTheme.textSecondary,
                labelStyle: const TextStyle(fontWeight: FontWeight.bold, fontSize: 13),
                tabs: const [
                  Tab(
                    icon: Icon(Icons.architecture, size: 20),
                    text: 'Clean Architecture',
                  ),
                  Tab(
                    icon: Icon(Icons.view_compact_alt_rounded, size: 20),
                    text: 'MVVM Architecture',
                  ),
                  Tab(
                    icon: Icon(Icons.dashboard_customize_rounded, size: 20),
                    text: 'MVC Architecture',
                  ),
                ],
              ),
            ],
          ),
        ),
      ),
      body: TabBarView(
        controller: _tabController,
        children: const [
          CleanArchitecturePage(),
          MvvmArchitecturePage(),
          MvcArchitecturePage(),
        ],
      ),
    );
  }
}
5
likes
150
points
378
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

An automated Flutter architecture generator (Clean, MVVM, MVC with Bloc, Cubit, Riverpod, Provider, GetX), feature module generator, and multi-flavor CLI configuration tool.

Repository (GitHub)
View/report issues

Topics

#flutter #architecture #clean-architecture #mvvm #flavor

License

unknown (license)

Dependencies

args, dart_xcodeproj, flutter, interact, mason_logger, path, yaml

More

Packages that depend on flutter_archkit