Category: Swift
Test unitaires avec Async Await – comment rendre votre client HTTP indépendant de l’infrastructure? (Partie 1)
Introduction: Dans cette article, qui constitue une continuation de mon dernier article sur l’injection et l’inversion de dépendances à base de async await, j’essayerai de vous présenter les méthodes qui existent pour faire des tests unitaires de valeurs à base de async await et comment ensuite rendre nos tests indépendamment de async await ou d’autres […]
Injection et inversion de dépendances en pratique avec Async Await
Dans son livre Clean Code a handbook of software craftsmanship, Robert C. Martin connu sous le nom de oncle Bob définit deux concepts: injection de dépendances et inversion de dépendances. Plusieurs développeurs iOS comme moi ou d’autres, appliquent sans connaitre l’arrière plan et les avantages qui ont donnée naissance au pattern DI et du principe […]
Comprendre les closures en Swift (les captures List)
Dans notre vie de développeur iOS, on utilise fréquemment des closures. Ils sont tout simplement des fonctions sans nom qu’on l’utilise généralement pour effectuer des instructions suite à des appels de fonctions dites asynchrones. Longtemps, j’ai eu ce malaise de comprendre pourquoi Swift appelle les paramètres passés a une closure au moment de sa définition […]
Test unitaires – Comment prendre le contrôle de notre AppDelegate?
Partir sur des bases solides pour faire des tests unitaires est un sujet qui nécessite un peu de réflexion. En effet, le cycle de vie d’un test unitaire et comment XCTest le gère , peut augmenter le temps pris et la complexité de nos tests si on gère pas ce cycle correctement. La classe AppDelegate […]
Delegates & callbacks in Swift (part 2)
Introduction In the first part of this tutorial about delegation and callbacks, I had presented the delegation design pattern which is a communication design pattern between two objects based on one-to-one relation ship. We spoke about memory management and how Delegation pattern generates retain cycle and how we can resolve the issue using weak attribut. […]