- variable declarations -
var
,let
- type annotations
- integers and floats - casting and bounds
- tuples
- optionals / optional binding / nil coalescing
- asserts / preconditions
- range operators
- arrays / sets / dictionaries
- flow control -
if
,switch
- calling functions, passing parameters, returning values, default values, optional chaining
- closures - syntax, type inference, shorthand args, trailing closures, escaping closures
- enums - associated values, raw values, case matching, if case
- classes and structures
- value types / reference types - difference
- properties - stored, lazy, default, computed, readonly, property observers
- methods - mutating
- init/deinit
- nested types
- class extensions
- protocols
- protocol extensions
- generics
- type constraints
- associated types
- extensions with where
Name | Description |
---|---|
The Swift programming language (ebook) | The Swift bible - complete description of the language, a must read! |
Online Swift guide | Handy Swift language concepts reference |
Swift standard library reference | Standard library documentation. Lots of useful gems there |
API design guidelines | Lots of tips about how to structure not only an API |
Swift style guide | How to format Swift code |
Use https://www.themoviedb.org as a data source. App must be able to:
- Show list of
- most popular movies
- now playing movies
- Search movie by name
- Show movie detail including
- basic info (name, image, year)
- actors
- images/trailers
- reviews
- Search for actor by name
- Show actor detail including
- basic info (name, age, picture)
- movies
- Handle login and display user profile
- Show list of user's favourite movies
- Add movie to favourites
And remember, you will need to implement what you design!