Mobile Computing

(Ed discussion site).

Date Topic Assignments
Mon 01/15 Kotlin resources (Java review slides below)

Course summary slides
From Java to Kotlin quick examples
Kotlin basic syntax
Kotlin cheatsheat
Kotlin Koans
Kotlin by example
Kotlin's let, apply, also, with and run functions   (and VIDEO)
Kotlin idioms
Kotlin nested and inner classes
Kotlin docs
Android studio will convert Java files and pasted Java code to Kotlin

Mon 01/15 Course slides

Course summary slides
Android SQLite
Dealing with JSON
Maps

Tue 01/16 Course Intro, Kotlin introduction, App overview

HW: What are your goals for this course? (undergrad course only)
What is Android?
For course videos, feel free to listen at 1.25x or 1.5x, the Global Speed controller plugin for Chrome gives you even more control
Video: Creating a simple Android app in Kotlin
Video (older, screen only): Creating a simple Android app in Kotlin
Screen Video: How to use Android studio and debugging tips
Video: Philosophy of learning programming

Thu 01/18 GUI widgets and layout

HW due one minute before noon -- What are your goals for this course (in canvas)?
HW 0 out (see canvas)
HW 1 (Peck) (in canvas)
Video demo of Homework 1 Peck
Android Docs: Constraint Layout
External: Constraint layout chains
Android Docs: View Binding
Video: Widgets
Video tutorial: Linear and Constraint layouts
Video tutorial: Icons and Images

Tue 01/23 Android idioms in Kotlin. Lambdas. Debugging.

HW 0 due 12:30pm
Video: Lambda functions in Kotlin
Video: Basic View Binding
Video: View Binding (Demo)
Video: Andriod history: Finding views
Video: Short tour of a gradle file

Thu 01/25 Flipped classroom - Layout

Watch the video and look at web pages BEFORE class
Video: Layout flipped classroom (FC0 - layout) requirements
Android Docs: Linear Layout
Android Docs: Linear Layout weights
Android Docs: Constraint Layout details
External Constraint Layout Tutorial

Tue 01/30 Implicit and explicit intents. Activities and their lifecycle.

Android Docs: Implicit intents
Video: Implicit intents
Android Docs: Activity lifecycle
Android Docs: Intents
Android Docs: Intent with result
Android Docs: addMenuProvider
Video tutorial: Explicit intent example

Thu 02/01 Flipped classroom - Activities and Intents

Watch the video BEFORE class
Video: FC1 - Intents and activities
Video: older FC1 that goes over the code more

Fri 02/02

HW 2 Fling out (in canvas)
Video demo of HW 2 Fling

Tue 02/06 Recycler view

Video: RecyclerView slides
Video: RecyclerView code walk through part 1
Video: RecyclerView code walk through part 2 (Adapter)
Video: RecyclerViewDiff code walk through
Android docs: RecyclerView
External: Recycler View parts and functionality

Wed 02/07

Homework 1 Peck due at 11:59pm

Thu 02/08 Flipped classroom - RecyclerView

Video RecyclerView Flipped classroom demo
Video: RecyclerView and ViewHolder
External tutorial on RecyclerView
Android Docs: RecylerView and Cards
External page on RecylerView and ViewHolder and ViewBinding

Tue 02/13 Fragments, ViewModel, Navigation

Android Docs: Fragments
ViewModel Overview
Video: Fragments, Navigation, ViewModel for recycler view lists
Android docs: Navigation getting started
Android docs: NavigationUI

Thu 02/15 Flipped classroom - Fragments and Navigation

Video: Fragment flipped classroom
Android docs: Navigation getting started
Android docs: Navigate to a destination
Android docs: SafeArgs example

Tue 02/20 ViewModel, LiveData, Model-View-Viewmodel (MVVM)

Screen video: FilterClock demo
Android docs: LiveData overview
External LiveData
External MVVM on Android
Android docs: Guide to app architecture

Wed 02/21

HW 2 Fling due at 11:59pm
HW 3 Music Player out (in canvas)
Screen Video: HW 3 media player demo

