web/index.html n'avait aucune balise <meta name="viewport">. Les navigateurs
mobiles appliquaient donc un viewport virtuel de ~980px et dezoomaient la page,
ce qui decalait les <input> DOM caches par lesquels Flutter web gere la saisie :
le tap donnait bien le focus cote Flutter, mais le navigateur n'ouvrait pas le
clavier et tentait de zoomer sur l'element — l'ecran semblait juste se rafraichir.
Effet de bord, le LayoutBuilder du login voyait maxWidth ~980, donc isMobile
etait toujours faux et la mise en page mobile ne s'appliquait jamais.
maximum-scale=1.0 evite en plus le zoom automatique de Safari iOS au focus.
Au passage :
- suppression de window.flutterWebRenderer = "html", sans effet depuis que le
renderer HTML a ete retire de Flutter (3.29, on est en 3.44) ;
- badge de version sur l'ecran de login. kGitSha est injecte au build
(--dart-define=GIT_SHA) et affiche a cote du numero de pubspec, pour relier
un bundle deploye au commit exact qui l'a produit ;
- la Future de PackageInfo etait recreee a chaque build() du login, ce qui
faisait clignoter le libelle : elle est desormais construite une seule fois.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>