Skip to content

demur/BakingApp

Repository files navigation

Baking App

Udacity Grow with Google Android Developer Nanodegree Program

Overview

The task was to create an Android Baking application that will allow Udacity's resident baker-in-chief, Miriam, to share her recipes with the world. This application provides users with a step by step baking recipe guide. It lets users seamlessly navigate between steps and stream videos from the URLs given in the stated JSON. As well there is a home screen widget that renders a list of ingredients for the last viewed recipe with no need to reopen the application. The application has separate responsive UI layouts for phones and tablets. Sample mocks provided by Udacity can be found here.

Screenshots

How to work with the project

Just clone this repository or download as an archive and import in Android Studio. This application (optionally) uses Unsplash API to retrieve random covers for recipe cards. You can provide Your API key to see those images, just replace <Your_Unsplash_API_key> in: /gradle.properties

Project Requirements

Common

  • App is written solely in the Java Programming Language
  • App utilizes stable release versions of all libraries, Gradle, and Android Studio

General App Usage

Components and Libraries

  • Application uses Master Detail Flow to display recipe steps and navigation between them
  • Application uses Exoplayer to display videos
  • Application properly initializes and releases video assets when appropriate
  • Application should properly retrieve media assets from the provided network links. It should properly handle network requests
  • Application makes use of Espresso to test aspects of the UI
  • Application sensibly utilizes a third-party library to enhance the App's features. That could be helper library to interface with Content Providers if you choose to store the recipes, a UI binding library to avoid writing findViewById a bunch of times, or something similar

Homescreen Widget

  • Application has a companion homescreen widget
  • Widget displays ingredient list for desired recipe

What have I learnt?

  • Using Exoplayer to play media files
  • Adding a widget to an app experience
  • Leveraging third-party libraries in an app
  • Using Fragments to create a responsive design that works on phones and tablets

Libraries

  • AndroidX previously known as 'Android support Library'
  • Retrofit 2 type-safe HTTP client by Square, Inc.
  • Gson helps with serialization/deserialization of Java Objects into JSON and back
  • Picasso allows for hassle-free image loading
  • ExoPlayer an extensible media player for Android
  • Espresso a testing framework that makes it easy to write reliable user interface tests
  • AndroidUnsplash an interface to get images from Unsplash

License

Copyright 2020 demur

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Udacity Grow with Google Android Developer Nanodegree Program, Baking App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages