INFO 448: Android Development (A17)
INFO 448: Android Development (A17)
Just joining us? Start by doing the following:
- Fill out the intro survey
- Read through the course syllabus (this page) and the course policies
- Join the class Slack team! Feel free to say hello :)
- If you somehow haven't yet, sign up for GitHub. I recommend using your name or UW NetID as a username.
- Install required development software:
TA Arden Kim, email@example.com
Software development for mobile devices has special needs and challenges. Devices are constrained in many ways, including a limited display size, processor speed, amount of storage, energy budget, as well as sporadic network connectivity. Yet mobile devices also have a wider variety of available sensors than many desktops, including cameras and microphones, alongside location and motion sensors. This allows for significantly different usage patterns and capabilities, all of which affect application development.
This course will introduce you to the tools, language, software architectures, and user interface requirements needed to develop applications for Android phones, tablets, and other devices. You will build small to mid-sized Android applications using the Java language, addressing the implementation of user interfaces and interactivity, networking, sensor access, and data storage and retrieval.Prerequisites: CSE 143; INFO 343 or equivalent.
After completing this course, students will be able to:
- Utilize development tools and IDEs to implement Android applications
- Understand the fundamental components and lifecycle of an Android application
- Specify user interfaces for applications through a variety of interactive widgets and modalities
- Harness sensors common to mobile device in applications
- Develop applications that work across a heterogeneous set of devices
- Be familiar with patterns used in industry for the development of Android applications.
This course aims to help you develop practical skills implementing applications using the Android framework, so activities will be targeted at these programming activities.
Lectures will be used to introduce and demonstrate topics, providing a basic for assignments. Lectures will primarily follow a "tutorial/walkthrough" approach, demonstrating how to implement particular components of an application, while providing you a chance to experiment with techniques. The best way to learn is to participate and "code along" with the class demos. I expect you to ask questions, experiment with variations, and otherwise "be all in" with the course.
Note that lecture explanations and tutorials will also be available in the Lecture Notes available online. I encourage you to read the relevant sections of the text before lecture when possible, and be ready to ask questions about concepts that are unclear!
Find complete assignment details and due dates on the Assignments page.
Lab sections will involve small implementation exercises used to either practice/review concepts from lecture, or to explore supplementary aspects of Android development. You will be expected to complete each exercise (including finishing at home if necessary).
Find complete lab details and due dates on the Assignments page.
You will also be completing a group project (developing an application of your choice) at the end of the course. See the relevant assignments for more details.
Course policies (including grading and late work policies) are on the Policies page.
This course will cover topics following the approximate schedule below (subject to change):
|0||Intro to Android Development||Ch 1, Appendix A|
|1||Activities & Layouts||Ch 2-3|
|2||Interactive Views||Ch 4-5|
|3||Fragments & Intents||Ch 6-7|
|4||Notifications & Settings||Ch 8-9|
|5||Data Storage||Ch 10-11|
|6||Location & Services||Ch 12|
|8||Touch Interactions||Ch 15|
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.