As you progress learning Swift it's a good idea to stop and double-check everything is sinking in, so here you can find questions and answers about a range of Swift language and iOS development topics. Don't worry if you make mistakes: your answers aren't stored online, and you can always revisit topics as needed.
|Strings and integers|
|Doubles and booleans|
|Simple types: Summary|
|Arrays vs sets vs tuples|
|Dictionary default values|
|Creating empty collections|
|Enum associated values|
|Enum raw values|
|Complex types: Summary|
|Operators and conditions|
|Compound assignment operators|
|The ternary operator|
|Operators and conditions: Summary|
|Exiting multiple loops|
|Omitting parameter labels|
|Writing throwing functions|
|Running throwing functions|
|Creating basic closures|
|Accepting parameters in a closure|
|Returning values from a closure|
|Closures as parameters|
|Trailing closure syntax|
|Using closures as parameters when they accept parameters|
|Using closures as parameters when they return values|
|Shorthand parameter names|
|Closures with multiple parameters|
|Returning closures from functions|
|Creating your own structs|
|Properties and methods of strings|
|Properties and methods of arrays|
|Referring to the current instance|
|Static properties and methods|
|Creating your own classes|
|Protocols and extensions: Summary|
|Handling missing data|
|Unwrapping with guard|
|Implicitly unwrapped optionals|
|Project 1: Storm Viewer|
|Project 2: Guess the Flag|
|Project 3: Social media|
|Project 4: Easy Browser|
|Project 5: Word Scramble|
|Project 6: Auto Layout|
|Project 7: Whitehouse Petitions|
|Project 8: 7 Swifty Words|
|Project 9: Grand Central Dispatch|
|Project 10: Names to Faces|
|Project 11: Pachinko|
|Project 12: UserDefaults|
|Project 13: Instafilter|
|Project 14: Whack-a-Penguin|
|Project 15: Animation|
|Project 16: Capital Cities|
|Project 17: Space Race|
|Project 18: Debugging|
|Project 20: Fireworks Night|
|Project 21: Local Notifications|
|Project 22: Detect-a-Beacon|
|Project 23: Swifty Ninja|
|Project 24: Swift Strings|
|Project 25: Selfie Share|
|Project 26: Marble Maze|
|Project 27: Core Graphics|
|Project 28: Secret Swift|
|Project 29: Exploding Monkeys|
|Project 30: Instruments|
|Guess the Flag|
|Views and Modifiers|
|Layout and geometry|
Q: Where are my scores stored?
A: Your scores are stored using your web browser's local storage, so no one else can see them – they are just there so you can monitor your progress.
Q: What do I get if I complete all the reviews?
A: You get the warm glow of knowing you've mastered the fundamentals of Swift – good job!
Q: Where can I go to learn more?
A: Each of the review sections are designed to follow my Swift in Sixty Seconds and Hacking with Swift series, which are free online. If you complete all these and want to push your Swift skills further, you should read my book Pro Swift.
Q: What's stopping me from cheating?
A: I'm sure you could look up the correct answers as you go, but you're only cheating yourself – your scores aren't public.
Q: Where can I report mistakes?
A: If you spot mistakes in the questions, please either email me at email@example.com or tweet me @twostraws.
Link copied to your pasteboard.