CS F314 Software Development for Portable Devices

Table of Contents

Introduction

In the current offering of the course, we will focus on developing apps for Android platform using Java. Reasonable proficiency in Java, version controling, UML, and software engineering principles is assumed. Students will be guided through setting up Android Studio and related tools. Through sample apps, students will be exposed to basic concepts of Android apps like Activities and Fragments. Then, building upon those concepts, we will introduce handling data, networking, sensors, etc. Alongside, we will also talk about addressing enterprise requirements in mobile applications, like performance, scalability, testability, accessibility.

Syllabus

Course modules

We will add modules as the semester progresses.

  • Assignments

    HW-0 This ungraded homework gives us an idea of your background that is relevant for this course. Submission Link Due date: n/a; but do it as soon as possible. You cannot start working on programming assignments (A1 onwards) and many in-class activities without submitting this homework.

  • Introduction

    3 class hours Lectures and notes Course introduction Slides Android Platform Slides Part 1 Part 2 Part 3

  • Java/OOP Overview

  • Android Studio Basics

    1 class hour Lectures and notes Slides Part 1 Part 2 Related assignments A0 - Android Studio Setup

  • App Basics

    1 class hour Lectures and notes Slides - app basics Slides - Gradle Layouts Activity, Resources Manifests Build process

  • Testing

    1.5 class hours Lectures and notes Slides TDD and basic setup Your first test case Instrumented UI tests Stress testing using Monkey

  • Accessibility

    2 class hours Lectures and notes Slides Guest lecture by Adv. Uday Warunjikar Introduction to accessibility Using TalkBack for manual testing Using Accessibility scanner

  • Activity Lifecycle

    2.5 class hours Setting the stage Slides Video 1 Video 2 Lifecycle Methods Slides Video 3 Video 4 Video 5 Persist data using ViewModel Slides Video 6 Video 7

  • Intents

    2 class hours Slides and videos Slides Intents basics Launching a second activity Getting result from the launched activity Understanding the back stack and handling the back button Implicit intent example

  • Persistent Data

    2 class hours Slides and videos Slides Shared Preferences Intro to the Room Library Room Database Android Thread Model and Architecture Components Putting it together in the Journal app

  • Fragments and Navigation Component

    1.5 class hours Slides and videos Fragments Slides Part 1 Part 2 Navigation Component Slides Part 1 Part 2

  • Services and Background Tasks

    3 class hours Foreground Services slides Part 1: Services and Notifications Part 2: Broadcasts Background Tasks slides Part 1: background basics and work manager Part 2: Work Manager Constraints Part 3: Alarm Manager

  • UI

    TBA class hours Slides and videos TBA

  • Firebase

    1 class hours Slides and videos Slides

  • Miscellaneous Topics

    5 class hours Menubar and Dialogs slides Permissions slides Content Providers slides Part 1 Part 2 Settings slides Sensors, location, identity slides Part 1 Part 2 Part 3

  • Crossplatform Development

    TBA class hours Slides and videos TBA

FAQs

What are the prerequisites?

Reasonable proficiency in Java, git, UML, and software engineering principles.

If you believe you are not proficient in one or more of these, please talk to me ASAP.

Is this course offered every semester?

No. It may be offered once a year.

Do we need a specific OS or environment for the assignments?

Android apps can be developed on Windows, macOS, or Linux machines. You can test your apps using device emulators - a physical android device is recommended but not required.

Can I audit this course?

According to the Academic Undergraduate Studies department: “[This] is not an audit course. A student can attend the lectures etc. but no grade or entry in the Transcript will be made.”

All lectures are available on the course website. Students can watch those as and when they like.