Koin is a pragmatic, lightweight dependency injection framework for Kotlin and Kotlin Multiplatform. The core library (koin-core) provides a pure Kotlin DSL for defining modules with `single`, `factory`, `scoped`, and `viewModel` definitions, backed by a container (`Koin`, `Scope`, `InstanceRegistry`) that resolves dependencies in O(1) via `HashMap`. The framework supports multiplatform via expect/actual platform abstractions (logging, thread safety, ID generation) and integrates with Android (koin-android: Activity/Fragment scopes, ViewModel, WorkManager, Compose), Ktor (koin-ktor: server plugin, request scope, DI bridge), and Compose Multiplatform (koin-compose: composable application, scope/module lifecycle). Testing is first-class: koin-test provides module verification at build time, mock declaration, and JUnit4/JUnit5 integration. An optional Kotlin compiler plugin (koin-gradle-plugin) adds compile-time safety and auto-wiring, supplementing the classic DSL. The repository includes extensive examples (Android, Ktor, Compose, KMP) and performance benchmarks (JMH, kotlinx-benchmark). The codebase is well-structured with clear separation of concerns, platform-specific source sets, and a rich set of extension modules. Some APIs are marked experimental or deprecated and the compiler plugin requires Kotlin 2.3.20+, but overall the project is actively maintained, with a strong focus on backward compatibility and performance.
This is the official Bitwarden password manager for Android, a production-grade Kotlin application with a modular monorepo structure. It implements a full-featured password manager including vault management (ciphers, folders, collections, sends), autofill (standard and accessibility-based), FIDO2/WebAuthn passkey support, TOTP authenticator, password/username generator, secure credential exchange (CXF), and enterprise features like SSO, Duo, and policy enforcement. The architecture follows an MVVM pattern with Jetpack Compose UI, Dagger/Hilt dependency injection, Room SQLite for local persistence, Retrofit/OkHttp for networking, and the Bitwarden SDK for cryptographic operations. The codebase is organized into multiple Gradle modules: `app` (main app), `authenticator` (standalone TOTP app), `authenticatorbridge` (AIDL-based cross-app communication), `network` (API client), `data` (data sources and repositories), `ui` (reusable Compose components), `core` (platform utilities), `cxf` (credential exchange), and `testharness` (Credential Manager API testing). Key entry points include `MainActivity`, `CredentialProviderActivity`, `AuthCallbackActivity`, and `BitwardenApplication`. Data flows involve syncing vault data from Bitwarden servers to local Room databases, processing autofill requests from other apps via Android's Autofill and Credential Manager frameworks, and securely sharing TOTP secrets between the main app and authenticator app via the encrypted bridge. External dependencies include the Bitwarden SDK, AndroidX libraries (Compose, Navigation, Room, Biometrics, Credentials, etc.), Retrofit, OkHttp, kotlinx.serialization, and optional Firebase for push notifications and crash reporting.
This is a Kotlin Multiplatform application that provides a movie and TV show browsing experience across Android, iOS, Desktop, and Web platforms. The app fetches data from The Movie Database (TMDB) API and displays content including now playing movies, popular/top-rated/upcoming movies and TV shows, celebrity information, and search functionality. It follows MVVM architecture with Clean Architecture principles, using Koin for dependency injection, Kotlin Coroutines for asynchronous operations, Ktor for networking, and Compose Multiplatform for the UI layer. The application includes features like favorite management with local storage, genre filtering, and detailed views for movies, TV shows, and celebrities.
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.
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.
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.
Roborazzi is a Kotlin-based visual regression testing framework for Android, Compose Multiplatform (Desktop, iOS), and pure JVM. It integrates with Robolectric to capture screenshots of UI components in unit tests, compares them against golden images, and generates detailed reports (HTML, JSON, PR comments). The framework includes a Gradle plugin that creates record/verify/compare tasks, a JUnit rule for automatic capture, support for GIF/APNG/video recording, UI tree dumps, accessibility checks (via ATF), and experimental AI-powered image assertions (Gemini, OpenAI). It also auto-generates screenshot tests from Compose `@Preview` annotations for both Robolectric and Desktop targets. The architecture is modular: a core library with platform-specific implementations for Android, Desktop, and iOS; a painter module for image encoding/decoding; and separate modules for Compose integration, JUnit rules, preview scanning, and an IntelliJ/Android Studio plugin. The codebase is actively maintained, well-documented, and employs modern Kotlin patterns (KMP, Gradle Configuration Cache, BuildService). It is not a data research project.
Laravel Sail is a command-line package that provides a Docker-powered local development environment for Laravel applications. It generates a Docker Compose file with a PHP application container and optional services such as MySQL, PostgreSQL, Redis, Meilisearch, Mailpit, and many more. The package includes console commands (`sail:install`, `sail:add`, `sail:publish`) that scaffold the Docker configuration and update the application's `.env` file with appropriate host and credential settings. It also publishes Dockerfiles for multiple PHP versions (8.0 through 8.5) and database initialization scripts. The architecture is a simple Laravel package consisting of a service provider, three console commands, and a trait for reusable Docker Compose interaction logic. The `bin/sail` bash script acts as a CLI wrapper that proxies commands (like `artisan`, `composer`, `node`, `npm`, `mysql`, etc.) into the running Docker container. Sail does not run a persistent service itself; it is purely a scaffolding and management tool executed during development setup. The codebase is well-structured, follows Laravel conventions, and is actively maintained with frequent releases. It demonstrates strong engineering practices for a development tool, though its primary value lies in configuration generation rather than novel algorithmic work.
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).
Androidify is a modular Android application that allows users to create personalized Android robot avatars using AI. It accepts a photo (from camera or gallery) or a text prompt, then generates a custom Android mascot image via a fine-tuned Imagen model through Firebase Vertex AI, with on-device Gemini Nano as a fallback for prompt generation and image validation. The app uses ML Kit for pose detection in the camera flow and subject segmentation for background removal. It features adaptive Jetpack Compose UIs across phones, tablets, foldables, and Android XR with shared element transitions. A companion Wear OS app enables one-tap installation of the generated avatar as a watch face, including APK creation and transfer via the Wearable Data Layer. The architecture is multi-module with custom Gradle plugins, Hilt DI, and feature flags via Firebase Remote Config. It is primarily an applied AI sample app, not a data research project, though it heavily relies on configurable AI prompts and model names.
This repository is a Kotlin Multiplatform (KMP) library collection designed for rendering rich text and Markdown within Compose applications on Android and Desktop. It consists of several modular artifacts: `richtext-ui` (core UI composables), `richtext-markdown` (AST-based rendering), `richtext-commonmark` (CommonMark parser integration), and theme-specific wrappers (`richtext-ui-material`, `richtext-ui-material3`). The architecture relies on a custom Abstract Syntax Tree (AST) representation of Markdown content, which is traversed recursively to emit Compose composables. While the codebase demonstrates strong engineering practices, particularly in handling deep nesting and large documents, the README explicitly warns that the project is experimental, lacks tests, and has an unclear roadmap. This makes it suitable for prototyping or internal tools but potentially risky for production-critical applications without significant validation.
This is an Android application named 'Notifications Recovery' that captures, stores, and displays device notifications locally. It runs a NotificationListenerService to intercept all incoming notifications, parses their content (title, text, big text, conversation title, etc.), and persists them to an ObjectBox embedded database. It also detects when notifications are removed and marks them as deleted. The app provides multiple UI screens: a main list of all notifications with search/filter, a chat-style view for messaging apps (using Jetpack Compose), a pie chart for app-wise statistics, and a separate view for deleted notifications. It includes blacklist/whitelist filtering, encrypted ZIP export/import, biometric authentication, screenshot blocking, and three Android home screen widgets (latest, chat, and deleted notifications). The architecture is a monolithic Android app with a service layer, activities using XML layouts, and selected Compose screens. Dependencies include ObjectBox, MPAndroidChart, Zip4j, and AndroidX libraries. The codebase shows active maintenance but suffers from inconsistent version numbers (targeting unreleased SDK 37) and some code quality issues like threading concerns and deprecated API usage.