This is the introductory project for the "Grow With Google" scholarship Udacity/Google Android Developer Nanodegree program, where you complete the "Sandwich Club" app's starter code and submit it for review, just to ensure that as everyone starts the Nanodegree program they are on the same page as far as understanding the process of completing projects according to requirements, and correctly submitting them for review and making any requested changes afterward. #GoogleUdacityScholars #GrowWithGoogle
In this project, you will complete the Sandwich Club app to show the details of each sandwich once it is selected.
Building a layout and populating its fields from data received as JSON is a common task for Android Developers. Although JSON parsing is usually done using libraries, writing the JSON parsing for this project will help you to better understand how it is processed.
Through this project, you will:
- Learn how to submit projects for review
- Practice JSON parsing to a model object
- Design an activity layout
- Populate all fields in the layout accordingly
- Download the Sandwich Club app starter code.
- Design the layout for the detail activity so the different elements display in a sensible way.
- Implement the JSON parsing in JsonUtils so it produces a Sandwich Object that can be used to populate the UI that you designed.
- App is written solely in the Java Programming Language
- App conforms to common standards found in the Android Nanodegree General Project Guidelines NOTE: It is okay if the app does not handle rotation properly or does not restore the data using onSaveInstanceState/onRestoreInstanceState)
- JSON data is parsed correctly to a Sandwich object in JsonUtils
- JSON is parsed without using 3rd party libraries
- DetailActivity shows all Sandwich details correctly
- Detail layout includes a ScrollView so all the details are visible in small screen devices
- Sandwich details are shown in a sensible layout. For example, ingredients appear next to the ingredients label
- 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 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.
- App does not redefine or misuse Android UI patterns, such that icons or behaviors could be misleading or confusing to users.
- 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.
- (N/A) App correctly preserves and restores user or app state, that is, student uses a bundle to save app state and restores it via onSaveInstanceState/onRestoreInstanceState. 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.
- Maintains list items positions on device 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.
- App does not crash, force close, freeze, or otherwise function abnormally on any targeted device.
- All content is safe for work content.
- (N/A) App adheres to the Google Play Store App policies.
- App’s code follows standard Java/Android Style Guidelines.