jocaaguraarchetype 3.0.0 copy "jocaaguraarchetype: ^3.0.0" to clipboard
jocaaguraarchetype: ^3.0.0 copied to clipboard

Paquete base para inicializar rápidamente proyectos Flutter usando Jocaagura Clean Architecture. ⚠️ Este paquete podría ser deprecado. Se recomienda usar directamente jocaagura_domain para una mejor m [...]

example/lib/main.dart

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

import 'app_registry.dart';
import 'support/example_env.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  // Registry de páginas del example
  final PageRegistry registry = buildExampleRegistry();

  // Construimos dos configuraciones (DEV y QA) con pasos de onboarding distintos.
  final AppConfig cfgDev = ExampleEnv.buildConfig(
    mode: AppMode.dev,
    registry: registry,
  );
  final AppConfig cfgQa = ExampleEnv.buildConfig(
    mode: AppMode.qa,
    registry: registry,
  );

  // BlocAppConfig para swap en caliente entre DEV/QA
  ExampleEnv.appConfigBloc = BlocAppConfig(initial: cfgDev);
  ExampleEnv.cfgDev = cfgDev;
  ExampleEnv.cfgQa = cfgQa;

  runApp(ExampleRoot(registry: registry));
}

/// Wrapper que escucha el BlocAppConfig y reconstruye el shell.
class ExampleRoot extends StatefulWidget {
  const ExampleRoot({required this.registry, super.key});
  final PageRegistry registry;
  @override
  State<ExampleRoot> createState() => _ExampleRootState();
}

class _ExampleRootState extends State<ExampleRoot> {
  late AppConfig _current;
  late Stream<AppConfig> _stream;

  @override
  void initState() {
    super.initState();
    _current = ExampleEnv.appConfigBloc.state;
    _stream = ExampleEnv.appConfigBloc.stream;
  }

  @override
  Widget build(BuildContext context) {
    return StreamBuilder<AppConfig>(
      stream: _stream,
      initialData: _current,
      builder: (_, AsyncSnapshot<AppConfig> snap) {
        final AppConfig cfg = snap.data ?? _current;
        final AppManager manager = AppManager(cfg);
        return JocaaguraApp(
          key: ObjectKey(cfg),
          appManager: manager,
          registry: widget.registry,
          projectorMode: false,
          initialLocation: '/onboarding',
        );
      },
    );
  }
}
2
likes
0
points
131
downloads

Publisher

verified publisherjocaagura.com

Weekly Downloads

Paquete base para inicializar rápidamente proyectos Flutter usando Jocaagura Clean Architecture. ⚠️ Este paquete podría ser deprecado. Se recomienda usar directamente jocaagura_domain para una mejor mantenibilidad.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, jocaagura_domain

More

Packages that depend on jocaaguraarchetype