Tu codes avec l’IA ?
Outils, agents et nouveautés dev IA décryptés, chaque soir en 5 min. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Un MacBook Pro M5 pour explorer SwiftUI
Récemment, j'ai fait l'acquisition d'un MacBook Pro M5 qui s'est révélé particulièrement performant pour exécuter des modèles de langage locaux. Frustré par les limitations du Moniteur d'activité intégré, j'ai décidé de créer mes propres outils de surveillance des performances. Le résultat a été très satisfaisant, me permettant de mieux comprendre et gérer les ressources de mon système.
Cette aventure dans le développement d'applications macOS n'est pas ma première. J'avais déjà conçu une application de présentation quelques semaines auparavant, ce qui m'a donné une base pour aborder ce nouveau projet.
L'impact de Claude Opus 4.6 et GPT-5.4 sur le développement
Les modèles Claude Opus 4.6 et GPT-5.4 se sont révélés être des alliés précieux dans l'apprentissage de SwiftUI. Grâce à leurs capacités, j'ai pu développer une application complète en SwiftUI dans un seul fichier texte, sans avoir besoin d'ouvrir Xcode. Cette simplicité a été un atout majeur dans mon processus de développement.
J'ai ainsi pu créer deux applications distinctes : Bandwidther, qui surveille l'utilisation de la bande passante réseau, et Gpuer, qui analyse l'activité du GPU. Ces applications ont été intégrées sous forme d'icônes dans la barre de menu, permettant un accès rapide aux informations essentielles.
Bandwidther : une exploration de l'utilisation réseau
Mon intérêt initial pour Bandwidther est né de ma curiosité envers le comportement de Dropbox. Je voulais savoir si les transferts de fichiers se faisaient via le réseau local ou directement depuis Internet. Pour ce faire, j'ai conçu une application qui affiche en temps réel la bande passante utilisée par chaque processus.
Les instructions pour cette application étaient simples : créer un répertoire /tmp/bandwidther et développer une application SwiftUI native pour afficher ces données. Cette première version a été un succès, me motivant à poursuivre le développement.
Améliorations et fonctionnalités supplémentaires
Après avoir établi les bases de Bandwidther, j'ai utilisé git pour gérer les versions et ajouter de nouvelles fonctionnalités. Nous avons travaillé sur l'ajout de la bande passante par processus et la fonctionnalité de DNS inversé, tout en conservant les adresses IP d'origine visibles. Ces améliorations ont nécessité plusieurs ajustements et échanges pour corriger les bugs et optimiser l'interface.
Le code source et les instructions de construction pour Bandwidther sont disponibles dans simonw/bandwidther.
Gpuer : surveiller le GPU et la RAM
En parallèle de Bandwidther, j'ai développé Gpuer, une application destinée à surveiller l'utilisation de la RAM et du GPU. Le Moniteur d'activité ne fournissant pas ces informations de manière satisfaisante, j'ai utilisé des commandes comme system_profiler et memory_pressure pour collecter les données nécessaires.
Un exemple de ces imprécisions est survenu lorsque Gpuer a rapporté qu'il ne restait que 5 Go de mémoire, ce qui était incorrect selon le Moniteur d'activité. Après avoir partagé une capture d'écran avec Claude, les calculs ont été ajustés, mais des doutes subsistent quant à la fiabilité des résultats.
Le code pour Gpuer peut être trouvé dans simonw/gpuer sur GitHub.
Les limites du développement amateur
Malgré l'enthousiasme suscité par ces projets, il est important de reconnaître leurs limites. Ces applications relèvent du vibe coding : je ne maîtrise pas Swift et j'ai peu de connaissances sur les internes de macOS. Par conséquent, je ne peux garantir la précision des données affichées.
J'ai ajouté des avertissements aux deux dépôts GitHub pour indiquer que les chiffres et les graphiques générés par ces outils pourraient ne pas être crédibles ou précis.
Une expérience enrichissante malgré les incertitudes
Bien que je ne recommande pas de se fier entièrement à ces outils, leur développement a été une expérience d'apprentissage précieuse. J'ai découvert que SwiftUI permet de réaliser beaucoup avec peu de code, et que l'intégration de commandes terminal dans une interface utilisateur est relativement simple. Par exemple, GpuerApp.swift compte 880 lignes et BandwidtherApp.swift en compte 1063.
Claude a un goût de design étonnamment bon en ce qui concerne les applications SwiftUI. Transformer une application en application de barre de menu nécessite juste quelques lignes de code supplémentaires.
Ces projets ont également démontré que l'on peut créer des applications macOS sans ouvrir Xcode, et que même un développeur amateur peut explorer de nouvelles capacités avec des outils modernes comme SwiftUI. Les codes sources de Bandwidther et Gpuer sont disponibles sur GitHub, offrant un aperçu de ce que l'on peut accomplir avec un peu de curiosité et de créativité.