Thu 02/22 Flipped classroom - ViewModel and LiveData

Video: FC LiveData and ViewModel demo
Video: Coroutines and Handler/Runnable (AbsurdClock)

Tue 02/27 Network services - Retrofit, JSON

Public APIs
Using Kotlin coroutines with architecture components
External Retrofit and Kotlin coroutines
JSON pretty printer

Thu 02/29 Flipped classroom - network services

Video: trivia game demo and background

Video: JSON tools

Tue 03/05 Firebase authentication and Firestore
Wed 03/06

Homework 3 Music player due at 11:59pm
HW 4 Tetrominoes out (in canvas)
Video: HW4 Demo
Video: Overriding onDraw of a View (DemoDraw)

Thu 03/07 Flipped classroom - Firebase Authentication

Key Principles of Software Architecture
Video: FC firebase demo
Firebase UI for authentication
    older Video: FC firebase console setup
    older Video: FC firebase user setup and demo
        older older Video: SHA-1 certificate fingerprint generation for Android

Tue 03/12 Spring break
Thu 03/14 Spring break
Mon 03/18 Project demo signup (in-person only)

Please sign up now for your project demo on 4/4 (in-person only)

Tue 03/19 Databases and SQL

Relational database and SQL background
SQLite on Android, ContentValues, Cursor, column data (slides)
Design principles for an Android app that interacts with a database
Demo of the Notebook app
The data model for Notebook (with sqlite3 demo)
Code walkthrough of the Notebook app
Implementing ImageRoll in Notebook
SQLiteOpenHelper code walkthrough in Notebook
How to take pictures in Android (slides)
How to take pictures in Android (code)
Android Docs: SQLiteDatabase
External: SQLite tutorial

Wed 03/20

HW 5 Reddit out (in canvas)
Screen video: HW5 Reddit demo

Thu 03/21 Flipped classroom - SQL

Video: SQL FC Demo, including sqlite3

Fri 03/22

Project Ideas Due at start of class

Tue 03/26 Firestore

Referential integrity for Notebook and FireNote
Getting started with Google's Firestore
FireNote functionality demo
The data model for FireNote (with Firebase console demo)
Firebase Storage in FireNote
Code walkthrough of FireNote app
Implementing ImageRoll in FireNote
Most of these links are just the first of a series of pages well worth reading
Firestore
Firestore storage
FirebaseUI

Wed 03/27

Homework 4 Tetrominoes due at 11:59pm

Thu 03/28 Flipped classroom - Photo list

Photolist demo
Screen video explaining the data model for the flipped classroom

Fri 03/29 Anonymous peer review

Anonymous peer review due at 11:59pm

Tue 04/02 Maps

Video: Tutorial on Goole maps in Android
Android map docs
Getting an API key
Watch out for billing

Thu 04/04 Flipped classroom - Maps

PROJECT DEMO (in-person only)
Video: Maps flipped classroom demo
Android docs: Signing apps
Video: Generating a Google API key and using it for maps
Android Docs: Geocoder
MapFragment

Tue 04/09 Databases, comparing Notebook with FireNote

Video: Hex demo
Video: Hex data model
Sign up here for final demo

Wed 04/10 HW5 Due

Homework 5 Reddit due at 11:59pm

Thu 04/11 Catch up, Brent Waters guest lecture
Tue 04/16 Persistent state, shared preferences

Video: Saving state in Android
Data and file storage overview
Android docs: Saving UI states
Android docs: Saved state module for ViewModel
Android: Files
All the things we're doing wrong but take for granted: a retrospective glance at Android development

Thu 04/18 Industry talk, Claire Bingham, Emery Coxe, and Caryn from First Dollar talking about Jetpack Compose
Mon 04/22 Project demos 1:00-6:30pm
Tue 04/23 Project demos
Thu 04/25 Catch up, Brent Waters guest lecture
Fri 04/26 Write up due

Project writeup pdf due on canvas at 12:01pm.

Sat 04/27 Project demos 12:00pm-1:00pm

Last updated: 2024-04-08 17:00:55 -0500 [validate xhtml]