Le forgeron et l’IA
Comment j’ai formalisé dans Codex un cycle de développement agentique fondé sur des skills, des sous-agents spécialistes et des handoffs, afin de produire un code mobile cohérent avec mes choix d’architecture.
Le blog
Notes depuis l’atelier : architecture logicielle, programmation fonctionnelle, Swift et artisanat du développement mobile.
Comment j’ai formalisé dans Codex un cycle de développement agentique fondé sur des skills, des sous-agents spécialistes et des handoffs, afin de produire un code mobile cohérent avec mes choix d’architecture.
Lors du développement d’une application iOS, il est fréquent de devoir contrôler la fréquence de traitement d’une information. La programmation réactive et son opérateur Debounce offrent une solution, mais nous allons…
Swift 5.5 a introduit la concurrence structurée et AsyncSequence, une nouvelle manière de produire un flux de valeurs au fil du temps. Explorons ses différences et ses ressemblances avec Combine, ainsi que des opérateurs…
Error est un type de base en Swift qui représente un problème survenu dans le flux de l’application. Cet article explore une manière de rendre une erreur conforme à Equatable sans compromettre son abstraction.
Les machines à états sont prévisibles et testables. Comme elles peuvent être définies de manière abstraite, elles se prêtent bien à un langage dédié. Créons un DSL Swift et utilisons-le dans une architecture en boucle de…
Mettre en place une architecture peut être délicat. Nous avons des règles et des patterns pour nous guider, mais certaines pratiques que nous pensions bien établies méritent parfois de prendre du recul.
Présentation de Spin, un système universel de boucle de rétroaction en Swift. Une boucle de rétroaction s’autorégule en réutilisant le résultat de ses calculs comme prochaine entrée et en l’ajustant continuellement selon…
Pour répondre à cette question, nous devons d’abord comprendre la programmation orientée aspects, ou AOP. J’aime la voir comme une réponse à une certaine forme d’échec des conceptions orientées objet.
La WWDC a été formidable cette année. SwiftUI et Combine figuraient parmi les grandes annonces de la conférence. Ils auront un impact considérable sur notre quotidien de développeurs iOS.
Après avoir posé les bases des conteneurs d’état, voyons comment RxReduce gère l’état, ses mutations et le travail asynchrone lié aux effets de bord de manière réactive.
La gestion d’état est récemment devenue une préoccupation très populaire dans les applications mobiles. L’idée d’un état constituant l’unique source de vérité d’une application est particulièrement séduisante ! Les vues…
De nombreux articles expliquent comment créer une couche réseau type-safe avec Swift. Quelle que soit l’API réseau utilisée, ces approches reposent toutes sur le renvoi du type de données précisément attendu. Dans cet…
Swift 4.1 est disponible depuis quelques jours et apporte une fonctionnalité intéressante, la conformité conditionnelle. C’est un nouvel outil au service de la programmation orientée protocoles et de la conception d’API.…
Mes articles parlent généralement de design patterns, d’architectures logicielles — ou de RxFlow 😀 —, mais celui-ci sera différent. Je ne pensais franchement pas écrire un jour sur ce sujet, pourtant j’ai quelque chose…
MVVM est récemment devenu une sorte de standard pour l’architecture des applications iOS. Il offre une bonne séparation des responsabilités, un moyen efficace de formater les données et d’excellents mécanismes de binding…
Voici le dernier chapitre de notre voyage dans RxFlow. J’ai déjà présenté toutes les fonctionnalités et tous les principes clés du framework dans les deux parties précédentes. Plongeons-nous maintenant dans quelques…
Il y a quelques semaines, je présentais sur ce blog un framework iOS appelé RxFlow. Après plusieurs mois de travail, il est maintenant prêt à être utilisé. Passons de la théorie à la pratique.
En Swift, certaines API comme RxSwift utilisent une technique qui confine le code qu’elles exposent dans un namespace dédié. Dans cet article, nous allons découvrir comment y parvenir de la manière la plus générique et…
En Swift, vous pouvez définir des protocoles en leur associant un ou plusieurs types à l’aide du mot-clé associatedtype. L’appellation « type générique » est ici quelque peu usurpée : il s’agit plutôt d’un emplacement…
Voici le premier article d’une série qui occupera une place centrale sur ce blog pendant quelque temps. Je vais présenter RxFlow, un framework de ma conception qui implémente le pattern Reactive Flow Coordinator dans les…
EZStream est la manière la plus simple de diffuser la caméra de votre appareil dans n’importe quel navigateur web.