10. Interim Conclusion
We have seen, example after example, everything needed to write the [Flutter] client for [RdvMedecins]:
Requirements | In Flutter |
a screen | a widget tree, described by `build()` |
data that changes | the state of a StatefulWidget (setState), or a ChangeNotifier |
forms | TextField and its controllers, InputDecoration.errorText |
multiple screens, addresses, and guards | go_router (GoRouter, GoRoute, ShellRoute, redirect) |
shared data | provider (ChangeNotifierProvider, context.watch / read) |
wait | Future, Stream, async/await, FutureBuilder |
HTTP requests | the HTTP package, a client that handles cookies, an access layer to the API |
two languages | JSON dictionaries, intl, flutter_localizations |
on-device storage | shared_preferences |
The [React] client relied on a library as needed; the [Flutter] client uses fewer of them: [Dart] provides asynchronous processing and types, and [Flutter] provides forms, animations, windows, lists, and the theme. All that remains is to put it all together.