S02E21: Migrating to Swift 5.2 and CI with GitHub Actions | Professional iOS Engineering Series

S02E21: Migrating to Swift 5.2 and CI with GitHub Actions | Professional iOS Engineering Series

In this episode, we migrate the Quiz project to Swift 5.2 and Xcode 11.4.1. And the CI server to GitHub Actions.

Read More

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