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.
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.
Schedule is subject to change.
|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|
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.
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.