BlogIngénierie

Une application, quatre plateformes : comment nous livrons simultanément sur le web, iOS, Android et Windows

L'application web et les applications natives de TradeYoke, c'est le même code. Voici ce que cela apporte aux clients — et les règles que nous suivons pour que cela reste vrai.

Deux ouvriers de chantier en gilet haute visibilité consultant un bloc-notes ensemble, à côté du planning hebdomadaire TradeYoke

Réponse rapide : TradeYoke est une seule base de code partagée, rendue sur le web et packagée en applications natives pour Windows, Android et iOS, plutôt que quatre produits distincts construits pour se ressembler — une fonctionnalité écrite une fois pour le web est, par construction, la même fonctionnalité sur toutes les autres plateformes, et non une reconstruction séparée susceptible de dériver.

Points clés

  • Chaque écran vit dans une seule bibliothèque de composants partagée ; le serveur web, le navigateur et les applications natives sont de fines coques autour du même code.
  • Un correctif ou une nouvelle fonctionnalité se déploie sur toutes les plateformes en même temps, car il n'existe qu'à un seul endroit.
  • Les applications natives installées fonctionnent hors ligne ; l'application web basée sur navigateur est la porte d'entrée du bureau, toujours en ligne.
  • Les éléments spécifiques à une plateforme — l'appareil photo, le GPS, les sélecteurs de fichiers — passent derrière une interface partagée unique, avec une implémentation distincte par plateforme, jamais un cas particulier dans les écrans partagés.
  • Une implémentation de plateforme manquante est traitée comme un bug à corriger, pas comme un « bientôt disponible » à contourner.

La règle : une base de code, quatre visages

La plupart des logiciels qui prétendent fonctionner « partout » signifient en réalité que deux ou trois équipes construisent des applications qui se ressemblent contre le même backend, ce qui explique comment une application mobile prend discrètement une version de retard sur la version web, ou gagne une fonctionnalité que la version web n'a jamais. TradeYoke ne fonctionne pas ainsi. Tout ce qu'un utilisateur voit — le planning, l'assistant d'intervention, l'écran de facture — vit dans une seule bibliothèque de composants partagée. Le serveur web, le navigateur (exécutant le même code côté client), et les applications natives Windows, Android et iOS sont de fins hôtes autour de ces mêmes composants. Une fonctionnalité construite pour le web est donc, automatiquement, la même fonctionnalité partout ailleurs, car il n'existe pas de seconde version susceptible de prendre du retard.

Ce que cela signifie au quotidien

Pour la personne qui l'utilise, la différence pratique, c'est qu'il n'y a jamais de moment « ça, c'est seulement sur la version bureau ». Le bureau, qui planifie la semaine sur un écran, et la personne dans la camionnette, qui consulte la même intervention sur un téléphone, regardent le même écran et font les mêmes choses — pas une vue mobile réduite à laquelle il manque la moitié des boutons. Quand quelque chose est corrigé ou amélioré, cela atteint toutes les plateformes dans la même version, pas le web ce mois-ci et l'application « un jour ». Et parce que les applications téléphone et Windows sont correctement installées, des applications natives plutôt qu'une page web enveloppée dans une coque, elles bénéficient du support hors ligne de TradeYoke : les interventions du jour, les fiches clients et les prix sont disponibles et modifiables sans réseau, avec une synchronisation automatique dès que la connexion revient. L'application web basée sur navigateur est différente par conception — c'est la surface du bureau toujours en ligne pour la planification et les rapports, et elle ne prétend pas fonctionner hors ligne, car un onglet de navigateur n'a aucun moyen fiable de le garantir.

La discipline nécessaire pour que cela reste vrai

La règle ne tient que si elle est appliquée, donc les différences de plateforme — l'appareil photo, le GPS, un sélecteur de fichiers, les notifications push — ne sont jamais appelées directement depuis les écrans partagés. Chacune passe derrière une interface partagée, avec une implémentation distincte fournie par chaque plateforme : la version web peut utiliser une API du navigateur, la version native le propre SDK de l'appareil, mais le composant partagé ne sait jamais, et ne se soucie jamais, de laquelle se trouve en dessous. Une plateforme qui n'a pas encore sa propre implémentation est traitée comme un bug inachevé dans cette interface, pas comme une raison d'écrire une branche de cas particulier dans le code partagé — dès qu'un écran commence à demander « sur quelle plateforme suis-je », la promesse d'une seule base de code commence à se briser, donc cette question n'est jamais autorisée à apparaître en dehors de la frontière de l'interface elle-même.

Pourquoi cela compte pour une entreprise artisanale, pas seulement pour les ingénieurs

L'instinct est de traiter « une seule base de code » comme un détail d'implémentation qui n'intéresse que les développeurs, mais c'est la raison pour laquelle une entreprise qui utilise TradeYoke n'a jamais à composer avec un écart de fonctionnalités entre « l'application » et « le site web ». Un membre de l'équipe qui préfère un ordinateur portable Windows, un autre qui vit sur Android dans la camionnette, et un responsable de bureau qui n'ouvre jamais qu'un navigateur travaillent tous à partir des mêmes données, des mêmes écrans et du même plan de la journée — il n'y a rien à synchroniser entre eux car cela n'a jamais été quatre choses distinctes au départ.

Questions fréquentes

L'application web a-t-elle moins de fonctionnalités que les applications natives ?

Non — les mêmes écrans partagés s'affichent sur les deux ; la différence significative est le support hors ligne, qui appartient aux applications natives installées car un onglet de navigateur ne peut pas le garantir de façon fiable, et non à une expérience web allégée.

Si j'utilise l'application sur Windows et que mon collègue utilise Android, voyons-nous la même chose ?

Oui. Vous exécutez tous les deux les mêmes composants partagés sur les mêmes données ; la seule différence est l'appareil qui les affiche.

Une nouvelle fonctionnalité apparaît-elle parfois sur une plateforme avant une autre ?

L'intention de construire ainsi, c'est que non — une fonctionnalité est écrite une fois dans la couche partagée et se déploie partout où cette couche s'exécute. La tuyauterie spécifique à une plateforme (comme une capacité de l'appareil) peut prendre une version de plus sur une plateforme qui a besoin de sa propre implémentation, ce qui est traité comme un écart à combler, et non comme une différence permanente acceptée.

Pourquoi l'application web ne fonctionne-t-elle pas hors ligne comme l'application mobile ?

Un onglet de navigateur n'a aucun moyen fiable de garantir que les données survivent à sa fermeture, à une perte de réseau ou à une réouverture des jours plus tard, comme peut le faire une application installée. Les applications installées de TradeYoke sur Windows, Android et iOS bénéficient de ce support hors ligne ; l'application web est délibérément la surface du bureau toujours en ligne à la place.

Des boîtiers électriques encastrés dans un mur, fils prêts à être raccordés
Une seule application, la même fonctionnalité, sur le téléphone de chaque métier.

AssemblySoft DevOps

The engineering team behind TradeYoke: how it is built, deployed and kept running.

Plus d'articles du blog

April 2026: one core, many trades

With window cleaning solid, April 2026 was about whether the core could carry other trades. Each trade is a module on the same core: its own terms, forms and colour.

AssemblySoft DevOps 4 min de lecture