Développement d'applications Flutter à Toronto et partout en Ontario : des applications iOS, Android et Web à partir d'un seul code en Dart — des applications de terrain hors ligne d'abord, comme celle du poste de pilotage bâtie pour les services d'aviation et de lutte contre les incendies de forêt de l'Ontario, des applications grand public livrées sur Google Play en trente jours, accessibles par construction, intégrées aux systèmes que vous exploitez, publiées et exploitées par l'équipe qui les a bâties.
Un seul code en Dart. Le modèle met la journée en file hors ligne, le pipeline de publication attrape le plantage, et le même code est livré sur l'App Store, Google Play et le Web.
prêt pour le poste de pilotage, d'une seule main, pour les pilotes de bombardiers d'eau de l'Ontario
Jour + nuitprêt pour le poste de pilotage, d'une seule main, pour les pilotes de bombardiers d'eau de l'Ontario
Un seul code, bâti pour durer
Flutter permet à une seule équipe de bâtir des applications iOS, Android et Web à partir d’un seul code en Dart, compilé en code natif, qui dessine la même interface sur chaque plateforme. Nous l’utilisons parce qu’il permet aux mêmes personnes qui modélisent les données de concevoir l’interface et d’écrire l’intégration, et parce qu’un seul code peut être testé, mis à niveau et compris la troisième année. Les deux projets de cette page montrent l’étendue : une application de poste de pilotage pour les pilotes de bombardiers d’eau de l’Ontario qui a sorti la journée de vol du papier, et un client vidéo grand public livré sur Google Play en trente jours pour une plateforme d’un million d’utilisateurs.
Le modèle, c’est l’application
Une application est maladroite ou simple selon son modèle de données, pas selon ses écrans. Pour le Rapport de vol quotidien électronique, modéliser chaque événement d’une journée de vol — largage d’eau, ravitaillement, chaque type de mission — comme le descendant d’une seule classe d’événements a été la décision qui a rendu l’interface assez simple pour être utilisée d’une main, la nuit. Nous commençons là, puis concevons sur de vrais appareils, puis bâtissons par incréments de deux semaines avec l’intégration en parallèle, pour que l’application livrée soit celle dont les gens sur le terrain se serviront vraiment.
Le poste de pilotage est le bureau. Le Rapport de vol quotidien électronique tourne sur un iPad monté à côté des instruments d’un bombardier d’eau de l’Ontario, consignant la journée de vol d’une main, de jour comme de nuit — bâti en Flutter pour le ministère des Richesses naturelles et des Forêts. Lire l’étude de cas.
Ce que nous bâtissons avec Flutter
La performance native à partir d'un seul code — et l'ingénierie qui fait survivre l'application à sa deuxième année
Un seul code, toutes les plateformes
Du Dart compilé en code natif pour iOS et Android et pour le Web à partir de la même source, avec un seul système de design et une seule suite de tests. Plus rapide à bâtir, et un seul endroit à corriger — ce qui compte davantage la deuxième année que le jour du lancement.
Des applications de terrain hors ligne d'abord
Des applications qui fonctionnent là où le réseau ne fonctionne pas — dans le poste de pilotage, sur le chantier, sur le terrain — avec un modèle de données qui met les événements en file et se rapproche quand la connexion revient. Le Rapport de vol quotidien électronique pour les services d’aviation, de lutte contre les incendies de forêt et d’urgence de l’Ontario en est le modèle : chaque événement descend d’une seule classe, se consigne d’une main, se lit de jour comme de nuit.
Des applications grand public, vite et à grande échelle
Quand une plateforme a besoin d’un client pour une date, nous le livrons : l’application Android de CYA Live est passée du lancement à Google Play en trente jours, à parité de fonctions avec le Web et iOS, avec la vidéo en direct et le clavardage modéré dont dépend une plateforme d’un million d’utilisateurs.
Accessibles par construction
Une sémantique pour les lecteurs d’écran, un contraste qui passe, du texte qui s’agrandit, des cibles qu’on atteint du pouce — intégrés dès le premier écran et testés avec VoiceOver et TalkBack, selon les WCAG 2.1 AA partout où elles s’appliquent. C’est la même pratique en accessibilité qui sert nos clients du secteur public.
Intégrées aux systèmes que vous exploitez
Des API en Python, des portails Odoo, des applications Quickbase, des systèmes hérités : l’application est une extrémité d’une intégration que nous écrivons et testons de bout en bout, pour que ce que le terrain saisit atterrisse là où le bureau le lit.
Publiées, et exploitées
Des comptes de magasins à votre nom, des constructions continues, TestFlight et les pistes de test internes, le signalement des plantages, et les mises à jour que les plateformes exigent chaque année — versions de Flutter, versions des systèmes, politiques des magasins — prises en charge par l’équipe qui a écrit le code.
Comment se déroule un mandat d'application
Découvrir
Les utilisateurs, les conditions dans lesquelles ils travaillent, les données que l’application doit saisir ou montrer, et les systèmes auxquels elle doit parler. Une portée que vous pouvez chiffrer et un plan que vous pouvez défendre.
Modéliser, puis concevoir sur appareils
Le modèle de données d’abord — c’est ce qui rend une application simple ou maladroite — puis l’interface conçue sur de vrais appareils, dans la lumière et avec les mains qu’ont vraiment vos utilisateurs.
Bâtir par incréments de deux semaines
Une application fonctionnelle entre les mains des testeurs dès les deux premières semaines, des tests à chaque changement, et l’intégration bâtie en parallèle, pas après.
Publier et garder
La soumission aux magasins, la surveillance, et un forfait dimensionné à ce que vous voulez posséder — y compris les mises à jour de plateforme que personne ne budgète.
À qui cela s'adresse
Les opérations de terrain du secteur public
Ministères, organismes et services publics dont les gens travaillent loin d’un bureau et doivent saisir la journée de façon fiable — acquis par le statut de fournisseur attitré de l’Ontario, bâtis accessibles.
Les plateformes et les produits grand public
Des organisations avec un public sur chaque plateforme, qui ont besoin que les clients concordent, soient livrés à une date et tiennent sous la charge.
Les organisations dont l'application Web doit devenir une application
Des entreprises dont les clients ou le personnel veulent la chose dans leur poche, avec l’usage hors ligne et les notifications, sans un deuxième et un troisième code à maintenir.
Dans les mots du client
Ce fut un plaisir de travailler avec Imran et Cantan Group. Un service excellent! Je recommande fortement.
Sami Siddique — Chairman, Founder and CEO, Cya LIVE
Pourquoi Flutter plutôt que le natif ou React Native?
Parce qu’un seul code en Dart se compile en applications iOS et Android véritablement natives et pour le Web, avec un moteur de rendu qui dessine les mêmes pixels sur chaque plateforme, et parce qu’une équipe peut posséder un seul code correctement plutôt que trois passablement. Nous dirons quand le natif est la bonne réponse — surtout le travail matériel profondément propre à une plateforme — et c’est plus rare que les gens ne le pensent.
Un seul code couvre-t-il vraiment iOS, Android et le Web?
Oui, avec jugement : une logique, un modèle et un système de design partagés, et des pièces propres à chaque plateforme là où elles diffèrent vraiment — notifications, permissions, certains matériels. Le Rapport de vol quotidien électronique sert chaque type d’aéronef et chaque mission à partir d’un seul code; le client Android de CYA Live a égalé ses clients Web et iOS à partir de la même API.
L'application peut-elle fonctionner hors ligne?
Elle peut être conçue pour, et les applications de terrain le doivent. Le modèle de données met en file ce qui se passe, le stocke localement et se rapproche quand le réseau revient — avec les conflits réglés par règle plutôt que par le dernier qui a synchronisé. C’est une décision de conception prise à la découverte, pas une fonction ajoutée plus tard.
Les applications Flutter sont-elles accessibles?
Elles le sont quand elles sont bâties pour l’être : Flutter expose une sémantique à VoiceOver et à TalkBack, et tout le reste — contraste, agrandissement du texte, ordre de focus, taille des cibles, mouvement — nous appartient. Nous bâtissons selon les WCAG 2.1 AA partout où elles s’appliquent et testons avec les lecteurs d’écran, parce que les gens qui se servent de l’application y ont droit.
Qui possède l'application et les comptes des magasins?
Vous. Le code vit dans un dépôt à votre nom, les comptes App Store et Play Console sont les vôtres, et nous les exploitons en votre nom aussi longtemps que vous le voulez.
Comment une application est-elle tarifée?
Un prix fixe pour un mandat délimité après la découverte, avec le nombre d’écrans, le modèle hors ligne et les intégrations comme principales variables, et un forfait pour les publications, les mises à jour de plateforme et les nouvelles fonctions. Nous préférons chiffrer une première version plus petite que vous pouvez étendre plutôt qu’une grande à laquelle vous devez vous fier.