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.
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 |
CRITERIA | MEETS SPECIFICATIONS |
---|---|
Customize and display of information using canvas with desired color and style |
|
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 |
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 |
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 |
Source code: LoadingButton.kt
Source code: strings.xml
Source code: NotificationExt.kt
Source code: ButtonState.kt
Source code: AndroidManifest.xml
- 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.
- Data Binding - Declaratively bind observable data to UI elements.
- Constraintlayout - Position and size widgets in a flexible anf efficient way with relative positioning
- Material Components for Android - Material Design toolkit to design and code high-quality digital experiences
- Third party and miscellaneous libraries
- Timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class
- 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.
Please review the following license agreement