ud853 »

Final Project for Android Fundamentals

This document is intended for students enrolled in the Full Course Experience. Students who are taking the free courseware are encouraged to complete the project on their own, but will not submit their work to Udacity for assessment.


Contents

Android Fundamentals Project Description

For students starting the final project now, go to this node for information on the new final project. Students currently building the open-ended app have until September 1, 2015 to submit their final project. Continue reading the instructions below for submission of the open-ended app.

For this project, you will make your own app. You can either come up with your own idea or select from one of the ideas listed under App Ideas. You are welcome to repurpose code from Sunshine to create your new app.

Before you start working on the project

Review the final project rubric at the end of this document carefully. Think about how you will incorporate each of the rubric criterions into your project.

Your project must:

  • Import and build on the latest version of Android Studio (Eclipse users take note)
  • Be entirely self-contained on an Android device (No external devices/bluetooth peripherals).
  • Include only safe-for-work content in your app
  • Meet specifications on all required components of the rubric

Once you are convinced that you understand each part of the rubric, please start working on your project. Remember to refer to the rubric often to ensure that you are on the right track.

App Ideas

  • Food ordering app
  • Teleprompter app
  • Local news app
  • App for your company, university or local club
  • Education app (Just like the Udacity app)
  • Public transit schedule
  • GitHub OSS project tracker
  • Fitness app
  • Music app
  • If you don't already have an idea in mind, you can implement a Reddit Reading app. Here’s a project description for it!

Helpful Resources

You can always look back at the course videos to refresh your Android fundamental concepts. Check out the Android Design Guide for more help on designing Android apps. The downloads page here has PNGs for different screen densities for holo light and holo dark themes for the action bar icons. The Adobe Illustrator source files are also included if you want to style them to match your app. You can also check out Material Design resources there.

Final Project Rubric

Overview

This rubric is here to help you understand the expectations for how your project will be evaluated. It is the same rubric that the person evaluating your project will use. You should look at the rubric before you begin working on this project and before you submit it. The criteria included in this rubric are a subset of the Core App Quality Guidelines that your app would be evaluated against if you submitted it to the Google Play Store. You can find the full list of guidelines here: http://developer.android.com/distribute/essentials/quality/core.html

How Grading Works

  1. Your project evaluator will be able to see all of your code submissions. They will use this rubric to evaluate your code as well as your written responses.
  2. Your grade will simply be "meets specifications," “exceeds specifications,” or "does not meet specifications,"
    1. You earn “meets specifications” if all criteria in the Required Components section “meet specifications”.
    2. You earn “exceeds specifications” if all criteria in the Required Components section “meet specifications” and you receive “exceed specifications” in all criteria under at least 2 of the 4 categories of the Optional Components section.
    3. Your project “does not meet specifications” if any criteria in the Required Components section are graded as “does not meet specifications.” In this case, you will have the opportunity to revise and resubmit your work.

The Rubric

Required Components

To “meet specifications”, your app must fulfill all of the criteria listed in this section of the rubric.

Criteria Does Not Meet Specifications Meets Specifications
Standard Design
App does not redefine the expected function of a system icon (such as the Back button).
App does not redefine or misuse Android UI patterns, such that icons or behaviors could be misleading or confusing to users.
App includes a tablet layout which takes advantage of the additional screen space.
App includes at least two distinct views and uses intents properly to move between these views.
Navigation
App supports standard system Back button navigation and does not make use of any custom, on-screen "Back button" prompts.
All dialogs are dismissible using the Back button.
Pressing the Home button at any point navigates to the Home screen of the device.
Permissions
App requests only the absolute minimum permissions that it needs to support core functionality.
App does not request permissions to access sensitive data or services that can cost the user money, unless related to a core capability of the app.
Performance and Stability
App does not crash, force close, freeze, or otherwise function abnormally on any targeted device.
ContentProvider
App implements a ContentProvider to access locally stored data.

Must implement at least one of the three

If it regularly pulls or sends data to/from a web service or API, app updates data in its cache at regular intervals using a SyncAdapter.

OR

If it needs to pull or send data to/from a web service or API only once, or on a per request basis (such as a search application), app uses an IntentService to do so.

OR

If it performs short duration, on-demand requests (such as search), app uses an AsyncTask.

App uses a Loader to move its data to its views.
User/App State

App correctly preserves and restores user or app state. For example,

  • When a list item is selected, it remains selected on rotation.
  • When an activity is displayed, the same activity appears on rotation.
  • User text input is preserved on rotation.
When the app is resumed after the device wakes from sleep (locked) state, the app returns the user to the exact state in which it was last used.
When the app is relaunched from Home or All Apps, the app restores the app state as closely as possible to the previous state.

Optional Components

To receive “exceeds specifications”, your app must fully implement all of the criteria listed under at least two of the four categories below (e.g. Notifications, ShareActionProvider, Broadcast Events, and Custom Views).

Criteria Does Not Meet Specifications Meets Specifications
Notifications
Notifications do not contain advertising or content unrelated to the core function of the app.
Notifications are persistent only if related to ongoing events (such as music playback or a phone call).
Multiple notifications are stacked into a single notification object, where possible.
App uses notifications only to indicate a context change relating to the user personally (such as an incoming message).
App uses notifications only to expose information/controls relating to an ongoing event (such as music playback or a phone call).
ShareActionProvider
Uses ShareActionProvider to share content with an outside application.
Makes use of Intent Extras to send rich content (i.e. a paragraph of content-specific text, a link and description, an image, etc).
Broadcast Events
App intercepts broadcast events.
App responds to Broadcast events in a meaningful way.
Custom Views
App creates and uses a custom View.
App uses a novel View that couldn’t sufficiently be satisfied by the core Views in Android.

Final Project Submission Instructions

Before you submit:

  1. Once you’re confident that your project “meets specifications” in all of the rubric criteria, go ahead and follow the submission instructions to submit!
  2. If you are using an API key (i.e., an authorization key for a web service, such as Google Play Services) in your project, make sure that you are using a relative path instead of an absolute path (check that you’re not using ~/ in your path). Otherwise, your project cannot compile on anyone else’s machine.

Project Submission Instructions

  1. Create a GitHub repository for your app featuring all source code and assets, if you don’t have one already. If you’re unfamiliar using GitHub, check out the Sunshine to GitHub document and follow similar steps to upload your code from Android Studio. Be sure to upload the the following four items in a separate folder in your repository:

    1. Problem Description
    2. Self-evaluation - Answer the following questions in this document to explain your thought process to the grader and confirm you app meets specifications.
    3. Mockups for all user-facing screens including tablet mockups.
    4. A signed .apk of your app. Instructions to create one are here if you need it.
  2. When you're ready to submit your project go back to your Udacity Home, click on the button to submit your project, and we'll walk you through the rest of the submission process.

If you are having any problems submitting your project or wish to check on the status of your submission, please email us at andfun-project@udacity.com.

After you submit

  1. You will receive a confirmation email from us that your submission was received.  It can take us up to 7 business days to grade a project.
  2. Once a project evaluator has reviewed your project, you will receive an email letting you know and a link to view your evaluation.
  3. If necessary, your evaluator may recommend a few modifications to help your project meet specifications in the rubric. The Final Project is a valuable learning opportunity, so please make the recommended modifications and re-submit until your project meets specifications.
  4. Once your project is evaluated as “Meets Specifications”, we will send you instructions to verify your identity.