Study app that displays the characters and episodes of Rick and Morty using Jetpack Compose.
- CI Pipeline using Github Actions
- Kover (https://github.com/Kotlin/kotlinx-kover)
- Detekt (https://detekt.dev/)
- Ktlint (https://pinterest.github.io/ktlint)
- Unit Tests
- Sonar (https://sonarcloud.io/project/overview?id=VictorHVS_rick-n-morty)
- CodeCov (https://codecov.io/gh/VictorHVS/rick-n-morty)
- UX/UI using Figma, Material 3 and Generated images using Bing Image
- Hilt Setup
- Retrofit Setup
- Room Setup
- Paging3 + Remote Mediator
- Compose Navigation
- Deep link
- Home Screen with Character List
- Datasource
- Repository
- ViewModel
- UI using UDF Pattern (https://developer.android.com/jetpack/compose/architecture#udf)
- Character Detail Screen
- CD Pipeline using Github Actions
- Kotlin - First class and official programming language for Android development.
- Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- Jetpack Compose Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app
- Material 3 - Modular and customizable Material Design UI components for Android.
- Paging 3 - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
FREE Rick and Morty API: https://rickandmortyapi.com/documentation
Figma Design Kit: https://www.figma.com/file/quqLCyNbZniCM58U78lQ5g/%5BM3%5D-RNM-UNIVERSE-PROJECT?type=design&node-id=54313-25258&mode=design&t=VYaJlO1ELop5IFBA-4
To test deeplink you can use this snippet in your terminal:
adb shell am start -W -a android.intent.action.VIEW -d "https://victorhvs.com/rnm/1"
- create a file named
pre-commit
in.git/hooks/
- add the following code to the file
- make the file executable using
chmod +x .git/hooks/pre-commit
- commit your changes
- if any of the checks fail, the commit will be aborted
- if you want to commit anyway, use
git commit --no-verify
#!/usr/bin/env bash
echo "Running detekt check..."
OUTPUT="/tmp/detekt-$(date +%s)"
./gradlew ktlintFormat > $OUTPUT
./gradlew detekt > $OUTPUT
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
cat $OUTPUT
rm $OUTPUT
echo "***********************************************"
echo " detekt failed "
echo " Please fix the above issues before committing "
echo "***********************************************"
exit $EXIT_CODE
fi
rm $OUTPUT
Copyright 2022 The Android Open Source Project
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
https://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.