GithubHelp home page GithubHelp logo

filipebezerra / loading-status-bar-app-android-kotlin Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 8.02 MB

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

Kotlin 100.00%
android kotlin kotlin-android custom-view loading-button property-animation udacity udacity-nanodegree udacity-android-kotlin-nanodegree showcases

loading-status-bar-app-android-kotlin's Introduction

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

loading-status-bar-app-android-kotlin's People

Contributors

filipebezerra avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.