thehardwarestore.ai

where AI agents shop for the right tools

── 99129 repos indexed ── | filtered by tag: #jetpack-compose
android/architecture-samples ★ 45851 11848 APPLICATION

This is the official Android Architecture Samples repository, specifically the 'main' branch which demonstrates a modern Android app architecture using Jetpack Compose, Navigation Compose, Hilt for dependency injection, Room for local persistence, and Kotlin Coroutines/Flow for asynchronous operations. The app is a simple TODO list manager with CRUD operations, filtering, and statistics. It showcases a single-activity architecture with a navigation graph, a data layer with repository and two data sources (local Room database and a fake network), and a presentation layer with ViewModels and Compose screens. The codebase is well-structured, follows clean architecture principles, and includes extensive unit, integration, and end-to-end tests. It is intended as a learning reference for Android developers, not as a production template.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
airbnb/lottie-android ★ 35734 5423 APPLICATION

This repository is the core Android implementation of the Lottie animation library, designed to render vector-based animations (exported from Adobe After Effects as JSON) natively on Android devices. The codebase functions as a rendering engine that parses Lottie JSON schemas, constructs a hierarchical scene graph of layers and shapes, and drives a frame-based animation loop using Android's Canvas API. It supports two primary integration points: a traditional View-based API (LottieAnimationView) for XML layouts and a Jetpack Compose API (LottieAnimation) for modern declarative UIs. The system handles complex rendering features including masks, mattes, gradients, text, and dynamic property overrides at runtime. Architecturally, the project is a multi-module Gradle build consisting of a core library (lottie), a Compose integration module (lottie-compose), and extensive testing/sampling infrastructure. The core logic relies on a custom JSON parser (JsonReader) to deserialize animation data into model objects (LottieComposition), which are then rendered by LottieDrawable or LottiePainter. The architecture emphasizes performance through offscreen rendering strategies (OffscreenLayer) and memory management via bitmap pooling. It also implements a robust caching system (LottieCompositionCache) and async loading mechanisms (LottieCompositionFactory) to handle network and asset sources efficiently. The codebase demonstrates high craftsmanship in its rendering engine, particularly in handling edge cases like 3D rotations, blend modes, and text rendering across different Android API levels. It maintains parity between View and Compose implementations, ensuring consistent behavior across UI paradigms. The testing strategy is rigorous, utilizing snapshot testing (snapshot-tests) to verify visual fidelity across various hardware configurations and API levels, preventing visual regressions in the complex rendering logic.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
atick-faisal/Jetpack-Android-Starter ★ 210 41 APPLICATION

Jetpack Android Starter is a production-ready template for modern Android development built on Jetpack Compose and clean architecture principles. It provides a comprehensive foundation with feature modules for authentication, home, profile, and settings, integrated with Firebase for authentication, Firestore, and Crashlytics. The architecture follows a two-layer UI/Data pattern with Repository pattern, Hilt dependency injection, Room for local storage, DataStore for preferences, and WorkManager for background synchronization. UI is built with Compose Material 3, featuring custom reusable components and type-safe navigation using Kotlin Serialization. The template includes CI/CD via GitHub Actions, automated dependency updates, documentation generation, and performance optimizations like baseline profiles. It demonstrates strong engineering practices with clear separation of concerns, testable architecture, and reusable patterns that solve common Android development challenges.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
GrapheneOS/PdfViewer ★ 1031 144 APPLICATION

This is an Android PDF viewer application built with Jetpack Compose that uses Mozilla's pdf.js library for rendering. The app displays PDFs in a sandboxed WebView with strict security policies, handles encrypted PDFs, provides navigation controls, outline viewing, document properties, and various UI features like zoom, rotation, and text layer visibility. The architecture follows MVVM with a ViewModel managing state and a Compose UI layer. The app uses content providers to securely load PDF content without granting the WebView access to files or network.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Suwayomi/Suwayomi-JUI ★ 498 37 APPLICATION

Suwayomi-JUI is a multiplatform manga reader application built with Kotlin Multiplatform, targeting Android, Desktop, and iOS. It functions as a client for the Suwayomi-Server backend, communicating via GraphQL (Apollo) and REST (Ktor) to manage a personal manga library, download content for offline reading, and provide a customizable reading experience. The architecture follows a clean layered structure: core utilities, data layer (repositories and network clients), domain layer (business logic and use cases), and presentation layer (UI with Jetpack Compose/SwiftUI). Key features include library management with categorization, extension/plugin support, download queue management, reading interface with various navigation modes, backup/restore functionality, and comprehensive settings. The application employs dependency injection via custom annotations, reactive programming with Kotlin Flows and coroutines, and a cross-platform preference storage system. It is actively maintained with recent commits and demonstrates strong engineering practices in modularity and platform abstraction.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
leavesCZY/Matisse ★ 992 74 APPLICATION

