feat: riscrivi app in Flutter

Riscrittura completa da Vue 3 + Capacitor a Flutter/Dart.

Architettura feature-based (lib/features/):
- meal_planner: modello MealPlan/DayPlan, provider, pagina e widget
- converter: modello ConversionEntry, provider con ricerca, pagina
- shopping_list: modello ShoppingItem, provider con deduplicazione, pagina e widget

Core:
- Material 3 con seed color #2d6a4f
- NavigationBar + IndexedStack (preserva stato dei tab)
- Portrait lock via SystemChrome
- Persistenza con shared_preferences
- 50+ alimenti × metodi cottura in assets/data/conversions.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-16 17:41:26 +02:00
parent d49b31f21d
commit eb7912421c
20 changed files with 1656 additions and 0 deletions
@@ -0,0 +1,30 @@
class ShoppingItem {
final String id;
final String name;
final bool checked;
const ShoppingItem({
required this.id,
required this.name,
this.checked = false,
});
ShoppingItem copyWith({String? id, String? name, bool? checked}) =>
ShoppingItem(
id: id ?? this.id,
name: name ?? this.name,
checked: checked ?? this.checked,
);
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'checked': checked,
};
factory ShoppingItem.fromJson(Map<String, dynamic> json) => ShoppingItem(
id: json['id'] as String,
name: json['name'] as String,
checked: json['checked'] as bool? ?? false,
);
}