Skip to content

Latest commit

 

History

History
140 lines (98 loc) · 5.85 KB

File metadata and controls

140 lines (98 loc) · 5.85 KB

Lectures

I've divided the lecture topics into lecture blocks. One lecture block may span multiple lectures. This way I can stay flexible in how many lectures I dedicate to one block.

Lecture Block 1 - Mobile Development Overview, Swift Fundamentals

After this block is finished, you should have the required knowledge to complete the Swift exercise.

Topics

  • Mobile App Development Overview
  • Mobile platforms, differences, advantages, disadvantages
  • Main aspects of mobile development:
    • Interacting with the network
    • Data persistence
    • Displaying data, UI, UX
  • Cross platform frameworks overview
  • Cross platform pros/cons
  • Cross platform alternatives
  • Swift language overview
  • Swift pros/cons
  • Introduction to Swift
  • More advanced Swift concepts

Resources

Lecture Block 2 - UIKit & Auto Layout fundamentals

After this block is finished, you should have the required knowledge to complete the Login exercise.

Topics

  • Different UI frameworks (UIKit, SwiftUI)
  • Model-View-Controller (MVC), Model-View-ViewModel (MVVM), VIPER
  • UIView fundamentals
  • UIViewController fundamentals
  • UILabel and UITextField
  • UIAlertController
  • Auto Layout and UIStackView
  • Storyboards vs Code

Resources

Lecture Block 3 - Networking fundamentals

After this block is finished, you should have the required knowledge to complete the REST exercise.

Topics

  • Interacting with a REST API in Swift
  • Using URLSession
  • Multithreading fundamentals
  • JSON parsing and the Codable protocol

Resources

Lecture Block 4 - Advanced UIKit topics

Topics

  • UIScrollView
  • Transitioning between ViewControllers
  • Storyboard segues
  • UINavigationController
  • UITabBarController
  • ViewController Lifecycle
  • UITableView and UICollectionView

Resources

Lecture Block 5 - Persistence

Topics

  • UserDefaults
  • Keychain
  • Codable protocol
  • File System
  • Mobile Databases and Object-Relational Mapping (ORM)
    • SQLite
    • CoreData
    • Realm

Resources

Additional Topics

These topics are extra topics that we may or may not tackle depending on our progress in the core topics.

  • Automated testing
    • Unit testing in Swift with XCTest
    • Dependency injection in Swift
    • Testing asynchronous code
  • Modals, PopOvers
  • Embedded ViewControllers
  • Advanced git workflows
  • Third party dependency management (CocoaPods, Carthage, Swift Package Manager)

General Resources

The official Apple and Swift documentation are always a great place to start if you're stuck.

Attendance

If you can’t come to the lecture, or will be late/leave early, please send me an email in advance to inform me of your absence. Please don't tell me at the lecture or via Telegram, since it’s hard for me to keep track of who is excused if I have to use multiple communication channels.

If you miss one of the lectures with a scheduled code review for one of the exercises, you’ll be given another chance to complete it in the following lecture that you attend. Please note that this doesn’t affect the deadline for submitting the code itself. Make sure to take another look at the code before the code review, since you’ll be graded on your understanding of the code and concepts, not the code itself.

Otherwise, standard FH Campus attendance rules apply. For more information please see the FH wide rules on attendance in the "Studien- and Prüfungsordnung" which you can find here.

Stanford Class

Some of the lectures will be loosely based on the Stanford class CS193P from the fall 2018 semester. The videos for this class are on YouTube, and the lecture slides, exercises and code are also available.