Le blog

Des idées qui méritent
d’être écrites.

Notes depuis l’atelier : architecture logicielle, programmation fonctionnelle, Swift et artisanat du développement mobile.

21 articles2017 — aujourd’hui
architecture 22 min de lecture

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.

Concurrence 8 min de lecture

Debounce avec Swift Concurrency

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…

concurrence 12 min de lecture

Des extensions pour AsyncSequence

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…

langage 9 min de lecture

Des erreurs Equatable en Swift

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.

architecture 15 min de lecture

Un DSL pour les machines à états en Swift

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…

architecture 13 min de lecture

Des fonctions comme dépendances en Swift

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.

architecture 13 min de lecture

Présentation de Spin

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…

langage 13 min de lecture

Swift est-il un langage de programmation orientée aspects ?

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.

architecture 7 min de lecture

RxReduce — Architecture réactive à conteneur d’état, partie 1

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…

architecture 5 min de lecture

Une couche réseau type-safe

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…

langage 7 min de lecture

Un aperçu de la conformité conditionnelle

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.…

uikit 6 min de lecture

Enchaîner élégamment des UIViewPropertyAnimators

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…

astuces 8 min de lecture

Quelques astuces orientées protocoles pour MVVM en Swift

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…

open source 8 min de lecture

RxFlow, partie 3 — Trucs et astuces

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…

open source 11 min de lecture

RxFlow Partie 2 — En pratique

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.

astuces 4 min de lecture

Un namespace polyvalent

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…

astuces 8 min de lecture

L’effacement de type en Swift

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…

open source 5 min de lecture

RxFlow, partie 1 — La théorie

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…

open source 1 min de lecture

EZStream

EZStream est la manière la plus simple de diffuser la caméra de votre appareil dans n’importe quel navigateur web.