COMP 150-MOB: Mobile Development

Tufts University Department of Computer Science, Fall 2017

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, 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 may also be discussed.

Instructor

Teaching Assistants

Class Time and Location

Prerequisites

Textbook

Basic Software Requirements

  1. Java Development Kit (JDK)
  2. Android Studio
  3. Node.js

Assessment

What is the Engineering Notebook and Why For This Class?

Each team is required to maintain a publicly accessible 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 starting week ending September 22nd. At the very least, your team will need to highlight the wins and fails of the week, and plans for the upcoming weeks. 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 5th
Thursday, September 7th  
Tuesday, September 12th  
Thursday, September 14th Work Day  
Tuesday, September 19th Review and Discussion of Tiny App Project  
Thursday, September 21st Android Security Model  
Tuesday, September 26th Semester Project Proposals Semester Project, Leg 2 Assigned: Basic Foundation of Your App, due Thursday, October 5th
Thursday, September 28th Networking, Services, Asynchronous Task, Geolocation
Tuesday, October 3rd  
Thursday, October 5th Presentations: Wireframes, Architecture, and APIs Semester Project, Leg 3 Assigned: Lightning Tech Talk, Build Minimum Viable Product (MVP) of App, due Thursday, October 26th
Tuesday, October 10th  
Thursday, October 12th Tufts Polyhack, Friday October 13th (5 PM) to Saturday October 14th (3 PM) at 574 Boston Ave (CLIC). Register: https://roam1.typeform.com/to/Ke9bGC
Tuesday, October 17th Lightning Talks  
Thursday, October 19th  
Tuesday, October 24th Native Release Enginering at TripAdvisor. Guest Speaker: Sassa Chaleva, ‎Senior Software Engineer at TripAdvisor  
Thursday, October 26th  
Tuesday, October 31st Semester Project, Leg 4 Assigned: Testing and Basic Security Audit of Your App (MVP), due Thursday, November 9th
Thursday, November 2nd    
Tuesday, November 7th NO CLASS  
Thursday, November 9th   Semester Project, Leg 5 Assigned: Launch App to the Google Play Store, soft deadline Friday, November 17th
Tuesday, November 14th    
Thursday, November 16th    
Tuesday, November 21st NO CLASS Semester Project, Leg 6 Assigned: Get Customer Feedback on Your App; App Review and Code Review of Other Teams' Apps, soft deadline Friday, December 1st
Tuesday, November 28th    
Thursday, November 30th   Semester Project, Leg 7 Assigned: Update App on Google Play Store and a Reflection
Tuesday, December 5th    
Thursday, December 7th    

Course Policies

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.

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.