I have organized my articles into a list of easy-to-follow categories below.
About Clean Swift
- How to fix Massive View Controller with Clean Swift iOS Architecture
- All About Routing
- How to isolate your models
- Convention over configuration
- Unified protocols
- Updates for Xcode 8.3.3 & 9.0 and Swift 3 & 4
- Using Swift optionals to simplify asynchronous work
- Improved routing and data passing
- Error handling in Clean Swift
- Full routing analysis
- RxCleanSwift
- How to pass data back to the previous view controller without using delegation
- Synchronous Operations
- Clean Swift Architecture Terminology
Tired of MVC? But MVVM and VIPER don’t feel quite right? There are reasons for it. Code dependence. Data dependence. Unidirectional flow of control. Just to name a few issues for these alternatives. If you just master the simple VIP cycle in Clean Swift, you can isolate your code into small and testable components. You can solve all of these problems, and have a beautiful, consistent architecture for your iOS apps.
All about Mocking
Unit Testing Basics
- How to test API boundary
- Testing View Controller Part 1, Part 2
- Testing business logic in Interactor
- Testing presentation logic in Presenter
- Seed data
- Am I stubbing too much?
- How do you mock a singleton class
- How to make your unit tests run faster
- Unit Testing and TDD Terminology
- Testing Asynchronous Operations
I’ve written a book to teach you how to write unit tests effectively. If you want to make your tests fast so you’ll actually run them and run them often to receive immediate feedback, check out Effective Unit Testing. You’ll develop the confidence that your change will not break existing features, and never have to worry about introducing regression. Write non-fragile unit tests that are assets, not liabilities. Use TDD to write testable code that drives feature development.
Test Driven Development – Step-by-Step
- TDD Part 1 – View Controller
- TDD Part 2 – Interactor
- TDD Part 3 – Worker
- TDD Part 4 – Presenter
- TDD Part 5 – Complete the VIP cycle
- A Step by Step Walkthrough of iOS Test Driven Development in Swift
Architecture Concepts
- Single Responsibility – Part 1, Part 2
- Dependency Inversion
- Protocol Oriented Programming
- A conversation about code design
- Data independence is often overlooked but very, very important
- Why does your app always seem to go awry?
Refactoring Techniques
- Refactor your table view controller
- What do do with so many data source and delegate methods?
- How to refactor your
viewDidLoad()
method and then write unit test for it - How code isolation helps refactoring
Your Questions – Answered
- The View Controller —> Interactor —> Presenter cycle
- Implementing complex business logic using interactors and workers