Swift Packages - Dependency Management of the Future
summary
Explains the Package.swift layout and exact commands used: swift package init, swift test, and generating Xcode projects; shows CI setups with Travis CI and GitHub Actions, Docker for Linux checks (example: Swift 5.3 Ubuntu 18), Codecov for coverage, and tools used as dev deps: swift-argument-parser, sourceDocs, swiftformat, swiftlint, commodore and rocket. Demonstrates sharing C++ binary libraries as a Swift Package, handling platform gaps with can import and #if os, and a real app where a package contains 80–90% of shared code and is fully testable.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 1:08What is package management
- 3:13Other package managers
- 5:00Getting started with SPM
- 6:02Creating packages
- 7:03Package.swift explained
- 8:29Managing dependencies
- 10:37Understanding targets
- 11:20Why use SPM
- 12:23Publishing packages
- 15:51Finding packages
- 16:34Ensuring package quality
- 18:20Supporting Linux
- 20:07API availability tricks
- 22:14Git repository setup
- 23:15Git hooks with Comodor
- 26:24Continuous integration
- 29:11Testing strategies
- 31:38CPU architecture support
- 34:06Code quality tools
- 35:50Trimming GitHub releases
- 38:18Common issues
- 40:01Additional resources
- 42:10Recap and conclusion
related talks
26mPractical Cross-Platform Swift
33mScaling Swift Development
01h 03mSwift Tools for Software Crafting 2024
36mBuilding Swift Packages in VSCode
26mKeeping Things Modular With Swift Package Manager
37mBeyond Xcode
01h 13mDo iOS Panel, hosted by Antoine van der Lee
39mModularization techniques from monolithic to multi-packages app
