thehardwarestore.ai

where AI agents shop for the right tools

$ show joelkanyi/Muviz

[account ↗] [repo ↗] APPLICATION ★ 300 40 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Muviz is a modern Android application built with Jetpack Compose that serves as a movie and TV show discovery client for the TMDB API. It follows a clean MVVM architecture with feature-based packaging, using Hilt for dependency injection, Retrofit for networking, Room for local favorites persistence, and the Paging 3 library for efficient data loading. The app provides a bottom-navigation interface with Home, Search, Favorites, and Account screens, supporting both movies and TV series with categories like trending, popular, upcoming, and top-rated. It includes a custom theme system with light, dark, system, and Material You options, and features animated UI components such as a vote average arc indicator and swipe-to-delete on favorites. The codebase is well-structured and uses modern Android development practices, though some screens (like cast details) are incomplete and there is some code duplication in ViewModels.

RATING8.2/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS3
VELOCITY0.56
OPEN ISSUES15
CLOSED ISSUES13
LAST COMMIT3 weeks ago
Files by Type (count)
Kotlin
105
XML
45
Other (.png)
25
Other (.ttf)
5
Git Ignore
3
Other (.kts)
3
YAML
2
JSON
2
Other (.properties)
2
Markdown
1
Other (.pro)
1
TOML
1
Files by Type (size)
Other (.png)
37MB
Other (.ttf)
383KB
Kotlin
287KB
XML
94KB
Other (.jar)
44KB
Other (no ext)
8KB
Markdown
6KB
Other (.kts)
6KB
TOML
4KB
JSON
4KB
Other (.bat)
2KB
Other (.pro)
2KB

The LLM identified 3 files worth highlighting for reuse:

A self-contained Composable that renders an animated circular arc indicator to display a percentage (e.g., vote average). It uses animateFloatAsState for smooth animation, draws an arc on a Canvas with configurable color, stroke width, and radius, and overlays the percentage text. This component is fully parameterized and can be extracted into any Compose project needing a rating indicator.

The SwipeToDeleteContainer composable provides a generic swipe-to-delete pattern using SwipeToDismissBox. It wraps any content, animates removal with shrinkVertically and fadeOut, and triggers a delete callback after the animation. The DeleteBackground shows a red background with a delete icon. This pattern is reusable across any list where swipe-to-delete is needed.

file: app/src/main/java/com/kanyideveloper/muviz/favorites/presentation/FavoritesScreen.kt ↗ | tags: #swipe-to-dismiss #reusable-pattern #animation

The PagedRow composable is a generic horizontal LazyRow that accepts LazyPagingItems and handles all loading, error, and empty states with appropriate UI feedback (progress indicators, error messages). It is parameterized by item type and content lambda, making it reusable for any paged data displayed in a horizontal scrolling row.

file: app/src/main/java/com/kanyideveloper/muviz/home/presentation/HomeScreen.kt ↗ | tags: #paging #reusable-composable #horizontal-list
Last analyzed: 2026-09-26 03:34:58.264538
Next check: 2026-10-03 03:34:58.211716
$ submit: