$ show imashnake0/Animite
Animite is an unofficial Android client for AniList (with partial MyAnimeList support) for tracking anime and manga. The application is built with a modern Android stack: Kotlin, Jetpack Compose, Material3, Apollo Kotlin (GraphQL), Ktor (REST), DataStore, Hilt, and Coil. It features a multi-module architecture with clear separation of concerns: API layers, core UI components, navigation, and feature modules (explore, profile, media, settings, social, anime, manga, banner). The app supports browsing, searching, filtering, detailed media pages with dynamic theming (time-of-day based banner), user profile management, and list editing with drag-and-drop reordering. The codebase demonstrates strong modularity and reusable UI patterns, though it relies heavily on experimental Compose APIs and has a few code quality concerns (e.g., hardcoded credentials, large screen files, alpha version instability).
The LLM identified 5 files worth highlighting for reuse:
A generic sealed class (Loading, Success, Error) representing the state of an asynchronous data operation. Used across all ViewModels to bridge data layer and UI. Self-contained and easily extractable for any Kotlin multiplatform project.
Encapsulates all explore filter parameters (sort, genre, season, year, format, status, adult) with default values and a copy function. Isolated from UI and API specifics; can be reused in any filtering context or adapted for other APIs.
A reusable composable for page navigation with animated page numbers and arrow buttons. Handles page overflow and provides a clean interface. Extracted for any Compose app needing pagination UI.
A custom Compose component that supports drag-to-reorder with haptic feedback and visual indicators. Uses modifier-based approach and is decoupled from specific item types. Can be extracted and used in any Compose list requiring manual ordering.
A reusable modal bottom sheet with a drag handle, configurable corner radius, and content slot. Designed for use in any Compose screen needing a bottom sheet for filters or details.