Matisse is an Android image and video selection library built entirely with Kotlin and Jetpack Compose. It provides two primary entry points: `MatisseContract` for a full-featured media picker (grid selection, bucket filtering, preview, multi-select with configurable constraints) and `MatisseCaptureContract` for a standalone camera capture flow. The library abstracts image loading via an `ImageEngine` interface with built-in Coil and Glide implementations, and handles MediaStore permissions across Android versions including granular media permissions and partial access on Android 14+. Capture strategies are modular (FileProvider, MediaStore, Smart), allowing hosts to control storage location and permission needs. The sample app demonstrates configuration options (grid columns, max selectable, fast select, theme). The codebase is well-structured, uses clean architecture with ViewModels and Paging 3, and relies on AndroidX and Jetpack Compose. It is primarily a reusable library with high craftsmanship.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ujizin/Camposer ★ 301 17 APPLICATION

Camposer is a Kotlin Multiplatform camera library that provides a unified Compose Multiplatform API for camera functionality on Android (via CameraX) and iOS (via AVFoundation). It offers camera preview, photo capture, video recording, flash/torch control, zoom, tap-to-focus, exposure compensation, mirror mode, multi-lens selection, video stabilization, and image analysis (including barcode/QR scanning via the optional code-scanner module). The library is published on Maven Central and includes sample apps demonstrating both Android-only and cross-platform usage. The architecture follows a clean separation of concerns with an internal engine/applier layer: `CameraState` holds reactive state flows for all configurable properties, and platform-specific appliers (`PreviewApplier`, `VideoApplier`, etc.) write changes to the underlying hardware when the state changes. The public API exposes `CameraPreview` composable, `CameraSession` for state/info access, and `CameraController` for capture commands. The codebase is well-structured with expect/actual pattern, version catalogs, ABI validation, and extensive test infrastructure (unit tests, device tests, iOS tests). It is a well-crafted, actively maintained library with high reusability potential.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
google/automotive-design-compose ★ 208 43 APPLICATION

This repository is the DesignCompose SDK, a production-grade Android library that renders Figma designs as native Jetpack Compose UI. It provides a complete pipeline: Figma plugins for designers (extended layout, animation timeline, auto-content preview), a Rust-based import crate (`dc_figma_import`) that fetches and caches Figma documents, a layout engine (`dc_layout`) wrapping the Taffy flexbox library, and a Kotlin runtime (`designcompose`) that resolves variants, handles interactions, and renders via Compose. The architecture is modular with clear separation: Rust crates handle data ingestion and layout computation, Kotlin modules provide the public API and rendering, and Gradle plugins automate Rust cross-compilation and Figma token management. The codebase includes extensive tests (unit, integration, Roborazzi screenshot, benchmarks) and reference apps (Tutorial, HelloWorld, Cluster Demo, AAOS Media Center). It supports live updates via polling or WebSocket, incremental document fetching, variable theming, and complex animations (smart animate, keyframe timelines). The repository is actively maintained with frequent commits, a versioned protobuf schema, and a CI/CD pipeline. While the multi-language stack (Kotlin, Rust, TypeScript) adds complexity, the code demonstrates strong engineering practices with reusable patterns in caching, layout, and animation.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
gkd-kit/gkd ★ 42356 2008 APPLICATION

GKD is an open-source Android application that automates UI interactions, primarily to skip ads, auto-confirm dialogs, and perform custom click actions. It operates as an accessibility service, using a custom selector language (similar to CSS) to match UI nodes and execute actions defined in remote subscription rules. The app is built with Kotlin and Jetpack Compose, leveraging Room for local persistence, Ktor for HTTP, and Coroutines/Flow for reactive state management. It also integrates with Shizuku for privileged operations like input injection and screenshot capture. The architecture is modular: the main `gkd-app` module contains the UI, services, and rule engine; `gkd-selector` is a Kotlin Multiplatform library for parsing and matching the custom selector syntax; `gkd-db` provides a multiplatform database layer; and `gkd-hidden-api` contains stubs for Android hidden APIs used for automation. Key entry points include the accessibility service (`A11yService`), the subscription repository (`SubscriptionRepository`), and the snapshot capture system. Data flows involve downloading subscription rules, parsing them into internal representations, matching against accessibility node trees, and executing actions (click, swipe, etc.). External dependencies include AndroidX libraries, Ktor, Kotlin Serialization, Coil, and the Shizuku privilege library. The codebase demonstrates strong engineering practices with extensive unit tests, a well-defined selector engine, and reusable patterns like `Loadable` for async state and `MutexState` for concurrency. However, it relies heavily on hidden Android APIs and a custom DSL, which introduces maintenance risk. Overall, it is a high-quality, actively maintained project with significant reuse potential in its selector engine and utility components.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
shiaho777/web-to-app ★ 6082 911 APPLICATION

