CSCI 448 - Mobile Application Development

Spring 2023 - Schedule

Go To Today

DOW Date ## Lecture Subject Reading Handouts Notes
[Top]
W Jan 11 2023 00 Module 1: Introduction to Android & Kotlin KMAD pp vii - xxvii Slides (.pdf)

A0 assigned
F Jan 13 2023 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

FP.EP assigned
[Top]
M Jan 16 2023 --- No Class --- Martin Luther King Jr. Day ---
W Jan 18 2023 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
Lab00 due
F Jan 20 2023 03 Module 1: MVVM - Model via Kotlin classes Slides (.pdf)

Monster Lab
Monster Lab: Lab01B
FP.EP due

Pizza Party
A1 assigned

S Jan 21 2023 FP.ST assigned
FP.TF assigned
[Top]
M Jan 23 2023 04 Module 1: Event Listeners and Recomposing Slides (.pdf)

TempConverter Starter Code (.zip)
T Jan 24 2023 FP.ST due
W Jan 25 2023 05 Module 1: Stateful Composables KMAD pp 51 - 66 (Ch. 2 - 2.3)

State & Jetpack Compose
Slides (.pdf)

Monster Lab
Monster Lab: Lab01C
F Jan 27 2023 06 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)

Monster Lab
Monster Lab: Lab02A
FP.TF due
[Top]
M Jan 30 2023 07 Module 2: Presentation & Model Layers and Logic

Storyboarding
Slides (.pdf)

Quizler
Quizler: Lab03A
FP.AP assigned
T Jan 31 2023 Lab01 due
W Feb 01 2023 08 Module 2: Activity Life Cycles + Logging Android Developer Guide: Introduction to Activities

Slides (.pdf)

TempConverter v2 Snapshot (.zip)

Quizler
Quizler: Lab03B
F Feb 03 2023 09 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)

Quizler
Quizler: Lab03C
Lab02 due
FP.AP due
[Top]
M Feb 06 2023 10 Module 2: Processes, Tasks, and Saving State with a Bundle

Kotlin Abstract Classes
Slides (.pdf)

FP.SB assigned
W Feb 08 2023 11 Module 2: UI & Presentation Logic KMAD pp 227 - 247 (Ch. 7.3 - 7.5) Quizler
Quizler: Lab04A
Pizza Party
A1 due

F Feb 10 2023 12 Module 2: Material Design & Themes Material Design 3
Slides (.pdf)

Quizler
Quizler: Lab04B
FP.SB due
[Top]
M Feb 13 2023 13 Module 2: Dynamic Screen Size: Landscape Layouts Android Developer Guide: Screen compatibility overview
Quizler
Quizler: Lab04C
FP.AR assigned
T Feb 14 2023 Lab03 due
W Feb 15 2023 14 Module 2: Compose Navigation via NavGraphs KMAD pp 145 - 161 (Ch. 5 - 5.3), 249 - 283 (Ch. 8)

Jetpack Navigation
Navigating with Compose
Slides (.pdf)

Quizler
Quizler: Lab05A
Tic Tac Toe
A2 assigned

F Feb 17 2023 15 Module 2: Compose Navigation with SafeArgs KMAD pp 161 - 172 (Ch. 5.4) Slides (.pdf)

Quizler
Quizler: Lab05B
[Top]
M Feb 20 2023 --- No Class --- President's Day ---
W Feb 22 2023 16 Module 2: Accessibility & Bug Tracking via Crashlytics Crashlytics
Slides (.pdf)

R Feb 23 2023 Lab04 due
F Feb 24 2023 17 Module 2: Compose Scaffold and Menus Compose Scaffold
Slides (.pdf)

Samodelkin
Samodelkin: Lab06A
[Top]
M Feb 27 2023 18 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
Slides (.pdf)

Exam 1 assigned
T Feb 28 2023 Lab05 due
W Mar 01 2023 19 Module 2: Room Database & SQLite KMAD pp 181 - 215 (Ch. 6)

Jetpack Room
Slides (.pdf)

Samodelkin
Samodelkin: Lab07A
F Mar 03 2023 20 Module 2: Networking & Permissions Part I
+
WorkManager
Network Operations

Jetpack WorkManager
Slides (.pdf)

Exam 1 due
[Top]
M Mar 06 2023 21 Module 2: RESTful APIs & Retrofit KMAD pp 85 - 88 (Ch. 3 - 3.2), 93 - 112 (Ch. 3.4 - 3.7)

Retrofit

COIL
Slides (.pdf)

T Mar 07 2023 Lab06 due
W Mar 08 2023 22 Module 3: Explicit & Implicit Intents Intents

Android Developer Guide: Intents and Intent Filters

Android Developer Guide: Manage Package Visibility
Slides (.pdf)

Samodelkin
Samodelkin: Lab08A
Android Movie Database
A3 assigned

F Mar 10 2023 23 Module 3: Returning Data on the Activity Stack Android Developer Guide: Getting a Result from an Activity

