Agenda#
Week 01 - Introduction#
Goals
- Meet people & form project teams.
- Setup your GitLab project.
-
Lectures
-
Additional Resources
Due This Week
- Project team formed (not graded) - form a team
- GitLab project setup (not graded) - setup & organize GitLab
Week 02 - Architecture & Design#
Goals
- Brainstorm ideas and choose a project.
- Iterate on requirements and write starting documentation.
- Consider design implications.
-
Lectures
-
Additional Resources
Due
- Check-in 1 in-class this Friday.
Week 03 - Kotlin Programming#
Goals
- Learn about Kotlin programming
- Install the development toolchain
- Present your project idea!
-
Lectures
-
Additional Resources
Due
- Demo 1 this week! See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- Test 1
- Covers weeks 01 to 03 lectures.
- Closes Fri @ 6 PM. No extensions.
Week 04 - Desktop Applications#
Goals
- Understand how to build a Compose user interface.
- Add a desktop application to your project.
-
Lectures
-
Additional Resources
- Software Release process
Due
- Check-in 2 in-class this Friday.
Week 05 - Mobile Applications#
Goals
- Add an Android or iOS application to your project.
-
Lectures
-
Additional Resources
- Pair Programming - slides
Due
- Check-in 3 in-class this Friday.
Week 06 - Kotlin Multiplatform#
Goals
- Convert your project to a KMP multiplatform build.
-
Lectures
- Kotlin Multiplatform
- Native calls (actual/expect)
- Libraries & Dependencies
-
Additional Resources
- Design Reviews
- Code Reviews
Due
- Demo 2 this week! See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- Test 2
- Covers weeks 04 to 06 lectures.
- Closes Fri @ 6 PM. No extensions.
Week 07 - Testing#
Goals
- Writing unit tests.
- Dependency injection as a technique.
-
Lectures
-
Additional Resources
- TBD
Due
- Check-in 4 in-class this Friday.
Week 08 - Domain Objects#
Goals
- Data classes for intermediate storage.
- Serializing data.
- Error handling.
-
Lectures
- Domain Objects
- Error Handling
-
Additional Resources
- TBD
Due
- Check-in 5 in-class this Friday.
Week 09 - Concurrency#
Goals
- Support asynchronous operations.
-
Lectures
- Threading
- Coroutines
-
Additional Resources
- TBD
Due
- Demo 3 this week! See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- Test 3
- Covers weeks 07 to 09 lectures.
- Closes Fri @ 6 PM. No extensions.
Week 10 - Persistance#
Goal
- Back-end systems including databases and services.
- SQL databases as primary storage.
Lectures
- Data Persistance
- File Storage
- SQL Databases
Additional Resources
- SQLite
- Supabase
Due
- Check-in 6 in-class this Friday.
Week 11 - Web Services#
Goals
- Using online web services.
- Creating and hosting a web service.
Lectures
- Accessing Web Services
- Building a Web Service w. Ktor (OPTIONAL)
Additional Resources
- TBD
Due
- Check-in 7 in-class this Friday.
Week 12 - Wrapup#
Goals
- Address security concerns with online applications.
Lectures
- Auth keys
- Packaging
Additional Resources
- TBD
Due
- Demo 4 this week! See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- Test 4
- Covers weeks 10 to 12 lectures.
- Closes Fri @ 6 PM. No extensions.