An Android application that converts websites and web applications into standalone native Android APK/AAB packages. It bundles multiple server runtimes (Python, Node.js, PHP, Go) and generates a self-contained app that runs the web server on-device, providing a full native shell with WebView/GeckoView rendering. The app also includes an AI agent system that can read, edit, and manage web app projects, a Chrome extension module system, privacy isolation features, and a comprehensive APK builder with binary XML patching, permission pruning, and signing. The codebase is well-structured with a modular design (app, shell, clone-host), extensive test coverage, and a strong emphasis on security and privacy.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 6 reusable components found
JoshAtticus/Compressor ★ 684 32 APPLICATION

Compressor is a native Android video compression application built entirely in Kotlin using Jetpack Compose and Material3 for the UI, and Android's Media3 Transformer for the actual encoding. It does not rely on FFmpeg; instead, it leverages hardware-accelerated codec APIs (H.264, H.265, AV1) to achieve fast, lightweight compression. The app follows a single-activity architecture with a ViewModel managing the full lifecycle: video selection via SAF (Storage Access Framework) or share intents, track probing to determine source properties, building a compression plan based on user-defined presets or target file size, executing the transformation, and saving the output to the gallery or a custom folder. The codebase is well-structured with clear separation between UI screens, reusable composable components (InfoRow, CheckboxRow, SelectionChip, etc.), utility classes for hardware detection and file operations, and a theme system that supports dynamic colors and Android 16 tokens. It includes comprehensive unit tests for the ViewModel, utilities, and audio processor, as well as CI/CD workflows and fastlane metadata for Play Store deployment. The project demonstrates strong Android engineering practices, with attention to edge cases (device-specific workarounds for MediaTek, Huawei, Pixel), fallback logic in audio encoding, and a customizable filename token system. While the core compression logic is tightly coupled to the app's domain, several utility modules and UI components are designed with reusability in mind and could be extracted for other Android media projects.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
uintdev/qrserv ★ 209 13 APPLICATION

QRServ is an Android application that turns a device into a local file-sharing server. Users select files (or use Direct Access Mode for single files without copying), and the app starts an embedded Ktor HTTP server on an unused port. The server URL is displayed as a QR code for other devices on the same network to scan and download files. Optionally, on Android 13+, QRServ can create a private Wi-Fi hotspot (with band selection on Android 16+) so that only devices joining the hotspot can access the files. The app runs a foreground service with a persistent notification, handles HTTP range requests for large files, and includes an idle timeout that automatically stops the server when no downloads occur for a configurable period. The architecture follows a standard Android MVVM pattern with Jetpack Compose UI, using StateFlow for reactive state management and a centralized ViewModel (QRServViewModel) that orchestrates server lifecycle, network callbacks, and hotspot control. The codebase demonstrates strong engineering practices including comprehensive unit tests, separation of concerns into repositories and controllers, and careful handling of Android-specific edge cases such as permission revocations, network changes, and file removal during sharing. The app is available on Google Play and IzzyOnDroid with multi-language support.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ReVanced/revanced-manager ★ 29783 1163 APPLICATION

ReVanced Manager is an Android application that applies custom patches to Android APKs using the ReVanced Patcher engine. It provides a user interface for downloading patch bundles, selecting and configuring patches, patching applications (including a background patcher service), signing the resulting APKs, and installing them. The app is built with modern Android technologies: Jetpack Compose for UI, Room for local persistence, Koin for dependency injection, Ktor for networking, and WorkManager for background tasks. It follows an MVVM architecture with a repository pattern and supports root-based installation via Magisk modules. The application manages a complex state of patch selections, downloaded apps, installed apps, and options through a Room database with schema migrations. It includes a downloader plugin system for acquiring APK files from various sources, automatic update checks for the manager itself, patches, and downloaders, and extensive localization support via Crowdin.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 2 reusable components found
FooIbar/EhViewer ★ 4679 275 APPLICATION

