Mobile Computing

(Piazza course site).

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

Course summary slides
From Java to Kotlin quick examples
Kotlin cheatsheat
Kotlin Koans
Idiomatic Kotlin
the tldr; on Kotlin's let, apply, also, with and run functions
Video: Kotlin - Apply, Let, Run, With, Also - Higher Order Standard Functions
Kotlin idioms
Kotlin nested and inner classes
Kotlin references
Android studio will convert Java files and pasted Java code to Kotlin
Maven repository for checking library version numbers

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

HW due: What are your goals for this course?
What is Android?
For course videos, feel free to listen at 1.25x or 1.5x, the video 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
Video: Philosophy of learning programming

Thu 01/23 GUI widgets and layout
[pdf 1]
[pdf 2]

HW What are your goals for this course?
HW 0 out
HW 1 (Fling) out
Video: HW 1 Fling (Demo)
External: Constraint layout chains
Video: Widgets
Video tutorial: Linear and Constraint layouts
Video tutorial: Icons and Images

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

HW 0 due 12:30pm
HW 1 demo
Video: Lambda functions in Kotlin

Thu 01/30 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: Constraint Layout
External Constraint Layout Tutorial

Tue 02/04 Implicit and explicit intents. Activities and their lifecycle.
[pdf 1]
[pdf 2]
[pdf 3]

Android Docs: Implicit intents
Video: Implicit intents
Android Docs: Activity lifecycle
Android Docs: Intents
Video tutorial: Explicit intent example

Wed 02/05

Homework 1 Fling due at 11:59pm
HW 2 Peck out
Video demo of Homework 2 Peck

Thu 02/06 Flipped classroom - Activities and Intents

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

Tue 02/11 List view, Recycler view

Video: Introduction to ListView
Video: Introduction to RecyclerView
Android docs: RecyclerView
    Older Video: ListView with custom Adapter and XML layout
External ListView and ArrayAdapter

Wed 02/12

HW 3 Music Player out

HW 2 Peck due at 11:59pm
Video: HW 3 media player demo
Video: Debugging tips

Thu 02/13 Flipped classroom - ListView/RecyclerView

Video ListView/RecyclerView flipped classroom demo
Video: RecyclerView and ViewHolder
External tutorial on RecyclerView
Android Docs: RecylerView and Cards

Sun 02/16

HW 3 Music Player out
Video: HW3 demo

Tue 02/18 Fragments, ViewModel, LiveData
[pdf 1]
[pdf 2] [pptx 2]

Android Docs: Fragments
ViewModel Overview
    Old Video: MasterDetail Fragment example

Thu 02/20 Flipped classroom - Fragments

Video: Fragment flipped classroom
Android docs: Parcelables and Bundles
Fragment transaction

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

Homework 3 Media player due at 11:59pm
HW 4 Tetrominoes out
Video: HW4 Demo
Video: Overriding onDraw of a View (DemoDraw)
Video: Filter list demo
LiveData overview
External LiveData
External MVVM on Android
Android docs: Guide to app architecture

Thu 02/27 Flipped classroom - ViewModel and LiveData

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

Tue 03/03 Network services - Retrofit, JSON

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

Thu 03/05 Flipped classroom - network services

Video: trivia game demo and background
Video: JSON tools

Mon 03/09

HW 5 Reddit out
Video: HW 5 Reddit demo

Tue 03/10 Firebase authentication and Firestore
Wed 03/11

Homework 4 Tetrominoes due at 11:59pm

Thu 03/12 Flipped classroom - Firebase Authentication

Project Ideas Due at start of class
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/17 Spring break
Thu 03/19 Spring break
Tue 03/24 Spring break II
Thu 03/26 Spring break II
Tue 03/31 Databases and SQL
[pdf 1] [key 1]
[pdf 2]

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

Thu 04/02 More Databases and SQL
Mon 04/06 Anonymous peer review

Anonymous peer review due at 11:59pm

Tue 04/07 Flipped classroom - SQL

Video: SQL FC Demo, including sqlite3

Thu 04/09 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 storage

Tue 04/14 Flipped classroom - Firestore

Video: Demo of Firechat FC
Video demo for setting up Firestore
Video explaining the data model for the flipped classroom

Thu 04/16 Maps
[pdf 1]
[pdf 2]

Video: Tutorial on Goole maps in Android
Sign up here for a brief demo (on Thursday 04/23)
Android map docs
Getting an API key
Watch out for billing

Tue 04/21 Flipped classroom - Maps

Video: Maps flipped classroom demo
Android docs: Signing apps
Video: Generating a Google API key and using it for maps
Android Docs: Geocoder

Thu 04/23 Persistent state, shared preferences

Video: Saving state in Android
Sign up here for final demo
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

Tue 04/28 Navigation library, dynamic layouts

Comparing fragment transactions and the Navigation library
Dynamic layout example
Android: Getting started with Navigation
Android: Passing data in navigation

Thu 04/30 Schedule slack, project help
Tue 05/05 Claire Bingham, Pat McCarthy, Jonathon Chu, and Matt Wear from VRBO - GraphQL And Apollo

Hard copy due at the start of your demo

Thu 05/07 Project demos 12:30pm-4:30pm

Project writeup pdf due on canvas at 12:01pm.:hw/writeup.html
HW5, FC7, FC8, FC9 all due at 11:59pm

Last updated: 2020-10-09 10:46:10 -0500 [validate xhtml]