Go To Today
- Module 1: MVVM Architecture
- Module 2: Presentation & Model Layers
- Module 3: External Interaction
- Module 4: Polishing & Publishing
DOW | Date | ## | Lecture Subject | Reading | Handouts | Notes |
[Top] | ||||||
M | Jan 06 2025 | 00 | Module 1: Introduction to Android & Kotlin | KMAD pp vii - xxvii | Slides (.pdf) |
A0 assigned |
W | Jan 08 2025 | 01 | Module 1: MVVM - View via Compose UI | KMAD pp 4 - 25 (Ch. 1 - 1.3.2), 217 - 227 (Ch. 7 - 7.2) Android Studio Jetpack Compose |
Slides (.pdf) Hello World: Lab00A |
A0 due FP.EP assigned |
F | Jan 10 2025 | 02 | Module 1: Compose Layouts & Modifiers + Resource Strings & Kotlin Basics |
KMAD pp 25 - 44 (Ch. 1.3.3 - 1.4) |
Slides (.pdf) Monster Lab: Lab01A |
|
[Top] | ||||||
M | Jan 13 2025 | 03 | Module 1: MVVM - Model via Kotlin classes | Slides (.pdf) Monster Lab: Lab01B |
Lab00 due A1 assigned |
|
W | Jan 15 2025 | 04 | Module 1: Event Listeners and Recomposing | Slides (.pdf) TempConverter Starter Code (.zip) |
||
R | Jan 16 2025 | FP.EP due |
||||
F | Jan 17 2025 | 05 | Shark Tank | Slides (.pdf) |
FP.ST due FP.TF assigned |
|
[Top] | ||||||
M | Jan 20 2025 | --- No Class --- Martin Luther King Jr. Day --- | ||||
W | Jan 22 2025 | 06 | Module 1: Stateful Composables | KMAD pp 51 - 66 (Ch. 2 - 2.3) State & Jetpack Compose |
Slides (.pdf) TempConverter with Events Code (.zip) Monster Lab: Lab01C |
|
F | Jan 24 2025 | 07 | Module 1: MVVM - Stateless Composables via ViewModel Kotlin collections |
KMAD pp 44 - 49 (Ch. 1.5 - 1.7), 66 - 74 (Ch. 2.4) | Slides (.pdf) TempConverter with Stateful Composables (.zip) Monster Lab: Lab02A |
FP.TF due |
[Top] | ||||||
M | Jan 27 2025 | 08 | Module 2: Presentation & Model Layers and Logic Storyboarding |
Slides (.pdf) Quizler: Lab03A |
FP.AP assigned |
|
T | Jan 28 2025 | Lab01 due |
||||
W | Jan 29 2025 | 09 | Module 2: Activity Life Cycles + Logging | Android Developer Guide: Introduction to Activities |
Slides (.pdf) TempConverter with Stateless Composables & View Model (.zip) Quizler: Lab03B |
|
F | Jan 31 2025 | 10 | Module 2: Saving State with Lifecycle Aware Jetpack ViewModel | KMAD pp 75 - 84 (Ch. 2.5 - 2.7), 405 - 440 (Ch. 12) Jetpack ViewModel |
Slides (.pdf) TempConverter with Logging (.zip) Quizler: Lab03C |
Lab02 due FP.AP due |
[Top] | ||||||
M | Feb 03 2025 | 11 | Module 2: Processes, Tasks, and Saving State with a Bundle Kotlin Abstract Classes |
Slides (.pdf) |
FP.SB assigned |
|
W | Feb 05 2025 | 12 | Module 2: Configurations & Resources | KMAD pp 227 - 247 (Ch. 7.3 - 7.5) | Quizler: Lab04A |
A1 due |
F | Feb 07 2025 | 13 | Module 2: Material Design & Themes | Material Design 3 |
Quizler: Lab04B |
FP.SB due |
[Top] | ||||||
M | Feb 10 2025 | 14 | Module 2: Dynamic Screen Size: Landscape Layouts | Android Developer Guide: Screen compatibility overview |
Quizler: Lab04C |
FP.AR assigned |
T | Feb 11 2025 | Lab03 due |
||||
W | Feb 12 2025 | 15 | Module 2: Compose Navigation via NavGraphs | KMAD pp 145 - 161 (Ch. 5 - 5.3), 249 - 283 (Ch. 8) Jetpack Navigation Navigating with Compose |
Quizler: Lab05A |
A2 assigned |
F | Feb 14 2025 | 16 | Module 2: Compose Navigation with SafeArgs | KMAD pp 161 - 172 (Ch. 5.4) | Quizler: Lab05B |
|
[Top] | ||||||
M | Feb 17 2025 | --- No Class --- President's Day --- | ||||
W | Feb 19 2025 | 17 | Module 2: Accessibility & Bug Tracking via Crashlytics | Crashlytics |
||
R | Feb 20 2025 | Lab04 due |
||||
F | Feb 21 2025 | 18 | Module 2: Compose Scaffold and Menus | Compose Scaffold |
Samodelkin: Lab06A |
|
[Top] | ||||||
M | Feb 24 2025 | 19 | Module 2: Kotlin Coroutines: Scope & Flow | KMAD pp 113 - 144 (Ch. 4), 376 - 379 (Ch. 11.4) Kotlin Coroutines Guide Kotlin Asynchronous Programming Android Coroutines Kotlin Flow API Kotlin Flow Kotlin Flows in Android |
Exam 1 assigned |
|
T | Feb 25 2025 | Lab05 due |
||||
W | Feb 26 2025 | 20 | Module 2: Room Database & SQLite | KMAD pp 181 - 215 (Ch. 6) Jetpack Room |
Samodelkin: Lab07A |
|
F | Feb 28 2025 | 21 | Module 2: Networking & Permissions Part I + WorkManager |
Network Operations Jetpack WorkManager |
Exam 1 due |
|
[Top] | ||||||
M | Mar 03 2025 | 22 | Module 2: RESTful APIs & Retrofit | KMAD pp 85 - 88 (Ch. 3 - 3.2), 93 - 112 (Ch. 3.4 - 3.7) Retrofit COIL |
||
T | Mar 04 2025 | Lab06 due |
||||
W | Mar 05 2025 | 23 | Module 3: Explicit & Implicit Intents | Intents Android Developer Guide: Intents and Intent Filters Android Developer Guide: Manage Package Visibility |
Samodelkin: Lab08A |
A3 assigned |
F | Mar 07 2025 | 24 | Module 3: Returning Data on the Activity Stack | Android Developer Guide: Getting a Result from an Activity Activity Result Contract Android Provided Activity Contracts |
Lab07 due |
|
[Top] | ||||||
M | Mar 10 2025 | 25 | Module 3: Camera Part I: Using a Camera Intent with FileProviders | Samodelkin: Lab09A |
FP.AR due |
|
T | Mar 11 2025 | A2 due FP.AF assigned |
||||
W | Mar 12 2025 | 26 | Module 3: Camera Part II: Embedding CameraX By Asking For Permission | Jetpack Permissions Android Developer Guide: Permissions overview Android Developer Guide: Determine sensitive data access needs Android Developer Guide: Requesting Permission Android Developer Guide: Content Provider Basics Android Developer Guide: CameraX Android Codelab: Getting Started with CameraX |
Lab08 due |
|
F | Mar 14 2025 | 27 | Module 3: Camera Part III: Dual Concurrent Cameras | Android Developer Reference: ConcurrentCamera Android Developers Blog: Dual Concurrent Cameras |
FP.AF due |
|
[Top] | ||||||
M | Mar 17 2025 | --- No Class! --- Spring Break --- | ||||
W | Mar 19 2025 | --- No Class! --- Spring Break --- | ||||
F | Mar 21 2025 | --- No Class! --- Spring Break --- | ||||
[Top] | ||||||
M | Mar 24 2025 | 28 | Module 3: Location | Android Developer Guide: Request location updates Android Developer Guide: Optimize location for battery |
GeoLocatr: Lab10A |
FP.BR assigned |
T | Mar 25 2025 | Lab09 due |
||||
W | Mar 26 2025 | 29 | Module 3: Google Maps | Android Developer Guide: Add maps Maps Compose |
GeoLocatr: Lab10B |
A4 assigned |
F | Mar 28 2025 | 30 | Module 3: Firebase Realtime Cloud DB & User Authentication | KMAD p 88 - 93 (Ch. 3.3) Firebase |
||
[Top] | ||||||
M | Mar 31 2025 | 31 | Module 3: Paging | KMAD pp 365 - 404 (Ch. 11) Jetpack Paging |
Exam 2 assigned |
|
W | Apr 02 2025 | 32 | Module 3: Data Store for App Settings & Configuration | Jetpack DataStore |
GeoLocatr: Lab11A |
|
F | Apr 04 2025 | 33 | Module 3: Compose Scaffold: Informing the User via Dialogs and Snackbars | Exam 2 due Lab10 due |
||
[Top] | ||||||
M | Apr 07 2025 | 34 | Module 3: Compose Scaffold: Drawer Layouts & Floating Action Buttons | FP.BR due |
||
T | Apr 08 2025 | FP.BF assigned |
||||
W | Apr 09 2025 | 35 | Module 3: Compose Side Effects & Splash Screens | Compose Side Effects |
||
R | Apr 10 2025 | FP.BF due |
||||
F | Apr 11 2025 | --- No Class! --- E-Days --- | ||||
[Top] | ||||||
M | Apr 14 2025 | 36 | Module 3: Broadcast Receivers | Android Developer Guide: Broadcast Receiver |
Lab11 due FP.FR assigned FP.WV assigned FP.FT assigned FP.FP assigned FP.FB assigned |
|
T | Apr 15 2025 | A3 due |
||||
W | Apr 16 2025 | 37 | Module 3: Scheduling Notifications | Android Developer Guide: Schedule Alarms AlarmManager Jetpack Notifications |
GeoLocatr: Lab12A |
|
F | Apr 18 2025 | 38 | Module 3: Deep Links | KMAD pp 172 - 177 (Ch. 5.5 - 5.6) Jetpack Compose NavGraph Deep Link |
GeoLocatr: Lab12B |
|
[Top] | ||||||
M | Apr 21 2025 | 39 | Module 4: Unit Testing | KMAD pp 315 - 318 (Ch. 10 - 10.2), 337 - 362 (Ch. 10.4 - 10.6) Android Developer Guide: Fundamentals of Testing |
BeatBox: Lab13A |
Exam 3 assigned |
W | Apr 23 2025 | 40 | Module 4: UI Testing | KMAD pp 319 - 337 (Ch. 10.3) Testing Your Compose Layout |
BeatBox: Lab13B |
|
F | Apr 25 2025 | 41 | Module 4: Dependency Injection via Dagger Hilt | KMAD pp 285 - 313 (Ch. 9) Hilt |
Exam 3 due Lab12 due |
|
[Top] | ||||||
M | Apr 28 2025 | 42 | Module 4: Polishing & Publishing Your App: Material Design & Standards | Android Developer Guide: Publish Your App Material Design |
FP.PS assigned |
|
W | Apr 30 2025 | 43 | Module 4: Android App Bundle (.aab) & Play Asset Delivery (PAD) | Android App Bundle Play Asset Delivery |
||
? | ??? ?? 2025 | Final Project Sales Pitch - Computing Innovation Fair ?:00 PM - ?:00 PM Room TBA |
FP.SP due |
|||
R | May 01 2025 | Last Day To Submit Assignments & Labs | Lab13 due A4 due |
|||
[Top] | ||||||
F | May 02 2025 | FP.FR due FP.WV due FP.FT due |
||||
S | May 03 2025 | Final Project Presentations 08:00 AM - 10:00 AM CK 130 |
FP.FP due FP.FB due FP.PS due |
|||
[Top] |