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.
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.
Schedule is subject to change.
|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|
|Tuesday, November 28th|
|Thursday, November 30th|
|Tuesday, December 5th|
|Thursday, December 7th|
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.
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).
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.