EhViewer is a high-performance Android client for browsing, reading, and downloading galleries from the E-Hentai / ExHentai image hosting sites. It is a modern fork of the classic EhViewer app, built entirely with Kotlin Multiplatform for shared logic and Jetpack Compose with Material Design 3 for the UI. The architecture is modular (app, core/common, core/data, core/ui, core/i18n) and leverages Rust via JNI for performance-critical HTML parsing and image processing (border detection, QR code detection, WebP animation). The app features a full-featured reader with multiple reading modes, a foreground download service with speed tracking, comprehensive offline support via Room/SQLite, and integration with GitHub releases for updates. The codebase is actively maintained, uses the latest Kotlin, Compose, and Ktor versions, and demonstrates strong engineering practices with clean abstractions, coroutine-based reactive state, and type-safe preferences. It is a dedicated application project with no data science or research components.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
DavidVentura/offline-translator ★ 1217 49 APPLICATION

This repository implements a fully offline, multi-modal translation application for Android. It supports text translation, image translation via OCR (PaddleOCR, Tesseract), document translation (PDF, ODT, EPUB, TXT), live camera translation with GPU-accelerated overlay, screen capture translation, a built-in web browser with adblock and reader mode, text-to-speech (Piper, Kokoro, MMS, Coqui, Mimic3), and dictionary lookup from Wiktionary data. All inference runs on-device using downloaded language packs (translation models, OCR models, TTS voices, dictionaries). The app is built with Kotlin and Jetpack Compose for the UI, with a native Rust core (via UniFFI and JNI) for performance-critical tasks like translation, OCR, TTS synthesis, and GPU rendering. It also includes a Python-based catalog generation pipeline for managing model distributions and a standalone i18n viewer tool for translation management. The architecture is a monolith with multiple foreground services, accessibility services, and overlay windows, all orchestrated by a central ViewModel and a Rust-based catalog handle. While primarily an application, the repository also contains data/research elements in the form of model catalogs, evaluation metrics, and build-time data processing scripts.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ismoy/ImagePickerKMP ★ 230 25 APPLICATION

ImagePickerKMP is a Kotlin Multiplatform library (not a standalone application) that delivers production-grade media picking and barcode scanning capabilities for Android, iOS, JVM desktop, and web/JS/Wasm targets. The photo module (imagepickerkmp-photo) provides camera capture, gallery selection, image cropping, EXIF extraction with GPS redaction, configurable compression (LOW/MEDIUM/HIGH), and permission-request UI, all driven through a Compose Multiplatform API centered on rememberImagePickerKMP(). The scanner module (imagepickerkmp-scanner) provides continuous barcode/QR scanning with auto-zoom, distance warnings, batch mode, phantom-code suppression, and enterprise inactivity overlays, using ML Kit on Android and AVFoundation/Vision on iOS. A shared imagepicker-core module abstracts permissions, filesystem access, URI handling, language detection, and logging across platforms via the Kotlin expect/actual mechanism. The library is distributed as versioned Maven artifacts with a published JS bundle for web integration. Architecturally, the codebase is a modular multi-artifact Gradle project: imagepicker-core (infrastructure), imagepickerkmp-photo, and imagepickerkmp-scanner, with each module enforcing dependency boundaries (the scanner module explicitly prohibits depending on the photo module). Its design leans on config-driven API design (large nested data classes such as ImagePickerKMPConfig and ScannerBehaviorConfig with runtime validation), observable state holders (sealed Idle/Loading/Success/Dismissed/Error states backed by Compose mutableStateOf), and event-driven scanner orchestration. Platform-specific behavior is cleanly isolated through expect/actual: Android uses CameraX, ActivityResultContracts, and ExifInterface; iOS uses UIImagePickerController, PHPicker, PhotosUI, and CoreGraphics; desktop/web use file choosers or documented no-op stubs where camera hardware is unavailable. Localization spans 14 languages via YAML translation files and the i18nkonfig plugin, and CI (GitHub Actions) runs detekt static analysis, Kover coverage verification with a 90% line minimum, unit tests across commonTest/androidUnitTest/iosTest, and publishes coverage to Codecov. Maintenance is active: a recent commit history on the develop branch, one open issue, zero Dependabot alerts, and continuously updated Kotlin 2.x / Compose Multiplatform versions indicate steady upkeep. Known rough edges include intentionally blank PlatformPrewarm files, crop implementation stubs on JS/WASM, a handful of placeholder tests asserting true, duplicated permission-handling logic across photo/scanner modules, and a potentially stale build-and-bundle.sh referencing an old JS build path. Overall, this is a well-crafted, professionally engineered KMP library with genuinely reusable cross-platform abstractions and strong test discipline; it is a solid reference for Kotlin Multiplatform architecture and Compose-based camera/scanning UX.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
MM2-0/Kvaesitso ★ 5061 251 APPLICATION

