- Time and location: TuTh 4-5:45, Thimann 1 (note room change)
- The class is on Google Hangouts on the luca@ucsc.edu Google+ account.
- Instructor: Luca de Alfaro
- Office hours: Tuesdays, 1-2, Engineering 2, Rm 339A
- TA: Charles Park
- Tutor: Jesus Magana.
- Discussion group: Piazza (enroll here). Rather than email, we prefer if you post to "instructors" on Piazza, so we (instructor + TAs) can see it.
- Videos of class: On YouTube.
The students produced some amazing Android projects during this class.
- Lecture 1, April 1, 2014. Introduction to the class, some slides on activities, and our very first Android application.
- Lecture 2, April 3, 2014. How to build a simple application. Running example: a kitchen timer.
- Lecture 3, April 8, 2014. Intents, passing information between applications, and storing information in the settings.
- Lecture 4, April 10, 2014. ListView, Json.
- Lecture 5, April 15, 2014. WebView.
- Lecture 6, April 17, 2014. Background threads, http requests.
- Lecture 7, April 22, 2014. Building the web server portion.
- Lecture 10, May 1, 2014. ClassChat application to send messages.
- Lecture 12, May 8, 2014. Services.
- Lecture 13, May 13, 2014. Sensors.
- Lecture 14, May 15, 2014. Drawing.
- Lecture 16, May 22, 2014. Databases on Android, databases on servers.
- Lecture 17, May 27, 2014. Lessons from Android development. Apache Cordova.
Homework will be collaboratively graded using CrowdGrader.
- Homework 0: Install Eclipse and the Android tools. This is not a real homework, but do get started as soon as possible, so you can get help if you run into any issues.
- Homework 1: Due Thursday April 10. Build a kitchen timer!
- Project proposal: Due Thursday April 24.
- Homework 2: Due Thursday, May 1.
- Homework 3: Due Thursday May 22. Services and Sensors.
Instructions for homework submission.
More information will be posted later.
- Textbook: This is optional but quite useful. Professional Android 4 Application Development, by Reto Meier. You can download all the code in the book.
- Laptop/PC. Mac, Windows, Linux are ok. You will need to be able to install Eclipse and the Android SDK. You can also use Android Studio.
- Phone/tablet: There is an Android device requirement for this class (new in 2014). If you are serious about Android development, I highly recommend the Moto G or Nexus 5. These are official or semi-official Google phones, and they are great for development: many other phones, even great ones, can have quirks for developers. Cheap options include the HUAWEI Fusion U8652, and the Kyocera Hydro Prepaid. Many others will work. Quality, and your happiness, will vary.
The class consists in a hands-on introduction to Android application development. You can look at last year's class for sample classes. 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.
- Preferences, saving state.
- How to almost avoid writing an Android application: Webviews.
- Sharing state across activities.
- Using the internet, and background asynchronous processing.
- File access.
- Communication with cloud servers. User authentication, login, data communication.
- Developing web + mobile applications.
- Using cloud APIs.
- Services and working in the background.
- Audio, video, camera, sensors.