S02E20: New iOS Quiz App Architecture Overview | Professional iOS Engineering Series

S02E20: New iOS Quiz App Architecture Overview | Professional iOS Engineering Series

In this episode, we finish the migration and have an overview of the new iOS Quiz app architecture.

Read More

S02E19: Migrating the Router and iOS AppDelegate | Professional iOS Engineering Series

S02E19: Migrating the Router and iOS AppDelegate | Professional iOS Engineering Series

In this episode, we finish migrating the UINavigationController router and the iOS AppDelegate classes to the new `QuizDelegate` protocol.

Read More

S02E18: Migrating the Navigation Controller Router | Professional iOS Engineering Series

S02E18: Migrating the Navigation Controller Router | Professional iOS Engineering Series

In this episode, you'll see how we make the iOS UINavigationController Router class implement the new `QuizDelegate` protocol.

Read More

S02E17: Migrating the View Controller Factory part 2 | Professional iOS Engineering Series

S02E17: Migrating the View Controller Factory part 2 | Professional iOS Engineering Series

In this episode, we continue migrating the iOS View Controller Factory to the new APIs.

Read More

S02E16: Migrating the View Controller Factory guided by tests | Professional iOS Engineering Series

S02E16: Migrating the View Controller Factory guided by tests | Professional iOS Engineering Series

In this episode, you'll see how we use `map` and lazy evaluation to migrate the iOSViewControllerFactory initializer in small steps, without altering the class functionality.

Read More

S02E15: Migrating the Quiz ResultsPresenter guided by tests | Professional iOS Engineering Series

S02E15: Migrating the Quiz ResultsPresenter guided by tests | Professional iOS Engineering Series

In this episode, you'll see how to move deprecated dependencies from high-level to lower-level modules as we finish refactoring the `ResultsPresenter`.

Read More

S02E14: Changing struct initializers without breaking clients | Professional iOS Engineering Series

S02E14: Changing struct initializers without breaking clients | Professional iOS Engineering Series

In this episode, you'll see how to change a Swift struct memberwise initializer while maintaining backward compatibility as we refactor the Quiz ResultsPresenter.

Read More

S02E13: Calculating score with zip, reduce, and generics in Swift | Professional iOS Engineering Series

S02E13: Calculating score with zip, reduce, and generics in Swift | Professional iOS Engineering Series

In this episode, you'll see how to replace a procedural scoring implementation that relies on a temporary mutable variable with a more functional approach using Swift's `zip` and `reduce` functions (no mutation!). 

Read More

S02E12: Test-driving a standalone scoring function in Swift | Professional iOS Engineering Series

S02E12: Test-driving a standalone scoring function in Swift | Professional iOS Engineering Series

In this episode, you'll see how to test-drive a basic Quiz scoring function from scratch. By extracting the scoring functionality from the QuizEngine, the framework's clients can now create custom scoring implementations tailored to their business logic.

Read More

S02E11: Cleaning up Swift code backed by tests | Professional iOS Engineering Series

S02E11: Cleaning up Swift code backed by tests | Professional iOS Engineering Series

In this episode, you'll see the pay off of refactoring Swift codebases in tiny steps backed by tests as we safely clean up the codebase by removing duplication and unused APIs without breaking clients or existing code.

Read More