feat: aggiungi guida utente e icona launcher

Guida utente:
- Pulsante info nell'AppBar principale
- InfoBottomSheet: icona app, versione, autore, licenza, link alla guida
- GuidePage: tre tab (Pasti / Converti / Spesa) con card e step numerati,
  portata dalla DocsPanel Vue originale

AppBar globale in app.dart con titolo dinamico per tab corrente.

Icona launcher:
- flutter_launcher_icons eseguito in build.sh prima di flutter build apk
  (sia debug che release) per applicare assets/icon-only.png all'APK.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-16 18:38:02 +02:00
parent 36e8034efd
commit cba83c9559
5 changed files with 517 additions and 2 deletions
+13
View File
@@ -3,6 +3,7 @@ import 'core/theme/app_theme.dart';
import 'features/meal_planner/presentation/pages/meal_planner_page.dart';
import 'features/converter/presentation/pages/converter_page.dart';
import 'features/shopping_list/presentation/pages/shopping_list_page.dart';
import 'features/guide/presentation/widgets/info_bottom_sheet.dart';
class BitePlanApp extends StatelessWidget {
const BitePlanApp({super.key});
@@ -29,6 +30,8 @@ class _MainScaffoldState extends State<_MainScaffold> {
int _currentIndex = 0;
late final List<Widget> _pages;
static const _titles = ['Piano Pasti', 'Convertitore', 'Lista della spesa'];
@override
void initState() {
super.initState();
@@ -44,6 +47,16 @@ class _MainScaffoldState extends State<_MainScaffold> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(_titles[_currentIndex]),
actions: [
IconButton(
icon: const Icon(Icons.info_outline),
tooltip: 'Informazioni',
onPressed: () => showInfoBottomSheet(context),
),
],
),
body: IndexedStack(
index: _currentIndex,
children: _pages,