Unit tests with RxSwift/Combine & Model/ViewModel separation best practices | iOS Dev Live Mentoring

Unit tests with RxSwift/Combine & Model/ViewModel separation best practices | iOS Dev Live Mentoring

Learn how to test reactive RxSwift or Combine code in practice and Model/ViewModel separation best practices to decouple business logic from presentation logic.

Read More

Live Coding, Public Speaking, and Networking as an iOS dev | iOS Dev Live Mentoring

Live Coding, Public Speaking, and Networking as an iOS dev | iOS Dev Live Mentoring

Learn how to prepare and deliver great iOS dev presentations and how to meet like-minded iOS developers and grow your network.

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

Clean iOS Architecture pt.7: VIP (Clean Swift) – Design Pattern or Architecture?

Clean iOS Architecture pt.7: VIP (Clean Swift) – Design Pattern or Architecture?

Today we're going to analyze the VIP (Clean Swift) Architecture. And, as we did in previous videos with VIPER, MVC, MVVM, and MVP, we will decide if we can call VIP a Software Architecture or a Design Pattern.

Read More

Clean iOS Architecture pt.4: Clean Memory Management in Swift with WeakRef

Clean iOS Architecture pt.4: Clean Memory Management in Swift with WeakRef

We must be careful with `weak` properties as they can sometimes damage the design of our systems, especially when crossing module boundaries. In this video, we’d like to share with you a way to avoid retain cycles by using a `WeakRef` type, so there's no need to make your class properties `weak`.

Read More

S01E21: [TDD 🍅 18] Testing Presenters in Swift pt.2

S01E21: [TDD 🍅 18] Testing Presenters in Swift pt.2

In this episode, we finish test-driving the ResultsPresenter and QuestionPresenter implementations.

Read More
Comment

S01E20: [TDD 🍅 17] Testing Presenters in Swift pt.1

S01E20: [TDD 🍅 17] Testing Presenters in Swift pt.1

In this episode, we test-drive the ResultsPresenter implementation.

Read More

S01E09: [TDD 🍅 8] Establishing a Presentation Layer in Swift

S01E09: [TDD 🍅 8] Establishing a Presentation Layer in Swift

In this episode, we continue the development of the UI as we start implementing the ResultsViewController, a class responsible for showing the result of a finished game. Unlike the QuestionViewController, we reach a point where we need to deal with more complicated logic for displaying the right information on the screen...

Read More