a true multi-platform language Platform-native development benefits from knowing what's underneath It also shapes your Developer Experience in meaningful ways
users are on the latest Your deployment target caps which APIs you can call @available #available // Deployment target: iOS 15 @Observable class Model { var count = 0 } ✕ 'Observable' is only available in iOS 17 or newer
users are on the latest Your deployment target caps which APIs you can call @available #available // Deployment target: iOS 15 @available(iOS 17, *) @Observable class Model { var count = 0 }
— not written by you Example: ARC A lot of Invisible reference counting code injected at compile time Looking at generated code helps improving your app performance let dog = Dog() let dog = Dog() let friend = dog friend.bark() strong_retain %2 let friend = dog friend.bark() strong_release %2
and the runtime Defines fixed contract of Application Binary Interface (ABI) for Swift Allows the OS to provide Swift Runtime loaded by all application
Built with Swift 5.1 .swiftmodule Built with Swift 5.1.2 ✕ import Framework module compiled with Swift 5.1 cannot be imported by the Swift 5.1.2 compiler
feature has a design reason behind it Runtime and compiler knowledge helps you see those reasons Use this as your lens — and enjoy the next feature even more
Opaque Result Types (SE-0244) Overcomes several limitations of existing existential types Keyword: Existential Container Deep Dive into "any" and "some" SwiftHeroes 2023
be cached effectively Many tools exist to take advantage of this Try exploring them with the knowledge from today Tuist tuist/Tuist Scipio giginet/Scipio