- Time and location: TuTh 4-5:45, Porter Acad 148, and on Google Hangouts.
- Instructor: Luca de Alfaro
- Office hours: Tuesdays 1-2:30, or by appointment. Location: E2 339A.
- TA: Paulo Gomes
- Email: pfontain@ucsc.edu (please include "CMPS 121" in the email subject line).
- Office hours: Monday: 2pm-3pm and Thursday: 6pm-7pm. Location: BE 312C/D.
- Discussion group: Piazza (password: androidrocks)
This course is offered also via Google Hangouts On Air. This means that it is broadcast in real-time over Google Hangouts, and that there will be a YouTube video available to all @ucsc.edu students after each class.
- Anyone with a Google+ account can watch the lectures in real time by going to my luca@soe.ucsc.edu Google+ account. When hangouts on air happen, they are advertised on my stream.
- Make sure that your laptop and internet connection meet the requirements for Google Hangout participation.
- While anyone can watch, I need to invite you to be part of the Hangout if you want to participate. This is highly recommended (otherwise, you can only watch, but not ask questions). Please enroll in the Google Hangouts.
- Be aware of the etiquette of Google Hangouts on Air.
Project guidelines have been posted.
All deadlines are 11:55pm PST of the given day, unless otherwise stated.
- Deadline: Friday March 8. Review submissions to Homework 4 (review link). The link will be active once the submission deadline is past.
- Deadline: Tuesday March 12. Homework 5.
- Lecture 1: Introduction to the class, instructions for installing the development environment, and some random announcements.
- Lecture 2: Homework 1, due Thursday January 17. Also: Activities and the UI thread. The Android Manifest. General layout of an application. Basics of building layouts. Simple example of application consisting in a single activity.
- Lecture 3: Producing a signed apk. Intents. How to share information among activities.
- Lecture 4: More on intents and sharing data via intents. ListView and ArrayAdapters. Homework 2 and instructions for grading Homework 1 will be posted here shortly.
- Lecture 5: Homework 2, due Wednesday January 30. Also: Accessing the internet, working in the background.
- Lecture 6: WebView, Json.
- Lecture 7: Git, review of ListView.
- Lecture 8: More on ListView.
- Lecture 9: Databases.
- Lecture 10: Content providers.
- Lecture 11: Connecting to web services, login, etc.
- Lecture 12: Connecting to web services.
- Lecture 13: Location and Maps.
- Lecture 14: Sensors, Photo, and Video.
- Lecture 15: Invited lecture on sensors.
- Lecture 16: Services, custom views.
- Lecture 17: Apache Cordova.
The class consists in a hands-on introduction to Android application development. Topics include:
- Introduction to the class, and to creating mobile applications.
- Basic structure of Android applications.
- How to avoid writing an Android application: Apache Cordova (aka Phone Gap)
- Applications and activities.
- Activities life-cycle and threads of control.
- User interface elements: views, layouts, buttons, widgets.
- Principles of mobile UI design.
- Preferences, saving state.
- Sharing state across activities.
- Using the internet, and background asynchronous processing.
- Webviews, and mixed web-Android development.
- File access.
- Databases and content providers.
- Communication with cloud servers. User authentication, login, data communication.
- Developing web + mobile applications.
- Using cloud APIs.
- Working in the background.
- Audio, video, camera, sensors.
The course will have weekly homeworks, and a class project that can be done either individually, or in groups of up to 4 people. The project consists in developing a native Android app of your choice.