Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mr3y-the-programmer/Ludi

🎮 Catch up with the latest gaming news, Discover new games, and much more. 🕹ī¸
https://github.com/mr3y-the-programmer/Ludi

android android-app androidx compose-multiplatform jetpack-compose kotlin kotlin-multiplatform material-design-3 paging3 rawg-api sqldelight2

Last synced: about 2 months ago
JSON representation

🎮 Catch up with the latest gaming news, Discover new games, and much more. 🕹ī¸

Awesome Lists containing this project

README

        

# Ludi
[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0) [![Build Status](https://img.shields.io/github/actions/workflow/status/mr3y-the-programmer/Ludi/build.yml?branch=main&label=Desktop%2FAndroid%20Build&logo=Android&logoColor=black)](https://github.com/mr3y-the-programmer/Ludi/actions/workflows/build.yml)
![mar32](https://github.com/mr3y-the-programmer/Ludi/assets/26522145/93ae21de-7bb1-4851-9263-c8a9ca0ad801)

Ludi is a Kotlin multiplatform app(Android + Desktop) For browsing & discovering new games, Checking daily updated price discounts & giveaways on games, and RSS gaming news feed reader from your favorite gaming news websites, All in one single app.

It is a playground for demonstrating the use of modern tech stack(KMP, compose multiplatform..etc) to develop high-quality apps.

## Screenshots
### Android









### Desktop










## Features

- Discover trending, top rated, and other highly recommended games.
- Search for a specific game or Filter games by store, tag or platform.
- RSS news reader for your favorite gaming websites.
- Offline support/Caching for RSS feed articles.
- Full-text search for RSS feed articles.
- Get Updated with the latest deals on games prices & giveaways.
- Adaptive layout design for (Mobile, tablet or Desktop).
- Dark Theme.
- Material 3 design language.

## Download


Or from [github releases](https://github.com/mr3y-the-programmer/Ludi/releases)

## Tech Stack
[Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) for sharing code between different platforms.

[Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform) for building shared UI.

[Coil](https://github.com/coil-kt/coil), [compose-imageloader](https://github.com/qdsfdhvh/compose-imageloader) for fetching & displaying images.

[kmpalette](https://github.com/jordond/kmpalette) for generating color palettes from images.

[Voyager](https://github.com/adrielcafe/voyager), [Molecule](https://github.com/cashapp/molecule) for navigation, presenters.

[Ktor Client](https://github.com/ktorio/ktor) for network requests.

[Kotlinx serializtion](https://github.com/Kotlin/kotlinx.serialization) serializing json responses.

[RSS parser](https://github.com/prof18/RSS-Parser) parsing RSS feed.

[Paging 3](https://github.com/cashapp/multiplatform-paging) Loading data from network/database in chunks/pages.

[Datastore proto/preferences](https://developer.android.com/jetpack/androidx/releases/datastore) for saving user preferences.

[kotlin-inject](https://github.com/evant/kotlin-inject) Multiplatform DI.

[Sqldelight](https://github.com/cashapp/sqldelight) for Offline caching.

[Lyricist](https://github.com/adrielcafe/lyricist) type-safe dynamically updated string resources.

[Crashlytics](https://firebase.google.com/docs/crashlytics), [Bugsnag](https://docs.bugsnag.com/platforms/java/other/) for Crash reporting.

[Turbine](https://github.com/cashapp/turbine), [Robolectric](https://github.com/robolectric/robolectric) for testing.

[Refresh Versions](https://github.com/Splitties/refreshVersions) for fetching dependency versions updates.

[App Versioning](https://github.com/ReactiveCircus/app-versioning), [Github actions](https://github.com/mr3y-the-programmer/Ludi/tree/main/.github/workflows),
[Gradle Play publisher](https://github.com/Triple-T/gradle-play-publisher) for an automated app building & deployment.

## Contributing
See [CONTRIBUTING.md](https://github.com/mr3y-the-programmer/Ludi/blob/main/CONTRIBUTING.md).

## Todo
- [ ] Update android target SDK to 34 & try in-app predictive back gesture.
- [ ] Write Screenshot tests.
- [ ] Maybe split the shared module into multiple features/modules.
## Credits
- Thanks to [RAWG API](https://rawg.io/apidocs) (Video Games Database).
- Thanks to [Cheapshark API](https://apidocs.cheapshark.com/) (Price comparison website for digital games).
- Thanks to [GamerPower API](https://www.gamerpower.com/api-read) (Providing access to giveaways updated daily).
## License
```
Copyright [2023] [MR3Y]

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

http://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.
```