Building Scalable Swift Automation: From Project Generation to App Store Distribution
Leo Dion
09:00-12:00, Monday, 18th May 2026
Managing Swift projects at scale requires systematic automationβfrom project generation to multi-platform testing to App Store distribution. This hands-on workshop teaches proven automation patterns for maintaining consistency across open-source libraries and commercial apps.
Outline
Part 1: Project Generation with Tuist (40 minutes)
Topics Covered
- Tool version management with mise
- Eliminating .xcodeproj merge conflicts
- Tuist project generation from Swift DSL
- Integrating remote and local Swift packages
- Enforcing code quality with SwiftLint and swift-format
- Multi-target app architectures
Hands-On Activities
- Install and configure mise with development tools
- Initialize Tuist project
- Define project structure with Swift package dependencies
- Create local Swift packages
- Generate workspace with integrated packages
- Observe complete project structure in Xcode
Discussion Points
- Tool version consistency strategies
- When to use local packages vs framework targets
- Scaling architectures across teams
Part 2: CI/CD Foundation (35 minutes)
Topics Covered
- Managing CI/CD across multiple repositories
- Testing Xcode projects vs Swift packages
- Reducing GitHub Actions complexity
- Intelligent caching for build time improvements
- Matrix testing across platforms
Hands-On Activities
- Create GitHub Actions workflows for Xcode projects
- Create GitHub Actions workflows for Swift packages
- Configure platform matrices for both
- Push and observe automated testing
- Compare build times and performance metrics
Discussion Points
- Testing strategy differences between projects and packages
- When to extract code into packages for faster CI
- Scaling automation across repositories
Part 3: Multi-Platform Testing (60 minutes)
Topics Covered
- Swift beyond Apple platforms: Linux, Android, server-side
- Full-stack Swift architecture with OpenAPI
- Generating server-side and client code from OpenAPI specs
- Type-safe client-server communication
- Docker containers for server-side testing
- Platform-specific quirks and differences
- Swift Testing's conditional test capabilities
- Cross-platform design patterns
Hands-On Activities
- Define API contract in OpenAPI YAML
- Generate Swift server code with OpenAPI Generator
- Generate Swift client SDK from same specification
- Write platform-specific tests with conditional traits
- Create Dockerfiles for server-side Swift testing
- Configure Docker-based Linux testing in CI
- Add Android testing workflows
- Run tests across all platforms
- Test full-stack application with type-safe communication
Discussion Points
- Benefits of contract-first API development
- Maintaining API specifications in version control
- Sharing code between client and server
- Real-world platform bugs and solutions
- Test trait strategies for different platforms
- Full-stack Swift architecture decisions
Part 4: Distribution Automation (45 minutes)
Topics Covered
- Manual TestFlight deployment challenges
- Fastlane architecture and capabilities
- App Store Connect API integration
- Managing credentials securely in CI
- Automated deployment workflows
Hands-On Activities
- Configure Fastlane for TestFlight uploads
- Set up GitHub Actions for automated deployment
- Integrate App Store Connect API credentials
- Test automated deployment pipeline
- Verify builds in App Store Connect
Discussion Points
- Deployment strategies and best practices
- Versioning automation approaches
- Managing beta testers and feedback
Leo Dion
Leo Dion is the founder of https://brightdigit.com, a full-stack Swift development company he's been running since 2012. He specializes in end-to-end Swift solutionsβfrom iOS/macOS/watchOS to server-side Swiftβand has shipped multiple App Store apps including Bushel (macOS virtualization for developers) and Heartwitch (Apple Watch health streaming). He's an active open source contributor with Swift packages including swift-build (popular GitHub Action for Swift CI/CD), MistKit (CloudKit REST API), SyntaxKit (code generation), DataThespian (SwiftData concurrency), PackageDSL, and SyndiKit (RSS parsing). Leo hosts https://empowerapps.show and has been speaking about Swift since its launch. He lives in Michigan with his wife Betsy and six kids. https://www.youtube.com/watch?v=WVXvIso24Sc&list=PLmpJxPaZbSnBTtrr4V6bksOfLVK4uK9q6.