Expertise · Applications de bureau
Applications qui s’installent sur l’ordinateur. Sur macOS, nous en avons construit deux ; pour Windows et Linux, cette page est une offre, pas un historique.
Nous construisons des applications natives pour macOS, avec le noyau logique séparé de l’écran, afin que la même logique fonctionne aussi sur le téléphone. Pour Windows et Linux/Ubuntu, nous n’avons encore rien livré et nous l’écrivons tel quel, avec les conditions dans lesquelles nous accepterions le travail. La première question reste de savoir si vous avez vraiment besoin d’une application installée.
Offre, avec conditionsRegula e mecanică și o aplic mecanic. Pe macOS avem două implementări proprii, construite și rulabile: o aplicație de bară de meniu cu 25 de fișiere Swift, care refolosește 15 fișiere din nucleul unui proiect de iPhone, și o a doua aplicație, mai simplă, care e un înveliș WebKit peste o aplicație web. Ambele au binar compilat pe această mașină. Dar serviciul, așa cum e numit, acoperă trei familii de sisteme, iar pentru două dintre ele — Windows și Linux/Ubuntu — am căutat serios și am găsit zero: niciun proiect .NET sau Qt propriu, niciun `tauri.conf.json`, niciun Electron scris de noi, niciun `.desktop`, niciun ambalaj deb, rpm sau AppImage. În plus, niciuna dintre cele două aplicații de macOS nu a fost vreodată împachetată într-un instalator distribuibil. Cu doar una din trei platforme acoperită și zero distribuții, pagina se scrie ca ofertă cu condiții. Când vom livra prima aplicație de Windows sau de Linux, se schimbă valoarea, nu textul.
La première question que nous vous posons n’est pas pour quel système, mais si vous avez réellement besoin d’une application installée. Elle mérite d’être installée lorsqu’elle a besoin de quelque chose que le navigateur ne lui donne pas : accès direct aux capteurs ou aux périphériques, présence permanente dans la barre système, travail sans internet, accès aux fichiers du disque sans que la personne les charge à chaque fois, ou exécution en arrière-plan quand la fenêtre est fermée. Si rien de tout cela n’est requis, un site qui s’ouvre depuis un lien est moins coûteux à construire, à mettre à jour et à maintenir — et nous vous le disons, même si le travail devient plus petit.
Sur macOS, nous avons deux applications construites. La première est une application de barre de menu : 25 fichiers Swift propres, plus 15 fichiers de noyau repris directement du projet iPhone du même produit — les mêmes fichiers, pas une copie. Elle se construit avec un script qui appelle directement le compilateur Swift, cible `arm64-apple-macosx14`, en liant onze frameworks système, parmi lesquels SwiftUI, AppKit, CoreMotion, Vision et UserNotifications. Le binaire obtenu a 6.516.128 octets. La seconde est beaucoup plus simple et il est honnête de dire combien : trois fichiers Swift, un habillage WebKit au-dessus d’une application web, avec sandbox et runtime renforcé activés, compilé universellement pour processeurs Intel et Apple. Ce sont deux choses différentes et nous les nommons différemment.
Ce que nous n’avons pas, dit clairement. Windows : zéro. Nous avons recherché des projets .NET, WPF, WinForms, WinUI, des fichiers `.xaml`, `.appxmanifest`, `.msi`, `.wxs` — tout ce que nous avons trouvé sur le disque appartient à une bibliothèque C tierce, vendorisée dans un autre projet, que nous n’avons pas écrite. Linux desktop : zéro — aucun fichier `.desktop`, aucun paquet deb ou AppImage construit ici. Electron ou Tauri écrits par nous : zéro. Et, tout aussi important : aucune des deux applications macOS n’a jamais été empaquetée dans un installateur. Elles existent comme paquets `.app` construits localement, signés ad hoc, sans identifiant d’équipe.
Ce que l’expérience acquise transfère malgré tout, et c’est la partie qui compte pour un nouveau projet : la discipline de garder le noyau de logique séparé de l’interface. Dans le projet macOS, les fichiers de calcul et de politiques n’importent pas l’interface, donc ils se compilent et s’exécutent sur Mac comme programme ordinaire, sans simulateur ; leur suite de logique s’exécute en quelques secondes. La même séparation fait que le portage sur un autre système est un problème d’habillage, pas de réécriture. C’est sur cela que nous nous appuyons quand nous disons que nous pourrions faire Windows ou Linux — pas sur une expérience que nous n’avons pas.