CSCI 448 - Mobile Application Development

Spring 2025 - Schedule

Go To Today

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
Hello World: Lab00A
A0 due

Final Project
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
Monster Lab: Lab01A
[Top]
M Jan 13 2025 03 Module 1: MVVM - Model via Kotlin classes Slides (.pdf)

Monster Lab
Monster Lab: Lab01B
Hello World
Lab00 due
Pizza Party
A1 assigned

W Jan 15 2025 04 Module 1: Event Listeners and Recomposing Slides (.pdf)

TempConverter Starter Code (.zip)
R Jan 16 2025 Final Project
FP.EP due
F Jan 17 2025 05 Shark Tank Slides (.pdf)

Final Project
FP.ST due

Final Project
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
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
Monster Lab: Lab02A
Final Project
FP.TF due
[Top]
M Jan 27 2025 08 Module 2: Presentation & Model Layers and Logic

Storyboarding
Slides (.pdf)

Quizler
Quizler: Lab03A
Final Project
FP.AP assigned
T Jan 28 2025 Monster Lab
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
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
Quizler: Lab03C
Monster Lab
Lab02 due
Final Project
FP.AP due
[Top]
M Feb 03 2025 11 Module 2: Processes, Tasks, and Saving State with a Bundle

Kotlin Abstract Classes
Slides (.pdf)

Final Project
FP.SB assigned
W Feb 05 2025 12 Module 2: Configurations & Resources KMAD pp 227 - 247 (Ch. 7.3 - 7.5) Quizler
Quizler: Lab04A
Pizza Party
A1 due

F Feb 07 2025 13 Module 2: Material Design & Themes Material Design 3
Quizler
Quizler: Lab04B
Final Project
FP.SB due
[Top]
M Feb 10 2025 14 Module 2: Dynamic Screen Size: Landscape Layouts Android Developer Guide: Screen compatibility overview
Quizler
Quizler: Lab04C
Final Project
FP.AR assigned
T Feb 11 2025 Quizler
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
Quizler: Lab05A
Tic Tac Toe
A2 assigned

F Feb 14 2025 16 Module 2: Compose Navigation with SafeArgs KMAD pp 161 - 172 (Ch. 5.4) Quizler
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 Quizler
Lab04 due
F Feb 21 2025 18 Module 2: Compose Scaffold and Menus Compose Scaffold
Samodelkin
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
´xam
Exam 1 assigned
T Feb 25 2025 Quizler
Lab05 due
W Feb 26 2025 20 Module 2: Room Database & SQLite KMAD pp 181 - 215 (Ch. 6)

Jetpack Room
Samodelkin
Samodelkin: Lab07A
F Feb 28 2025 21 Module 2: Networking & Permissions Part I
+
WorkManager
Network Operations

Jetpack WorkManager
´xam
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 Samodelkin
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
Samodelkin: Lab08A
Android Movie Database
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
Samodelkin
Lab07 due
[Top]
M Mar 10 2025 25 Module 3: Camera Part I: Using a Camera Intent with FileProviders Samodelkin
Samodelkin: Lab09A
Final Project
FP.AR due
T Mar 11 2025 Tic Tac Toe
A2 due


Final Project
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
Samodelkin
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
Final Project
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
GeoLocatr: Lab10A
Final Project
FP.BR assigned
T Mar 25 2025 Samodelkin
Lab09 due
W Mar 26 2025 29 Module 3: Google Maps Android Developer Guide: Add maps

Maps Compose
GeoLocatr
GeoLocatr: Lab10B
WeathrTrackr
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
´xam
Exam 2 assigned
W Apr 02 2025 32 Module 3: Data Store for App Settings & Configuration Jetpack DataStore
GeoLocatr
GeoLocatr: Lab11A
F Apr 04 2025 33 Module 3: Compose Scaffold: Informing the User via Dialogs and Snackbars ´xam
Exam 2 due
GeoLocatr
Lab10 due
[Top]
M Apr 07 2025 34 Module 3: Compose Scaffold: Drawer Layouts & Floating Action Buttons Final Project
FP.BR due
T Apr 08 2025 Final Project
FP.BF assigned
W Apr 09 2025 35 Module 3: Compose Side Effects & Splash Screens Compose Side Effects
R Apr 10 2025 Final Project
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
GeoLocatr
Lab11 due

Final Project
FP.FR assigned
FP.WV assigned
FP.FT assigned
FP.FP assigned
FP.FB assigned
T Apr 15 2025 Android Movie Database
A3 due

W Apr 16 2025 37 Module 3: Scheduling Notifications Android Developer Guide: Schedule Alarms

AlarmManager

Jetpack Notifications
GeoLocatr
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
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
BeatBox: Lab13A
´xam
Exam 3 assigned
W Apr 23 2025 40 Module 4: UI Testing KMAD pp 319 - 337 (Ch. 10.3)

Testing Your Compose Layout
BeatBox
BeatBox: Lab13B
F Apr 25 2025 41 Module 4: Dependency Injection via Dagger Hilt KMAD pp 285 - 313 (Ch. 9)

Hilt
´xam
Exam 3 due

GeoLocatr
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
Final Project
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
Final Project
FP.SP due
R May 01 2025 Last Day To Submit Assignments & Labs BeatBox
Lab13 due
WeathrTrackr
A4 due

[Top]
F May 02 2025 Final Project
FP.FR due
FP.WV due
FP.FT due
S May 03 2025 Final Project Presentations
08:00 AM - 10:00 AM
CK 130
Final Project
FP.FP due
FP.FB due
FP.PS due
[Top]