This is the 3rd project for Udacity Android Kotlin Developer Nanodegree Program.
It is a part of Course 3: Advanced Android Apps with Kotlin, Part-1
Project rubric is here!
- Create a radio list of the following options where one of them can be selected for downloading:
- https://github.com/bumptech/glide
- https://github.com/udacity/nd940-c3-advanced-android-programming-project-starter
- https://github.com/square/retrofit
- Create a custom loading button by extending View class and assigning custom attributes to it
- Animate properties of the custom button once it’s clicked
- Add the custom button to the main screen, set on click listener and call download() function with selected Url
- If there is no selected option, display a Toast to let the user know to select one.
- Once the download is complete, send a notification with custom style and design
- Add a button with action to the notification, that opens a detailed screen of a downloaded repository
- Create the details screen and display the name of the repository and status of the download
- Use declarative XML with motionLayout to coordinate animations across the views on the detail screen
- Add a button to the detail screen to return back to the main screen.
def lifecycle_version = "2.2.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'