/udacity-stockhawk

Udacity - Android Developer Nanodegree Program - Project 3: Stock Hawk!

Primary LanguageJavaApache License 2.0Apache-2.0

#Project 3: Stock Hawk!

You will productionize an app, taking it from a functional state to a production-ready state. This will involve finding and handling error cases, adding accessibility features, allowing for localization, adding a widget, and adding a library.

##Why this Project

Stock Hawk gives you an opportunity to diagnose problems and practice improving apps. These skills are vital to building apps users will love.

Diagnosing issues with existing apps is key to working on large apps or continuing projects in Android. Being aware of the common pitfalls in app design frees a developer to produce novel app experiences without making the same mistakes over and over.

##What Will I Learn?

In this project, you will:

  • Diagnose existing issues with an app.
  • Make an app accessible to sight-impaired users.
  • Allow your app to be localized for distribution in other countries.
  • Handle error cases in Android.
  • Add a widget to your app experience.
  • Leverage the functionality of a library in your app.

##How Do I Complete this Project?

You will improve the Stock Hawk app for this project.

You can download the starting code for Stock Hawk from the Stock Hawk repository on GitHub. The app currently finds stock prices from the internet and allows users to add stocks to track.

Your job will be to take the user feedback in the UX Review and implement changes that will make the app production ready.

All of the issues you need to address to meet specifications are hinted at in the UX Review. There are also a few optional ways in which the apps can be improved that are not mentioned in the UX Review.

###Supporting Courses

You should have the skills you need to complete this app after completing Developing Android Apps and Advanced Android App Development.

###Required Tasks

  • Download the app code from the Stock Hawk repository on GitHub.
  • Read the UX Review in the next node.
  • Spend time exploring the current state of the app, looking for ways they could be improved. Be sure to look specifically at issues called out in the UX Review.
  • Execute the improvements!
  • For Nanodegree students: Make a single GitHub repo with your code for the app, and submit it through the Nanodegree portal. See the Submission and Evaluation node for detailed instructions.

##User Feedback for Stock Hawk:

###Hellen says:

"Right now I can't use this app with my screen reader. My friends love it, so I would love to download it, but the buttons don't tell my screen reader what they do."

###Your boss says:

"We need to prepare Stock Hawk for the Egypt release. Make sure our translators know what to change and make sure the Arabic script will format nicely."

###Adebowale says:

"Stock Hawk allows me to track the current price of stocks, but to track their prices over time, I need to use an external program. It would be wonderful if you could show more detail on a stock, including its price over time."

###Gundega says:

"I use a lot of widgets on my Android device, and I would love to have a widget that displays my stock quotes on my home screen."

###Jamal says:

"I found a bug in your app. Right now when I search for a stock quote that doesn't exist, the app crashes."

###Xaio-lu says:

"When I opened this app for the first time without a network connection, it was a confusing blank screen. I would love a message that tells me why the screen is blank or whether my stock quotes are out of date."

Rubric

Required Components

  • Each stock quote on the main screen is clickable and leads to a new screen which graphs the stock's value over time.
  • Stock Hawk does not crash when a user searches for a non-existent stock.
  • Stock Hawk Stocks can be displayed in a collection widget.
  • Stock Hawk app has content descriptions for all buttons.
  • Stock Hawk app supports layout mirroring using both the RTL attribute and the start/end tags.
  • Strings are all included in the strings.xml file and untranslatable strings have a translatable tag marked to false.