Activity Result Contract

Android Provided Activity Contracts
Slides (.pdf)

Lab07 due
[Top]
M Mar 13 2023 Class Cancelled FP.AR due
T Mar 14 2023 Tic Tac Toe
A2 due


FP.AF assigned
W Mar 15 2023 25 Module 3: Taking Pictures Part I: Using a Camera Intent with FileProviders Slides (.pdf)

Camera Intent Starter Code (.zip)

Samodelkin
Samodelkin: Lab09A
F Mar 17 2023 26 Module 3: Taking Pictures 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
Slides (.pdf)

FP.AF due

Lab08 due
[Top]
M Mar 20 2023 --- No Class! --- Spring Break ---
W Mar 22 2023 --- No Class! --- Spring Break ---
F Mar 24 2023 --- No Class! --- Spring Break ---
[Top]
M Mar 27 2023 27 Module 3: Location Android Developer Guide: Request location updates

Android Developer Guide: Optimize location for battery
Slides (.pdf)

GeoLocatr
GeoLocatr: Lab10A
FP.BR assigned
T Mar 28 2023 Lab09 due
W Mar 29 2023 28 Module 3: Google Maps Android Developer Guide: Add maps

Maps Compose
Slides (.pdf)

GeoLocatr
GeoLocatr: Lab10B
WeathrTrackr
A4 assigned

F Mar 31 2023 29 Module 3: Firebase Realtime Cloud DB & User Authentication KMAD p 88 - 93 (Ch. 3.3)

Firebase
Slides (.pdf)

[Top]
M Apr 03 2023 30 Module 3: Paging KMAD pp 365 - 404 (Ch. 11)

Jetpack Paging
Slides (.pdf)

Exam 2 assigned
FP.SP assigned
W Apr 05 2023 31 Module 3: Data Store for App Settings & Configuration Jetpack DataStore
Slides (.pdf)

GeoLocatr
GeoLocatr: Lab11A
FP.SP due
F Apr 07 2023 32 Module 3: Compose Scaffold: Informing the User via Dialogs and Snackbars Slides (.pdf)

Exam 2 due
Lab10 due
[Top]
M Apr 10 2023 33 Module 3: Compose Scaffold: Drawer Layouts & Floating Action Buttons Slides (.pdf)

FP.BR due
T Apr 11 2023 FP.BF assigned
W Apr 12 2023 34 Module 3: Compose Side Effects & Splash Screens Compose Side Effects
Slides (.pdf)

R Apr 13 2023 FP.BF due
F Apr 14 2023 --- No Class! --- E-Days ---
[Top]
M Apr 17 2023 35 Module 3: Broadcast Receivers Android Developer Guide: Broadcast Receiver
Slides (.pdf)

Lab11 due

FP.FR assigned
FP.WV assigned
FP.FT assigned
FP.FP assigned
FP.FB assigned
T Apr 18 2023 Android Movie Database
A3 due

W Apr 19 2023 36 Module 3: Scheduling Notifications Android Developer Guide: Schedule Alarms

AlarmManager

Jetpack Notifications
Slides (.pdf)

GeoLocatr
GeoLocatr: Lab12A
F Apr 21 2023 37 Module 3: Deep Links KMAD pp 172 - 177 (Ch. 5.5 - 5.6)

Jetpack Compose NavGraph Deep Link
Slides (.pdf)

GeoLocatr
GeoLocatr: Lab12B
[Top]
M Apr 24 2023 38 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
Slides (.pdf)

BeatBox
BeatBox: Lab13A
Exam 3 assigned
W Apr 26 2023 39 Module 4: UI Testing KMAD pp 319 - 337 (Ch. 10.3)

Testing Your Compose Layout
Slides (.pdf)

BeatBox
BeatBox: Lab13B
F Apr 28 2023 40 Module 4: Dependency Injection via Dagger Hilt KMAD pp 285 - 313 (Ch. 9)

Hilt
Slides (.pdf)

Lab12 due
[Top]
M May 01 2023 41 Module 4: Polishing & Publishing Your App: Material Design & Standards Android Developer Guide: Publish Your App

Material Design
Slides (.pdf)

Exam 3 due

FP.PS assigned
W May 03 2023 42 Module 4: Android App Bundle (.aab) & Play Asset Delivery (PAD) Android App Bundle

Play Asset Delivery
Slides (.pdf)

W May 03 2023 Final Project Sales Pitch - Computing Innovation Fair
6:00 PM - 7:30 PM
Student Center Ballrooms
FP.SP due
R May 04 2023 Last Day To Submit Assignments & Labs Lab13 due
WeathrTrackr
A4 due

[Top]
U May 07 2023 FP.FR due
FP.WV due
FP.FT due
M May 08 2023 Final Project Presentations
3:15 PM - 5:15 PM
CK 130
FP.FP due
FP.FB due
FP.PS due
[Top]