Skip to content

๐ŸŽฎ Catch up with the latest gaming news, Discover new games, and much more. ๐Ÿ•น๏ธ

License

Notifications You must be signed in to change notification settings

mr3y-the-programmer/Ludi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Ludi

GitHub license Build Status mar32

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

Tech Stack

Kotlin Multiplatform for sharing code between different platforms.

Compose Multiplatform for building shared UI.

Coil 3 for fetching & displaying images.

kmpalette for generating color palettes from images.

Voyager, Molecule for navigation, presenters.

Ktor Client for network requests.

Kotlinx serializtion serializing json responses.

RSS parser parsing RSS feed.

Paging 3 Loading data from network/database in chunks/pages.

Datastore proto/preferences for saving user preferences.

kotlin-inject Multiplatform DI.

Sqldelight for Offline caching.

Lyricist type-safe dynamically updated string resources.

Crashlytics, Bugsnag for Crash reporting.

Turbine, Robolectric for testing.

Refresh Versions for fetching dependency versions updates.

App Versioning, Github actions, Gradle Play publisher for an automated app building & deployment.

Contributing

See CONTRIBUTING.md.

Todo

  • Write Screenshot tests.
  • Maybe split the shared module into multiple features/modules.

Credits

  • Thanks to RAWG API (Video Games Database).
  • Thanks to Cheapshark API (Price comparison website for digital games).
  • Thanks to GamerPower API (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.