Skip to content

Loading status Bar app is the third project in the Android Kotlin Nanodegree Program from Udacity.

Notifications You must be signed in to change notification settings

filipebezerra/loading-status-bar-app-android-kotlin

Repository files navigation

Loading status Bar App Project

Project Overview

Loading status Bar app is the third project in the Android Kotlin Nanodegree Program from Udacity. It showcases primarily how to create a custom View for Android using Kotlin language.

Also it showcases how to add awesome animations with Property Animation system using APIs such as ValueAnimator, ObjectAnimator and AnimatorSet.

Also it showcases how to use (MotionLayout)[https://developer.android.com/training/constraint-layout/motionlayout] to help make a UI expressive and easy to use.

Also it showcases how to properly communicate with user through Notificatinos including APIs for newer Android versions also mantaining compatibility with prior versions.

Project Specification

General

CRITERIA MEETS SPECIFICATIONS
Code compiles and runs without errors. The app should b cloned from Github, opened in local Android Studio and run on a device

Custom View

CRITERIA MEETS SPECIFICATIONS
Customize and display of information using canvas with desired color and style
  • A custom button is created by extending View and custom attributes like background and text colors, etc are assigned to it.
  • At least 2 custom attributes like background and text colors, etc are assigned to the button.
    • Text and background are drawn using canvas
Animate UI elements with property animations to provide users with visual feedback in an Android app The custom button properties like background, text and additional circle are animated by changing the width, text, and color

Notifications

CRITERIA MEETS SPECIFICATIONS
Send contextual messages using notifications to keep users informed

At least 2 types of contextual messages are displayed to the user: toast and notification

The toast is displayed inside the app

The notification is created and displayed in the status bar

Add custom functionality to the notifications A button is added to the notification which opens in a separate screen and custom values are passed to it

MotionLayout

CRITERIA MEETS SPECIFICATIONS
Use declarative XML with MotionLayout to coordinate animations across multiple views MotionLayout is used to enhance the user experience when switching activities

Showcase

Live Running

Project reviews

Code Review

Source code: LoadingButton.kt

Source code: strings.xml

Source code: NotificationExt.kt

Source code: ButtonState.kt

Source code: AndroidManifest.xml

Libraries Used

  • Jetpack Foundation - Components for core system capabilities, Kotlin extensions and support for multidex and automated testing.
    • AppCompat - Degrade gracefully on older versions of Android.
    • Android KTX - Write more concise, idiomatic Kotlin code.
  • Architecture - A collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
  • Third party and miscellaneous libraries
    • Timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class

Getting Started

Built With

  • Android Studio - Default IDE used to build android apps
  • Kotlin - Default language used to build this project

Include all items used to build project.

To build the app, use the gradlew build command or use "Import Project" in Android Studio.

License

Please review the following license agreement