Mobile et objets connectés, par les auteurs des bibliothèques
Les bibliothèques Shiny (Bluetooth, tâches en arrière-plan, push, localisation et synchronisation pour .NET) ont dépassé les 40 millions de téléchargements, et elles figurent dans le fichier projet d’applications que vous connaissez. Nous les avons écrites, nous les maintenons, et nous travaillons avec l’équipe .NET MAUI de Microsoft. Quand votre application doit fonctionner sur de vrais appareils sur le terrain, c’est cette profondeur d’expertise que vous recrutez.
Votre application Xamarin n’est plus prise en charge, et le portage vers .NET MAUI cale sans cesse sur les dépendances.
Les tâches en arrière-plan, le Bluetooth ou le push fonctionnent en démo et échouent sur le terrain.
Vous avez du matériel et il vous faut une application qui dialogue avec lui de façon fiable sur les deux plateformes.
Votre application MAUI démarre lentement ou plante d’une façon que vous n’arrivez pas à reproduire.
Ce que nous construisons
Le côté appareils de votre activité, construit sur des fondations déjà en production.
Mobile et multiplateforme
Applications .NET MAUI, iOS et Android en production, et migrations Xamarin → MAUI, y compris l’arrière-plan, le hors-ligne et le cycle de vie que la plupart des équipes ratent. Nous travaillons avec l’équipe .NET MAUI de Microsoft depuis les débuts de MAUI.
IoT et Bluetooth
BLE central et périphérique, parcs d’appareils et intégration matérielle. Nous avons écrit les bibliothèques que le secteur utilise pour cela.
Flottes et opérations terrain
Géolocalisation, géorepérage et télématique pour les véhicules et les équipes qui travaillent là où la connectivité n’est pas garantie.
Montres connectées et voiture
Applications Apple Watch, Wear OS, CarPlay et Android Auto qui prolongent votre application mobile jusqu’au poignet et au tableau de bord, pensées pour un coup d’œil ou une commande vocale, pas pour un écran de téléphone rétréci. Le lien entre le téléphone et la montre repose sur une bibliothèque que nous avons écrite.
Le retour sur investissement, en calcul simple
Un budget achète des mois d’ingénierie. Toute la question est de savoir à quoi ils sont consacrés. Sur un produit connecté (tout ce qui implique un appareil, un traitement en arrière-plan ou un mode hors ligne), une large part de la première année part dans une infrastructure sans valeur visible pour le client, que des milliers d’équipes ont déjà écrite.
Fondations et tuyauterieVotre produit
Projet classique
Avec nous
Proportions indicatives : la répartition exacte dépend du projet. Ce qui ne change pas, c’est de quel côté de la ligne vous payez une équipe pour reconstruire.
Plus tôt
Les revenus et les retours arrivent plus tôt, parce que le calendrier ne s’ouvre pas sur un trimestre de travaux préparatoires.
Plus sûr
Les sous-systèmes les plus risqués (traitements en arrière-plan, synchronisation, connectivité des appareils) ont fait leurs preuves en production avant le début de votre projet.
Moins cher à maintenir
Moins de code à posséder en propre, c’est moins à corriger, à porter et à confier à une équipe chaque année après la transmission.
Le sommet que la plupart des projets sacrifient, nous l’avons déjà payé, publiquement, en 25 ans, et il est inclus dans la mission. Ce que cela vous apporte est simple : une plus grande part de l’année va au produit que vous vouliez construire, et une moindre part à rejoindre la ligne de départ.
Migration .NET MAUI et Xamarin
Tout ce dont dépendait votre application Xamarin, nous le maîtrisons déjà
Les migrations de Xamarin vers .NET MAUI sont l’une de nos spécialités, tout comme .NET MAUI lui-même. Nous travaillons avec l’équipe .NET MAUI de Microsoft depuis les débuts de MAUI, et nos bibliothèques ont contribué à façonner l’écosystème sur lequel reposent aujourd’hui les applications MAUI.
Le support de Xamarin a pris fin en mai 2024. Ce qui bloque ces migrations, ce n’est presque jamais la conversion de l’interface, c’est la liste des dépendances. Chaque plugin abandonné derrière le Bluetooth, les tâches en arrière-plan, la localisation, les notifications push, le stockage et la synchronisation doit être remplacé par quelque chose que personne dans l’équipe n’a encore fait tourner en production. C’est dans cette évaluation que les mois s’envolent, et c’est là que se trouve le risque.
Comment se passe habituellement la migration
Des semaines à auditer des plugins morts et à choisir des remplaçants à l’aveugle.
Ça compile, la démo fonctionne, puis le comportement en arrière-plan, hors ligne et Bluetooth régresse discrètement sur de vrais appareils sur le terrain.
Tout ce qu’aucun remplaçant ne couvre devient du code plateforme sur mesure que votre équipe devra maintenir pour toujours.
Les livraisons de fonctionnalités s’arrêtent le temps de la migration, parce que tout le monde y est mobilisé.
Comment ça se passe avec nous
L’audit des dépendances se résume presque à une consultation. Nous savons ce qui remplace quoi, parce que nous publions et maintenons le remplaçant.
Les sous-systèmes délicats arrivent déjà résolus : ils tournent aujourd’hui sur iOS et Android, dans les applications en production d’autres entreprises.
Nous avons mené cette migration assez souvent pour savoir où elle fait vraiment mal : l’estimation repose sur le travail, pas sur l’optimisme.
Vous vous appuyez sur des bibliothèques open source téléchargées plus de 40 millions de fois, pas sur une surcouche privée que seul le prestataire comprend.
Couvert en interne, déjà en production
Il n’existe aucune partie d’une application mobile pour laquelle nous vous rendrions une liste d’options à étudier. Prenez n’importe quelle partie de l’ancienne application : la réponse existe déjà.
Bluetooth et matérielBLE central et périphérique, GATT, L2CAP, et le comportement d’appairage et de reconnexion qui ne se révèle que sur de vrais appareils.
Tâches en arrière-planDes traitements qui continuent de tourner avec les ordonnanceurs de l’OS sur iOS et Android au lieu de mourir avec l’application.
Géolocalisation et géorepérageSuivi GPS, géorepérage et détection d’activité, y compris le parcours d’autorisations en arrière-plan qu’imposent les deux stores.
Notifications pushAPNs et FCM natifs sur l’appareil, Azure Notification Hubs si vous l’utilisez, et la partie serveur qui les envoie.
Notifications localesPlanification, répétitions, canaux, badges et actions interactives sur les deux plateformes.
Stockage hors ligneParamètres et stockage clé/valeur, plus une base documentaire sur SQLite et les moteurs serveur qui l’accompagnent.
Synchronisation et transfertsSynchronisation bidirectionnelle et envoi/téléchargement en arrière-plan qui résistent aux zones blanches, à la suspension et aux économiseurs de batterie.
Voix et audioReconnaissance vocale, synthèse vocale, mot d’activation et parcours mains libres pour ceux qui ne peuvent pas tenir un téléphone.
Données de l’appareilContacts, données de santé, bibliothèque musicale et autorisations, gérés comme chaque plateforme l’attend.
Codes-barres et scanScan par caméra et génération pour les symbologies dont dépendent les applications d’entrepôt et de terrain.
Contrôles d’interfaceVues tableau, arborescences, superpositions, chat, retouche d’image, sélecteurs et badges : la suite de contrôles sur laquelle s’appuyaient les anciennes applications.
Architecture applicativeInjection de dépendances, hébergement, navigation, localisation et patterns mediator, pour que la structure de l’application survive à la migration.
IA dans l’applicationAssistants, chat et voix intégrés pendant que vous êtes déjà dans le code, si la refonte est le bon moment pour cela.
Comment nous démarrons une migration
Une analyse des dépendances et des risques de la solution existante : ce qui se transpose directement, ce qui n’a pas d’équivalent, et ce qui ne devrait pas survivre à la migration. Vous obtenez un plan par phases chiffrable, et la migration avance plateforme par plateforme en parallèle de votre feuille de route, sans la geler.
Déjà sur .NET MAUI ?
Toutes les missions MAUI ne sont pas des migrations. Nous aidons aussi les équipes qui ont déjà franchi le pas : performances et temps de démarrage, tâches en arrière-plan qui ne se déclenchent plus après une mise à jour de l’OS, handlers et code plateforme, plantages qui ne se reproduisent que sur de vrais appareils, et suivi de chaque nouvelle version de .NET. Faites appel à nous pour une revue, un problème tenace, ou en tant qu’ingénieurs MAUI seniors aux côtés de votre équipe.
Offres d’entrée au périmètre fixe
Une première étape qu’un responsable peut valider
Chaque mission peut commencer par l’une de ces offres. Chacune a un nom et un périmètre écrit avant de démarrer : la première décision reste modeste, et vous voyez comment nous travaillons avant de vous engager sur quoi que ce soit de plus important.
10 à 20 heures, réalisé sous 2 semaines
Bilan de santé .NET MAUI
Pour les applications déjà passées à .NET MAUI : temps de démarrage, plantages qui ne se reproduisent que sur de vrais appareils, et tâches en arrière-plan qui ne se déclenchent plus après une mise à jour de l’OS.
Ce qui est inclus
Démarrage, mémoire et rendu profilés sur de vrais appareils
Rapports de plantage et d’ANR analysés jusqu’à la cause racine
Comportement en arrière-plan, push et cycle de vie vérifiés
Chemin de mise à niveau vers la prochaine version de .NET
Ce que vous obtenez
Une liste classée de correctifs, les plus graves diagnostiqués jusqu’à la ligne de code.
Chaque plugin et dépendance plateforme de votre application Xamarin mis en regard de son remplaçant dans .NET MAUI : l’étape où la plupart des portages calent.
Ce qui est inclus
Inventaire de chaque package NuGet et de chaque binding plateforme
Un remplaçant pour chacun, déjà en production ailleurs
Ce qui n’a pas d’équivalent, et ce qui ne devrait pas survivre à la migration
Plan de migration phasé et chiffré
Ce que vous obtenez
Un plan de migration fondé sur une simple consultation plutôt que sur une phase de recherche, et une vraie estimation.
Votre matériel qui dialogue avec une vraie application sur iOS et Android (détection, connexion, reconnexion et synchronisation en arrière-plan), sur de vrais appareils, pas dans un simulateur.
Ce qui est inclus
Connexion BLE, GATT et reconnexion sur votre appareil
Fonctionnement en arrière-plan dans le respect des règles de chaque OS
Données synchronisées vers un point de terminaison cloud
Constats sur le firmware et le protocole, s’ils doivent évoluer
Ce que vous obtenez
La preuve que la partie difficile fonctionne sur de vrais téléphones, et un chemin chiffré vers l’application de production.
Chaque offre fait l’objet d’un devis à prix fixe une fois le périmètre étudié — et un prix fixe reste fixe : si cela nous prend plus de temps, c’est notre problème, pas le vôtre.
Les questions que posent nos clients
Combien de temps prend une migration de Xamarin vers .NET MAUI ?
Ce n’est presque jamais la conversion de l’interface qui en décide, c’est la liste des dépendances. L’audit des dépendances de deux semaines associe chaque plugin à son remplaçant et en tire une estimation par phases.
Sommes-nous obligés d’utiliser les bibliothèques Shiny ?
Non. C’est généralement judicieux, parce qu’elles sont open source, déjà en production et maintenues par les personnes qui réalisent le travail. Vous n’êtes jamais enfermés dans une surcouche privée que seul le prestataire comprend.
Pouvez-vous travailler avec notre équipe matériel ou notre fournisseur de firmware ?
Oui. La plupart des problèmes Bluetooth se situent à la frontière entre l’application et le firmware, et nous avons l’habitude de travailler des deux côtés, y compris pour indiquer à un fournisseur ce qui doit changer de son côté.
Développez-vous des applications natives en Swift et Kotlin ?
Notre expertise porte sur .NET MAUI et .NET pour iOS et Android, y compris le code natif de plateforme qui se trouve en dessous. Si une application native est le bon choix pour votre produit, nous vous le dirons.
Vous construisez quelque chose qui doit fonctionner sur le terrain ?
Parlez-nous de l’application, des appareils et de l’endroit où ils sont utilisés. Nous vous dirons où cela coince d’habitude, et comment nous l’éviterions.
Nous utilisons Google Analytics pour savoir quels contenus méritent d’être développés. Il reste désactivé tant que vous ne l’acceptez pas, et rien sur ce site n’en dépend. Consultez notre politique de confidentialité.