COMP 150-MOB: Mobile Development

Tufts University Department of Computer Science, Fall 2016

Overview

Mobile has an enormous impact on our lives and it is linking virtually the entire human population. Students will work in pairs to design, implement, test, publish, and support mobile applications including web-based APIs. The Android mobile platform will be predominately used. Topics include constraints in mobile development, app lifecycle, permissions model, widgets, layouts, event handling, 2D graphics, networking, geolocation, threat landscape. There will also be an exercise to reverse engineer mobile apps. Lower-level topics including the Android kernel and the radio layer will also be discussed.

Instructor

Teaching Assistants

Class Time and Location

Prerequisites

Textbook

Software Downloads

  1. Java Development Kit (JDK)
  2. Android Studio

Assessment

What is the Engineering Notebook and Why For This Class?

This semester, I am requiring each team to maintain a engineering notebook. This engineering notebook shall be in electronic format and be made online, one notebook per team. The notebook can be in form of a blog (e.g., Tumblr, GitHub, WordPress), thus an engineering blog --social media (e.g., via Twitter, Facebook, Snapchat) is not acceptable. Many professional engineers and engineering teams maintain notebooks for good reasons:

On top of these reasons, I want:

You may argue that a Git commit history serves the same purpose. However, Git commit history is largely for the source code. This course is much more than just writing code. Example: you will be drawing and communicating visuals.

At least one entry in your engineering notebook is required each week. At the very least, your team will need to highlight the wins and fails of the week, and plans for the upcoming weeks. It goes without saying: each entry notebook must have a date.

References

  1. Android API Guide

Syllabus

Topics of Discussion:

Schedule is subject to change.

Date Agenda Deliverables
Tuesday, September 6th Course Introduction
Thursday, September 8th The Basics: Activities, Activity Lifecycle, UI Views, Widgets, Android.R  
Tuesday, September 13th The Tools: Debugging and Profiling  
Thursday, September 15th  
Tuesday, September 20th Layouts and Adapters Leg 2 Opened: Basic Foundation of Your App, Due on Thursday, September 29th
Thursday, September 22nd Networking, Web Services, and Asynchronous Task  
Tuesday, September 27th Services and Geolocation  
Thursday, September 29th Check-In Day
Tuesday, October 4th Guest Speaker: Greg Raiz (E '98), Founder and CEO of Raizlabs Leg 3 Opened: Build Minimum Viable Product (MVP) of App, Lightning Tech Talk. Thursday, October 13th into following week.
Thursday, October 6th Work Day  
Tuesday, October 11th Broadcast Messages, Broadcast Receivers, and Intents  
Thursday, October 13th Work Day Tufts Polyhack 2016: Friday, October 14th to Saturday, October 15th
Tuesday, October 18th Lightning Talks Leg 4 Opened: Testing and Basic Security Audit of Your App (MVP), Due on Halloween
Thursday, October 20th  
Tuesday, October 25th Guest Speaker: Ramon Harrington, ‎Principal Software Engineer at VistaPrint  
Thursday, October 27th Production  
Tuesday, November 1st Work Day Leg 5 Opened: Launch App to the Google Play Store. Deadline: Thursday, November 10th
Thursday, November 3rd Work Day  
Thursday, November 10th Native Release Enginering at TripAdvisor. Guest Speaker: Sassa Chaleva, ‎Senior Software Engineer at TripAdvisor Leg 6 Opened: Get Customer Feedback on Your App; App Review and Code Review of Other Teams' Apps
Tuesday, November 15th Customizing Android Layouts. Guest Speaker: Adam Dziki, ‎Senior Android Engineer at Fitbit  
Thursday, November 17th    
Tuesday, November 22nd NO CLASS  
Tuesday, November 29th   Leg 7: Update App on Google Play Store and a Reflection
Thursday, December 1st Reverse Engineering  
Tuesday, December 6th NO CLASS  
Thursday, December 8th Course Evaluations and Reflection  

Course Policies

Electronic Devices

Laptops or mobile devices are not allowed to be used in class unless specified. Phones must be silent. You are allowed to politely step outside of the class to take phone calls (e.g., for emergencies, job offers).

Project Late Policy

Projects are due on the date and time they are specified. Unlike my other courses, "homework tokens" are not used in this course. There is a three day grace period to submit projects. For example, if a project is due on October 1st, you will have until October 4th to submit the project. Submitting after the grace period will mean no credit for project.

Intellectual Property

The intellectual property rights of any work produced by any student in this course rests with the student. I will not have any part of your endeavors.