Mobile application development can be divided in two polarizing camps. First, the native only approach where you have to develop applications specifically for the platform, such as iOS and Android. Second, a web-based approach that allows developers write applications using standards compliant HTML5 concepts that can run on all platforms in web browsers or in native app web view wrappers. There are pros and cons for both approaches as they both offer a different set of trade offs to the developer and the user.
Learn how to not only deploy these apps to run through a web-browser, but also in native app wrappers for iOS and Android.
The instructor does not have an office at SCU. Office hours can be arranged by email or with the instructor in class.
The TA for the course, Pratyusha Joginipally (pjoginipally at scu.edu) will be holding two 2-hour lab sessions per week in the Design Center on Mondays and Wednesdays at 3-5PM. If there is a change to the schedule or location, it will be announced in class and through Camino.
The course leaves it open-ended which editor you wish to use for development. An editor such as TextMate is sufficient. The Chrome web browser will be required for development and debugging.
XCode and Android Developer Tools might be needed for your project. Also, assignment and project code can be run on the simulators for testing.
Recommended (but Optional) Textbooks
By Douglas Crockford Publisher: O’Reilly Media, 2008 ISBN:0596517742
By Addy Osmani Publisher: O’Reilly Media, July 2012 ISBN:1449331815
- WEEK 1: Course introduction. HTML5.
- WEEK 2: Cascading Style Sheets. Desktop vs Mobile. Project Pitching.
- WEEK 4: REST, JSON, APIs. JS design patterns.
- WEEK 6: Ember naming conventions and routing.
- WEEK 7: Ember controllers and components.
- WEEK 8: Ember Data and testing.
- WEEK 9: Optimizing apps for production. iOS development overview and how to include mobile web apps in native app wrappers as a hybrid app.
- WEEK 10: Project demos
Attendance will be noted at the start of class most days. While attendance and overall class participation will not be directly calculated into your grade, they will be considered when deciding the final class grading curve.
Frequent assignments will be given during approximately the 3/4 of the class. These are intended to quickly build your familiarity with developing mobile web applications, and give you the skills you need to complete your class project. Homework is intended to be completed independently – collaboration is not allowed.
Unless otherwise stated, all assignments will be due at 6:00AM before class on the due date. Late assignments will be deducted 1% per minute late, up to a maximum penalty of 50% (in the absence of evidence of extenuating circumstances). No assignments will be accepted after the due date for the final assignment.
The following elements will be considered when grading assignments:
- Correctness: Does the project meet the specified requirements?
- Design/organization: Is the project well organized and maintainable?
- Coding style: Does the project use a consistent and readable coding style?
- Comments: Are there adequate comments present to make the code understandable?
A student’s final grade will be composed of the following elements (weights are approximate):
- Programming assignments: 20%
- Quizzes: 20%
- Project proposal: 5%
- Project checkpoints x2: 5% each
- Final Project Submission: 20%
- Class project Presentation: 5%
- Final Exam: 20%
The grading scale will be on a curve based on the overall quality of work performed.
Students are expected to develop all homework independently. Collaborative work or any use of non-original code requires the consent of the instructor and proper attribution in the source code. Do not share code with other students except on collaborative projects. Students who violate this policy will at least receive 0% on the assignment if not reported to the administration for disciplinary action.