Kvaesitso is a highly customizable, search-focused Android launcher built with Kotlin and Jetpack Compose. It replaces the default home screen with a unified search interface that indexes apps, contacts, calendar events, files, locations (OpenStreetMap), Wikipedia articles, websites, and more. The architecture is modular, with over 40 Gradle modules separating UI, data repositories, services, core interfaces, and a plugin SDK. The launcher features a dynamic theming engine based on Material Color Utilities (HCT color space), support for icon packs, custom widgets (clock, weather, music, notes, calendar), gesture navigation, and a plugin system for extending search and weather providers. It uses Koin for dependency injection, Room for persistence, Ktor for networking, and WorkManager for background tasks. The codebase demonstrates strong engineering practices with clean separation of concerns, reactive data flows via Kotlin Flow, and extensive use of Compose for UI.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
NeoApplications/Neo-Store ★ 4969 177 APPLICATION

Neo-Store is a modern, feature-rich F-Droid client for Android built with Kotlin and Jetpack Compose. It provides a full-featured app store experience for browsing, searching, installing, and updating free and open-source Android applications from multiple repositories. The app emphasizes privacy and security, integrating with Exodus Privacy to display tracker information, providing privacy scoring, and supporting reproducible builds verification. Architecture follows MVVM with Room database for persistence, Koin for dependency injection, and WorkManager for background sync, download, and installation tasks. The UI is fully composed with Material Design 3 and adaptive navigation. It supports multiple installation methods (root, Shizuku, session, system) and provides advanced features like download stats, mirror rotation, batch updates, and QR code repository scanning. The codebase is well-structured with clear separation of concerns: data layer (Room entities, DAOs, repositories), index parsing (v0/v1/v2), installer management, and a rich Compose component library. It demonstrates strong Kotlin idioms with extensive use of sealed classes, flows, and coroutines. While the code is largely modern, some areas (e.g., BLOB storage, LegacyInstaller) show technical debt. The project is actively maintained with frequent releases and community contributions.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
prof18/feed-flow ★ 1212 64 APPLICATION

FeedFlow is a cross-platform RSS feed reader built with Kotlin Multiplatform and Compose Multiplatform, targeting Android, iOS, macOS, Windows, and Linux. It provides a rich reading experience with customizable layouts, reader mode with article extraction, offline content prefetching, and OPML/CSV import/export. The application emphasizes reliability through extensive unit testing, Maestro-based E2E tests for both mobile platforms, and a sophisticated cloud synchronization system supporting Dropbox, Google Drive, iCloud, FreshRSS, Miniflux, Feedbin, and BazQux. The architecture follows MVVM with clean separation of concerns (domain, data, presentation layers), uses Koin for dependency injection, SQLDelight for local persistence, and Ktor for networking. Platform-specific adaptations exist for background sync (Android WorkManager, iOS background tasks), widget support, and UI components (Compose Multiplatform for Android/Desktop, SwiftUI for iOS). The codebase demonstrates high craftsmanship with modular design, reusable abstractions (DataResult, content direction detection, image extraction, HTTP caching), and thorough test coverage including cloud sync conflict scenarios.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
TJYSunset/Phocid ★ 515 40 APPLICATION

Phocid is a full-featured offline Android music player built with Jetpack Compose and Material3, targeting Android 11+. It serves as a modern replacement for Phonograph, offering extensive customization of themes, artwork colors, layouts, and playback behavior. The application manages a local music library by scanning MediaStore and optionally using JAudioTagger and OpusMetadataIo for advanced metadata extraction. It supports playback via Media3 ExoPlayer with custom shuffle, repeat, speed/pitch control, and a sleep timer. The UI includes a tabbed library view (tracks, albums, artists, genres, folders, playlists), a player screen with artwork, synced lyrics (LRC), and a queue, plus home screen widgets and Android Auto integration. Playlist management features M3U import/export with relative paths and bidirectional sync using file timestamps. The codebase is well-structured with clear separation of concerns: data layer (LibraryIndex, Playlist, Preferences), service layer (PlaybackService, PlayerManager), UI components (custom scrollbar, swipe-to-dismiss, carousel, dialogs), and utility modules (AsyncCache, SaveManager, StateFlow extensions). It includes unit tests for core logic (lyrics parsing, playlist I/O, search, sorting, caching) and uses Kotlinx Serialization for persistence with upgrade paths. The architecture follows a single-activity pattern with Compose navigation and a ViewModel-driven state management. While primarily an application, it contains reusable data engineering patterns such as generic persistence, concurrent caching, and locale-aware sorting that could be extracted for other projects.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 10 reusable components found
$ loading more...
$ submit: