ryanw-mobile / giphy-trending

Material 3, MVVM Kotlin Coroutine, Compose, REST API, Ktor, Room, DaggerHilt
Other
17 stars 4 forks source link
android coil-kotlin coroutines-android dagger-hilt dagger2-android datastore-android giphy-api jetpack-compose junit4 kotlin kotlin-android kotlin-flow ktor leakcanary mvvm-android mvvm-architecture room-database

Giphy Trending Gradle Build Codacy Coverage Badge Codacy Quality Badge Renovate enabled

This sample Android app presents the Giphy trending animated gifs for sharing or download. You can now also search animated gifs by keyword. It was elaborated from the work by Fahri Can in Nov 2021. I migrated the codebase from RxJava to Coroutines, and then from XML Views to Jetpack Compose. The current release is completely different from the original version after these years.

 

The original XML View version

The XML View version is no longer being maintained. You can check out the XML View version branch for that. It was using XML with Data-binding, which we generally believe it to be a bad coding practice by tightly coupling the business logic with the UI.

 


 

Binaries download

If you want to try out the app without building it, check out the Releases section where you can find the APK and App Bundles for each major version. A working Giphy API key was applied when building the app, therefore you can test it by just installing it.

 

To-do lists

Planned enhancements are now logged as issues.

 

High level architecture

 

Major libraries used

Dependencies

Plugins

 

Building the App

Requirements

 

Setting up the keystore

Release builds will be signed if either the keystore file or environment variables are set. Otherwise, the app will be built unsigned and without the Giphy API key installed, which will not pull any data from the endpoint.

Local

CI environment

Build and install on the connected device

This app has two build variants: Debug and Release. The most common build commands are:

The generated apk(s) will be stored under app/build/outputs/

 

License - No Google Play / App Store submission is allowed

Attribution-NonCommercial (CC BY-NC 4.0)

Nothing is free in this world. RW MobiMedia UK Limited, a fully tax-paying entity in the UK, sponsors the infrastructure and development costs of this project.

Copyright 2024 RW MobiMedia UK Limited

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

Conditions

Under the terms of this license, you are free to:

The licensing terms include the following stipulations:

Disclaimer

This work is provided "as is" without any warranties, and the licensing coverage is only applicable as long as the distribution or use is for non-commercial purposes.

Further Enquiries

For permissions beyond the scope of this license, please contact RW MobiMedia UK Limited.