Skip to content

A baking recipe manager featuring step-by-step instructions with video

Notifications You must be signed in to change notification settings

rdalarsen/BakingTime

Repository files navigation

Baking Time

In the third project in the Udacity Android Developer Nanodegree, students are tasked with making a baking app capable of showing a collection of baking recipes for a variety of delicious cakes. Recipes feature ingredients, a step-by-step instructions as well as a video to guide the cook.

App features

The objective of this project is to allow the students to demonstrate having learned a variety of useful Android developer skills, such as:

  • Master-datail flow utilizing fragments on phones and tablets
  • Providing a widget for the user's homescreen
  • Video playback using Exoplayer
  • UI testing using the Espresso testing framework
  • Handling errors and inconsistencies in network APIs
  • Use relevant libraries to alleviate some of the manual, tedious or otherwise error-prone work inherent in Android development

Technical features

Aside from the core project requirements set forth by Udacity, this project stands out by including:

  • MVVM architecture utilizing Google's Architecture Components
    • LiveData
    • ViewModel
    • Room
  • Dagger2 dependency injection
  • Timber for enhanced logging
  • ButterKnife viewbinding
  • Glide image loading
  • Retrofit + Gson for fetching network data as well as JSON deserialization
  • Java 8 language features like lambda's and method references

Attributions

  • General advice on how to use ExoPlayer from this article
  • Much inspiration on MVVM from Google's codelab
  • Info on Room relationships from this article
  • How to set intents on activity under test from this blog post
  • How to write custom matcher for testing background color of a view from this SO answer (adapted)
  • Targeting individual tests for phone and tablet respectively from this article
  • Commit messages format and content from this guide
  • How to make ExoPlayer fullscreen from this article