Protocols let you define what a type can do without caring about what it actually is. Once that clicks, a huge chunk of Swift and SwiftUI starts making sense.
Picture this. You're building an anime battle simulator and you need a function that calculates how long it would take for a fighter to travel to the battlefield. Easy enough โ you write it for Ninja:
func sendToMission(distance: Int, using fighter: Ninja) {
// code here
}






