Skip to content

Unfinished job project that uses Ktor, Koin, MVVM, Jetpack Compose, Local Caching, Flow

Notifications You must be signed in to change notification settings

robarcoo/FootballApp

Repository files navigation

FOOTBALLAPP

repo-top-language

Developed with the software and tools below.

Kotlin Org Google Android GitHub JetBrains


Quick Links


Overview

Project I was working on during my internship, however all our team was laid off, so I'll at least post it here. I'm not going to finish it.


Features

  • Fully implemented UI using Jetpack Compose that adapts to different font and display sizes
  • Almost finished work with API using Ktor
  • Local caching (with different policies and expire time)
  • MVVM implemented with repository pattern, corouintes, flow and usecases

UI implementation (without functionality):

video_2024-07-07_03-51-53.mp4
video_2024-07-07_03-52-59.mp4
video_2024-07-07_03-54-06.mp4
video_2024-07-07_03-55-44.mp4

Repository Structure

└── FootballApp/
    ├── app
    │   ├── .gitignore
    │   ├── build.gradle.kts
    │   ├── proguard-rules.pro
    │   └── src
    │       ├── androidTest
    │       │   └── java
    │       │       └── com
    │       ├── main
    │       │   ├── AndroidManifest.xml
    │       │   ├── java
    │       │   │   └── com
    │       │   └── res
    │       │       ├── drawable
    │       │       ├── font
    │       │       ├── mipmap-anydpi-v26
    │       │       ├── mipmap-hdpi
    │       │       ├── mipmap-mdpi
    │       │       ├── mipmap-xhdpi
    │       │       ├── mipmap-xxhdpi
    │       │       ├── mipmap-xxxhdpi
    │       │       ├── values
    │       │       └── xml
    │       └── test
    │           └── java
    │               └── com
    ├── build.gradle.kts
    ├── data
    │   ├── .gitignore
    │   ├── build.gradle.kts
    │   ├── consumer-rules.pro
    │   ├── proguard-rules.pro
    │   └── src
    │       ├── androidTest
    │       │   └── java
    │       │       └── com
    │       ├── main
    │       │   ├── AndroidManifest.xml
    │       │   └── java
    │       │       └── com
    │       └── test
    │           └── java
    │               └── com
    ├── domain
    │   ├── .gitignore
    │   ├── build.gradle.kts
    │   └── src
    │       └── main
    │           └── java
    │               └── com
    ├── gradle
    │   └── wrapper
    │       ├── gradle-wrapper.jar
    │       └── gradle-wrapper.properties
    ├── gradle.properties
    ├── gradlew
    ├── gradlew.bat
    └── settings.gradle.kts

Modules

App

Main module of the app, contains:

- all configuration data

- dependenct injection using Koin

- UI using Jetpack Compose

- Navigation using Jetpack Navigation

- ViewModels

Data

Module that works with data, contains:

- Repositories implementation

- Client using Ktor

- Local cache storing that includes different cache policies, after 5 minutes cache is automatically renewed when sending a server request.

Domain

Module that implements business logic, contains:

- Repositories interfaces

- Data classes

- Usecases

Getting Started

Installation

  1. Clone the FootballApp repository:
git clone https://github.com/robarcoo/FootballApp
  1. Change to the project directory:
cd FootballApp
  1. Install the dependencies:
gradle build

Running FootballApp

Use the following command to run FootballApp:

java -jar build/libs/myapp.jar

Tests

To execute tests, run:

gradle test

Releases

No releases published

Packages

No packages published

Languages