Open
Description
This issue describes how to implement the protocols concept exercise for the Swift track.
Getting started
Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read the following documents:
Please also watch the following video:
Goal
This concept exercise should convey a basic understanding of how to work with protocols in Swift.
Things to teach
- What protocols are
- Protocol syntax
- Protocol conformance
- Property requirements
- Method requirements
- init requirements
- Protocols as types
- Conformance and adoption via extensions
Things not to teach
- Protocol extensions
- Delegation
- Protocol inheritance
- Protocol composition
- Protocols with associated types
- Class only protocols
- Conformance checking with
as
- Optional requirements
Concepts
protocols
Prerequisites
structs-and-classes
enumerations
properties
methods
initialization
Resources to refer to
Hints
- Protocol syntax
- Property requirements
- Method requirements
- Initializer requirements
- Protocols as types
- Protocols via extension
After
- Protocol syntax
- Property requirements
- Method requirements
- Initializer requirements
- Protocols as types
- Protocols via extension
Representer
TBD
Analyzer
TBD
Implementing
See the Swift track implementation guide for guidance.
Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.
Metadata
Metadata
Assignees
Labels
No labels