Overview: Your final exam will focus on the learning outcomes for this course. Review each outcome thoroughly and ask questions if you are unclear about the outcome or your level of understanding.
Topic 1: Closures
Ways we learned about this in the course
- Class 1 and 2 covered closures.
- Revisited closures in networking classes and memory management class.
- First tutorial covered closures.
Ways you can demonstrate your skill / knowledge level of this outcome
- Describe how closures work and how to use them.
- Declare and call clousres.
- Identify use cases of closures.
- Identify trailing closures.
- Understand what capturing values mean.
- Know the difference between escaping an non escaping closures.
Topic 2: Protocols and delegation
Ways we learned about this in the course
- Class 3 covered delegation.
Ways you can demonstrate your skill / knowledge level of this outcome
- Implement delegates in code.
- Explain how delegation works in iOS.
Topic 3: Communication Patterns
Ways we learned about this in the course
- Class 4 covered multiple communication Patterns.
- The Pomodoro activity covers notifications and the target-action patterns.
Ways you can demonstrate your skill / knowledge level of this outcome
- Identify the Target-action pattern for event handling.
- Understand the different components of Notifications and how they work.
Topic 4: Memory Management
Ways we learned about this in the course
- Class 5 covered topic in memory management.
- The first tutorial covered memory management basics.
Ways you can demonstrate your skill / knowledge level of this outcome
- Understand what weak, strong, unwoned are, how are they similar/different.
- Identify and resolve reference cycles.
- Use built in tools and techniques to find memory leaks.
Topic 5: Network requests
Ways we learned about this in the course
- Classes 6 to 10 covered networking.
- Product Hunt tutorial covered network requests and the Codable protocol.
Ways you can demonstrate your skill / knowledge level of this outcome
- Deserialize a JSON file.
- Understand why the codable protocol is useful and what is does.
- Implement a simple HTTP based request.
- Validate HTTP response data and error conditions.
- Know what it takes to make an authenticated request.
- Show how you can construct a network layer that optimizes, SoC and reusability.
- Steps to make a network request
Bonus topic
- Generics
- Testing