Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Swifty Stack - Pro Course
Welcome to SwiftyStack!
Welcome! (1:54)
Discounts
Project Template
Intro
Hands-On (38:59)
Fundamentals - Project Setup
Dependency Management Options (9:06)
Why most should default to Swift Package Manager? (3:16)
Modularizing your codebase (4:48)
Package.swift tips (1:57)
Continuous Integration (6:15)
Larger project or multi-platform? Tuist project template
Fundamentals - Build Tools
Linting your codebase (5:42)
Automate formatting to save time (2:51)
Linting & Formatting (1:16)
Leverage Metaprogramming in Swift (11:48)
Find unused and dead code to build faster and maintain easier (4:39)
Pre-Commit Tool (2:58)
My recommended setup for the tools (1:42)
Fundamentals - Iteration Speed
Intro (2:11)
Enable Hot Reloading in Swift (10:38)
Preview Apps - Optimize working on Features (6:17)
Simplify design review of the whole app (5:28)
Fundamentals - SwiftUI
How to tweak little details that SwiftUI interface is lacking API for? (1:15)
The missing documentation app for SwiftUI that everyone needs to get (1:37)
Debugging redraws and understanding view identity (3:37)
Best Practices (3:28)
Fundamentals - Testing
Why Testing Matters? (2:31)
Best Practices in Testing (2:55)
How to elevate your equality checks in tests (2:16)
How to make UITests a lot more maintainable? (1:31)
Don't write mocks, generate them! (1:18)
Snapshot Testing (5:11)
Fundamentals - Workflow Improvements
Automatically catching Memory leaks before your users do. (6:25)
Automatically generate your whole debug settings! (10:56)
Debug and control networking calls, even if you don't own the API! (3:26)
Give your iOS simulator superpowers! (3:19)
Hands-On with Sourcery
Intro (1:57)
Getting started with type discovery (5:02)
Leveraging Sourcery to simplify maintenance of Enums with Associated Values (8:41)
Upgrading your Xcode with Sourcery Pro! (11:10)
Writing more complex templates with Set/Macro (4:43)
Architecture - Foundation
Intro (8:10)
Good Architecture (7:53)
Layers of Architecture (5:37)
Inversion of Control and Dependency Management (5:07)
Using Protocol Composition for DI (3:44)
Designing your dependencies: Protocols vs Structs? (2:26)
Use SwiftUI Environment or is there a better alternative? (2:03)
Architecture - Adapting Patterns
Intro (3:48)
MVC (3:23)
MVVM / MVP (2:58)
Coordinator (2:45)
CLEAN - View Interactor Presenter (4:08)
The Composable Architecture (3:59)
Choosing the pattern for your project (1:20)
Architecture - Data Pipeline
Data Pipeline Design (6:36)
Work Efficiently even if backend isn't ready (7:42)
Reproduce Bugs with Ease (7:32)
The Composable Architecture - Beyond Basics
Why exhaustive testing isn't ideal for bigger apps? (4:08)
Creating better boundries between your features is a must for maintainability! (4:38)
Performance issues with TCA and how to fix them? (5:41)
Best Practices for working with TCA (5:39)
Components Architecture
Intro to Components Architecture (3:18)
Defining Components (3:11)
Type Erasure with AnyComponent (1:32)
Visualize & First Component (5:50)
Component Registry and Decoding (5:10)
Decoding a list and registration (3:27)
Live JSON Decoding with FileWatchers (5:46)
Adding More Components & State (4:02)
Automating Workflows with Sourcery (8:40)
In-App Help Component (14:33)
How to approach building developer tools / frameworks?
Intro - It's not that hard! (3:00)
Looking at OhSnap! (7:56)
Looking at LifetimeTracker! (6:10)
Don't just immediately try to automate everything! (4:58)
Leveraging AI
Intro - Chat vs Claude Prompting (6:11)
Using Cursor (32:49)
Making Codex/Claude/Droid follow our best practices, setup + 12 rule files
Career QA
Intro
Designing Interview Process (7:38)
Consulting vs Fulltime (8:46)
Work-Life Balance (6:28)
Career Advancement from Mid to Senior+ (11:20)
Teach online with
Automating Workflows with Sourcery
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock