Tour Guide App - project from Android Basics by Google Nanodegree Program in Udacity
The goal is to create a tour guide app which presents relevant information to a user who’s visiting your city. The app can list top attractions, restaurants, public places, or events for the city. It can contain all the best known secrets that only locals know. It’s up to you which categories you want to provide, as well as what information to provide in each category.
This project is about combining various ideas and skills we’ve been practicing throughout the course. They include:
- Planning your app design and navigation before coding.
- Selecting proper data structures to store lists of information.
- Building layouts to display those lists of data.
- Navigating between those lists using intents and multiple Activities or a ViewPager.
- Creating your own custom classes.
- Properly handling images or audio (if applicable).
CRITERIA / MEETS SPECIFICATIONS
Layout
Overall Layout / App contains at least 4 lists of relevant attractions for a location
Navigation / User can navigate between lists using a central screen, a NavDrawer, or a View pager.
List Item contents / Each list item contains information about an event, restaurant, historical site, or similar.
Pictures / At least one list includes pictures of the location.
Layout Best practices / The code adheres to all of the following best practices:
- Text sizes are defined in sp
- Lengths are defined in dp
- Padding and margin is used appropriately, such that the views are not crammed up against each other.
Functionality
Location Object / App contains a custom object for storing location information .
Custom Adapter / App uses a custom adapter to populate the layout with views based on instances of the custom class.
String Storage / All strings are stored in the strings.xml resource file.
Image Storage / All images are stored as drawables. All drawables are stored at multiple densities.
Errors / The code runs without errors.
Code Readability
Readability / Code is easily readable such that a fellow programmer can understand the purpose of the app.
Naming conventions / All variables, methods, and resource IDs are descriptively named such that another developer reading the code can easily understand their function.
Formatting / The code is properly formatted i.e. there are no unnecessary blank lines; there are no unused variables or methods; there is no commented out code. The code also has proper indentation when defining variables and methods.