Skip to content

[v3] Implement new Concept Exercise: protocols #411

Open
@wneumann

Description

@wneumann

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

After

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions