S03E01: How SwiftUI fits in a Clean Architecture | Professional iOS Engineering Series
/Learn how to migrate to SwiftUI incrementally as we migrate away from UIKit UIViewControllers.
Read MoreSkilled, disciplined and professional iOS software development resources tailored for you
Learn how to migrate to SwiftUI incrementally as we migrate away from UIKit UIViewControllers.
Read MoreIn this episode, we migrate the Quiz project to Swift 5.2 and Xcode 11.4.1. And the CI server to GitHub Actions.
Read MoreThe ability to develop and maintain a clean iOS codebase is essential to becoming a remarkable iOS Developer. A simple but extremely valuable action you can take is removing unused code—mercilessly. At the same time, we meet many developers afraid of deleting code because they might need it in the future.
Today, you’ll learn two ways for retrieving deleted code from a git repository and how good practices for commits facilitate the maintenance of a clean iOS codebase.
In this episode, we zoom out from the component level view of the system created previously and we showcase how to organize it into modules.
Read MoreA question we are frequently asked, usually by less experienced iOS developers, is how to prepare for an iOS interview. Most candidates look for our advice for preparing on technical details such as what frameworks or libraries to invest their time in, what architectural patterns should they be using, and other technical details.
Read MoreIn this episode, we migrate the Quiz project and its dependencies to Swift 4.2 and modernize our code with the newest additions.
Read MoreWe 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 MoreIn this video, you'll learn how to create your own `Swift View Controller Lifecycle Observers`. Those observers are very useful when composing and creating reusable view controllers. The solution is based on the `UIViewController Containers API` so there's no need for external frameworks, swizzling or subclassing!
Read MoreIn this episode, we set up a Continuous Integration (CI) pipeline for our Quiz project. The goal for this initial setup and integration with GitHub is to guarantee we only merge changes that don’t break the build and are passing all tests.
Read MoreFirst-class iOS engineering with Empathy, Integrity, and Economics in mind. Skilled and disciplined training for iOS professionals and teams.
I've been writing software since 1998, professionally since 2006, and on Apple platforms since 2009. I love building robust, well-engineered, and beautiful applications and coaching developers to achieve their best potential.
I'm a software engineer from Athens, Greece. My goal is to help the software industry evolve by enabling developers and companies to practice valuable techniques and build powerful and durable systems.