| Splash Screen | Game List | Game Details | WebView |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
JetpackAgmeApp is a modern Android application built with Jetpack Compose and Clean Architecture (MVVM).
It fetches game data from the FreeToGame API and displays game details.
- 🟢 Splash Screen – Smooth entry animation
- 🕹️ Game List – Browse and search games from the FreeToGame API
- 🎯 Game Details – Detailed information with a horizontal list of related games
- 🌐 WebView – Open game websites with loader and
WebChromeClientsupport - 🛠️ MVVM + Clean Architecture – Organized and scalable code structure
- 🔄 Offline Cache – Room database caching for faster loading
- 🔗 Navigation Compose – Smooth screen transitions
- 🔧 Hilt + Retrofit + Coroutines – Modern Android development stack
- Language: Kotlin
- UI: Jetpack Compose
- Architecture: Clean Architecture + MVVM
- Dependency Injection: Hilt
- Networking: Retrofit + OkHttp
- Persistence: Room
- Navigation: Navigation Compose
- Extras: WebView with WebChromeClient
JetpackAgmeApp
│ JetpackAgmeApp.kt # Application class
│ MainActivity.kt # Main Activity (View)
│
├── data # Data Layer
│ ├── GameApi.kt # Model (M) - API
│ ├── GameDao.kt # Model (M) - Room DAO
│ ├── GameDatabase.kt # Model (M) - Room Database
│ ├── local
│ │ └── Converters.kt # Model (M) - Type converters
│ └── repository
│ ├── GameRepository.kt # Model (M) - Repository Interface
│ └── GameRepositoryImpl.kt # Model (M) - Repository Implementation
│
├── di # Dependency Injection
│ └── AppModule.kt # Hilt modules
├── domaine # Domain Layer
│ ├── Game.kt # Model (M)
│ ├── GameDetail.kt # Model (M)
│ └── GameDetailDeserializer.kt # Model (M)
├── ui # View Layer
│ ├── YesNoDialog.kt # View (V) - Reusable Dialog
│ ├── banner
│ │ └── TopNetworkBanner.kt # View (V)
│ ├── details
│ │ ├── GameDetailScreen.kt # View (V)
│ │ └── GameDetailViewModel.kt # ViewModel (VM)
│ ├── list
│ │ ├── GameListScreen.kt # View (V)
│ │ └── GameListViewModel.kt # ViewModel (VM)
│ ├── navigation
│ │ └── NavigationRoot.kt # View (V)
│ ├── splash
│ │ └── SplashScreen.kt # View (V)
│ └── webview
│ └── WebPageScreen.kt # View (V)
└── utils
├── NetworkMonitor.kt # Utility
└── ZoomableImageDialog.kt # Utility



