StockHawk was created as basic starter code for Udacity. It will replace the original Project 3 in the Android Nanodegree.
The purpose of the app is to provide a basic interface that displays some API data. The app uses the Yahoo quotes API to display stock quotes. I also utilized William Chart so students could graph data in some way. The app uses other various libraries to make this a bit easier. The purpose of StockHawk is not to reinvent the wheel, just get a basic app up and running and prove that certain things could be done so that students can get some practice taking a mediocre app and turning it into a production level app.
One neat thing about this app was using GCMTaskService for the first time. I wanted to schedule the app to update every hour so that when students create a widget, they would have fairly recent data. However, I didn't want to write the code for a SyncAdapter and I didn't want to use an AlarmManager. This was a good learning experience for me as well as Udacity students!
This code is made for Udacity students to build upon. I built the app out to what we expect from students and so we make the repository private. As a result I can't share the code publicly. My apologies!
I created SchematicPlanets for a Udacity Webcast for Android Nanodegree students. It's a simple sample application built for showing students how to implement the content provider library "Schematic," created by SimonVT. Implementing a content provider from scratch is a useful skill, however, it can be very code intensive. Content provider libraries can be great for simple applications or rapid prototyping and thus I created an example as a guide for implementing this particular library.
The app has a list of planets in our solar system. The user can swipe to delete planets (or rather non-planets) from the list. Incase you change your mind the planets aren't officially deleted, but rather archived. This way you can add deleted planets back should decide to do so. UI wasn't a focus in this app so it isn't much to look at.
I made Flavors for a webcast on content providers for Udacity students (this was made prior to the webcast on content provider libraries).
Content providers can be tricky to code up from scratch, especially for someone new to Android. However, they are essentially and understanding how they work is really important in my opinion.
Once again, UI was not the focus here. This app is pretty simple, I load up some statically defined data on the Android flavors into a content provider. Then I ask the content resolver for that data and display it in a GridView (this was a double edged sword to also show students how to work with a GridView). If you click one of the flavors, it opens a new Fragment that shows some data found by querying for an individual ID. The unique content URI for that particular spot in content provider is also shown to give an idea of the structure of a content URI.
I built Udacity Push as an internal tool for Udacity. We wanted Nanodegree leaders to be able to source outside information that would be relevant to the Nanodegree students and send them a push. Previously this was not possible because to you needed special access to send pushes and that access also allowed to access lots of other things aside from pushes. It would have been potentially problematic to provide everyone access because there was the possibility that they might mess up the other stuff. Not to mention it was a bit of a pain to set up pushes anyway.
I built up this "Push interface," if you will, to provide people access to the push notifications only and also make creating a push a little easier by specifying the information relevant to us.
The app has two features, one is to send just a push notification. The other is adding a relevant article or research paper link to the students' news feeds. You can also send a push about the link in conjunction with the item being added to the news feed.
I spend most of my time on Android, however, Android is next to useless for our internal tools (for now). Pretty much it's web or nothing. I can't share the code because this is an internal tool but I created the app using Express, JavaSript, and Bootstrap for the UI. Speaking of the UI, it's obviously not that good! I'm not much of a web designer. I try to learn better design practices here and there when I can but it's been low on the list recently. Definitely something I need to work on.