This is the second project toward my Android Nano Degree at Udacity. I was excited because this is the first Android project I'm doing completely from scratch. In this stage the specifications were as followed: ● Upon launch, present the user with an grid arrangement of movie posters. ● Allow your user to change sort order via a setting: ○ The sort order can be by most popular, or by top rated ● Allow the user to tap on a movie poster and transition to a details screen with additional information such as: ○ original title ○ movie poster image thumbnail ○ A plot synopsis (called overview in the api) ○ user rating (called vote_average in the api) ○ release date
I needed to use the MovieDB api to fetch the data. I also used Picasso to download the images. The rubric was straightforward and easy to follow. I decided to go a little overboard and wanted to implement a lot of the concepts I learned both in the Scholarship Challenge course and The Big Nerd Ranch Android Development Book.
Though not required, I implemented Fragments, RecyclerView, DataBinding(MVVM), and Parcelable Interface. To do this, I referenced both my Projects in the Challenge Course(Sunshine App) https://github.com/arrmixer/ud851-Sunshine and The Big Nerd Ranch Android Development Book https://github.com/arrmixer/Android. In addition, I used the following resources to help build the project.
Recycler View- https://medium.com/wolox-driving-innovation/the-good-the-bad-and-the-ugly-things-about-the-new-recyclerview-1795df6f94c9
Parcelable- http://www.vogella.com/tutorials/AndroidParcelable/article.html
DataBinding- https://www.bignerdranch.com/blog/descent-into-databinding/ https://developer.android.com/topic/libraries/data-binding/binding-adapters
Http- https://stackoverflow.com/questions/309424/read-convert-an-inputstream-to-a-string
For stage two I had to create a "Favorties" list and persist the data unto a DB. I decided t o use Room with ViewModel and LiveData. Besides Learning from Lesson 12: Android Architecture Components I used the following:
LiveData-
https://developer.android.com/topic/libraries/architecture/livedata#the_advantages_of_using_livedata
https://android.jlelse.eu/android-architecture-components-livedata-1ce4ab3c0466
Room/ViewModel-