Protocols & Extensions basics
Define protocols, make types conform, extend with default implementations, and understand static vs instance requirements.
Protocols & Extensions basics is a free Swift Academy lesson on CoddyKit — lesson 1 of 3. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Swift Academy learning path, one of 3 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Intro
Swift protocols define a contract of methods/properties. Types adopt protocols to gain shared behavior. Extensions add functionality or default implementations.
Define protocol
Declare a protocol with required methods or properties.
protocol Greetable {
func greet() -> String
}Conformance
A type conforms by implementing all protocol requirements.
struct Person: Greetable {
var name: String
func greet() -> String {
return "Hi, I am \\(name)"
}
}
print(Person(name:"Ada").greet())Extensions
Use extensions to make existing types conform to a protocol.
extension Int: Greetable {
func greet() -> String { return "Number \\(self)" }
}
print(5.greet())Default implementation
Extensions can add default implementations, so conforming types don't have to implement everything.
extension Greetable {
func greet() -> String { return "Hello!" }
}
struct Dog: Greetable { }
print(Dog().greet())Static vs instance
Protocols can require static and instance members.
protocol Identifiable {
static var typeID: String { get }
var id: Int { get }
}
struct Item: Identifiable {
static var typeID = "Item"
var id: Int
}
print(Item.typeID, Item(id:1).id)Protocol Q
Quick check: What is the main role of a protocol?
Recap
Recap: Define protocols for shared contracts, conform with types, extend existing types, add defaults, and use static vs instance requirements.
Frequently asked questions
Is the “Protocols & Extensions basics” lesson free?
Yes — the full text of “Protocols & Extensions basics” is free to read here on the web, and the Swift Academy course includes 3 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Swift Academy course, upgrade to CoddyKit PRO.
What will I learn in “Protocols & Extensions basics”?
Define protocols, make types conform, extend with default implementations, and understand static vs instance requirements. You practise Swift Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Swift Academy?
No prior experience is required. Swift Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 3, so you can start here or from the beginning and move at your own pace.
How long does the “Protocols & Extensions basics” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Swift Academy lesson?
Yes. Every Swift Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Protocols & Extensions basics
- Protocol extensions vs type extensions
- Static vs instance requirements