feat(ui): écran Création/édition de programme

Ajoute l'écran de programme (presentation/program_screen.dart) et un
écran d'accueil (presentation/home_screen.dart) pour la navigation,
avec les ajustements application/domaine/repositories nécessaires.
flutter analyze propre, 11/11 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 18:51:49 +02:00
parent 00ae95f5c0
commit 1ae6248fb4
11 changed files with 1218 additions and 11 deletions

View File

@ -0,0 +1,48 @@
import 'package:flutter/material.dart';
import '../application/app_bootstrap.dart';
import 'exercise_library_screen.dart';
import 'program_screen.dart';
final class HomeScreen extends StatelessWidget {
const HomeScreen({required this.bootstrap, super.key});
final AppBootstrap bootstrap;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('GameTime')),
body: ListView(
children: [
ListTile(
leading: const Icon(Icons.fitness_center),
title: const Text('Exercices'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ExerciseLibraryScreen(
exerciseUseCases: bootstrap.exerciseUseCases,
mediaUseCases: bootstrap.mediaUseCases,
),
),
),
),
ListTile(
leading: const Icon(Icons.list_alt),
title: const Text('Programmes'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ProgramListScreen(
programUseCases: bootstrap.programUseCases,
exerciseUseCases: bootstrap.exerciseUseCases,
),
),
),
),
],
),
);
}
}