Delegates & callbacks in Swift (part 1)

Introduction: CallBacks and Delegation are one of the often tools using by Swift developers. In this article, I try to explain the differences between them in point of view using and memory management. What is delegation? Delegation is a common design pattern where one class/struct delegates responsibility of implementing some functionality to another (the delegated class or struct). […]

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

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 […]

Comment XcodeGen peut faciliter la vie d’un développeur iOS ? (version monolithique multi schemas)

XcodeGen est un outil qui permet de générer la structure d’un projet iOS sous Xcode en se basant sur un fichier .yml nommé par défaut project.yml. Le projet est maintenu en open source sur GitHub: Lien L’avantage majeur de XcodeGen provient du fait que le développeur n’aura pas a pousser (push) sur Git le fichier […]

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 […]