Courses Syllabus

 

Please note that topics and order may vary.

 

Swift Best Practices in Your iOS Apps

2 Days

A Functional Core

  • Test Driving the Model

  • Adding Mutating Methods

  • Implementing Non-Mutating Methods

  • Moving to a Generic Model

The Surrounding OO GUI

  • Displaying in a Table View

  • Using a 'View Model'

  • Deleting and Moving Elements

  • Adding an Input View

  • Entering Items

  • Subclassing Storyboard Segues

  • Using Multiple Storyboards

  • Using Multiple Modules

When Things Go Wrong

  • Asserts

  • Optionals

  • ErrorProtocol Enums

  • Throws

  • Try/Catch

  • Defer

  • Guard Let

  • Rethrow

  • The new Swift 5 Result Type

Collections and Higher-Order Functions

  • Returning a Function

  • Returning a Closure

  • Consuming a Closure

  • Mapping Arrays

  • Map

  • Filter

  • Reduce

  • FlatMap

Using Features of Modern Swift

  • Catching up on Strings

  • Taking advantage of Keypaths

  • Downloading the JSON

  • Fetching Resources

  • Decoding the JSON

  • Adding Enumerations

  • Working with Futures

 

Thinking Functionally in Swift 5.0

Map, Filter, Reduce, and FlatMap

Rethinking Functions

  • Higher Order Functions

  • Drawing Pictures Demo

  • Rethinking Sets

  • Combinators

Functors

  • Mapping Arrays

  • Mapping Optionals

  • Our own map

  • Swift 5 Result Type

  • Non-Container Map (Optional)

 

Monads

  • FlatMapping Arrays

  • FlatMapping Optionals

  • Compact Map

  • FlatMapping Result Type

  • Our own flatMap

  • Pure

  • FlatMap and Map

  • Futures (optional)

  • Random Number Generators (optional)

Applicatives

  • Applying Optionals

  • Applying Arrays

  • Applying Result

  • Monoids (optional)

  • Monoids and Applicatives (optional)