awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Kotlin-Android-Open-Source avatar

Kotlin-Android-Open-Source/MVI-Coroutines-Flow

0
View on GitHub↗
1,106 stars·115 forks·Kotlin·MIT·11 viewsgithub.com/hoc081098↗

MVI Coroutines Flow

This framework provides a structured implementation of the Model-View-Intent pattern for Android applications. It enforces a unidirectional data flow where user intents trigger state updates, which are then propagated through reactive streams to ensure consistent and predictable interface rendering.

The architecture relies on immutable state objects to represent application data, ensuring that updates are handled as complete replacements rather than partial modifications. By leveraging Kotlin Coroutines and reactive stream primitives, the framework coordinates asynchronous background tasks and interface updates, maintaining a single source of truth that remains synchronized with underlying data sources.

The system integrates with dependency injection containers to decouple business logic from the user interface, facilitating modularity and simplifying the testing of domain and data layers. It includes support for validating state transitions and data processing through unit tests across the view model and domain layers.

Features

  • Android - Implements the Model-View-Intent pattern for Android to ensure predictable state management and unidirectional data flow.
  • StateFlow State Management - Implements reactive UI state management using Kotlin Flow primitives to ensure consistent and predictable interface updates.
  • Unidirectional Data Flow Architectures - Enforces a strict, predictable cycle where user intents trigger state updates through a unidirectional pipeline.
  • Coroutine-Based Asynchronous I/O - Uses coroutine abstractions to manage high-concurrency background tasks without blocking the main thread.
  • Reactive Programming for Kotlin - Coordinates asynchronous background tasks and UI updates using reactive programming paradigms and Kotlin idioms.
  • Application Logic Implementations - Organizes application logic by separating state, intents, and interface updates into distinct, predictable layers.
  • Asynchronous Task Orchestration - Manages background operations and thread switching to maintain application responsiveness using coroutine-based orchestration.
  • Android Implementations - Demonstrates concrete Android implementations of predictable, layered architectures with separated domain and presentation layers.
  • Dependency Injection Containers - Provides a container for managing object lifecycles and dependency resolution to decouple application layers.
  • Dependency Injection - Decouples application components by injecting required dependencies to simplify testing of domain and data layers.
  • Android Injection Systems - Provides dependency injection systems specifically tailored for wiring and threading within Android components.
  • Dagger - Integrates compile-time dependency injection to decouple modules and improve testability in Android applications.
  • Immutable State Patterns - Ensures predictable state transitions by creating new immutable data objects rather than modifying existing ones.
  • State Streaming - Emits application state updates as a continuous observable stream to maintain a single source of truth.
  • Unidirectional State Management - Transforms user inputs into state-changing intents and computes new immutable state objects for consistent interface rendering.
  • Business Logic Isolation - Isolates business logic from the user interface to enable independent unit testing of state transitions and data processing.
  • Android Environment Testing - Executes unit tests specifically within the Android environment to validate state transitions and data processing.
  • Reactive State Synchronization - Synchronizes the user interface with underlying data models using reactive stream primitives.

Star history

Star history chart for kotlin-android-open-source/mvi-coroutines-flowStar history chart for kotlin-android-open-source/mvi-coroutines-flow

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Curated searches featuring MVI Coroutines Flow

Hand-picked collections where MVI Coroutines Flow appears.
  • Kotlin development tools

Frequently asked questions

What does kotlin-android-open-source/mvi-coroutines-flow do?

This framework provides a structured implementation of the Model-View-Intent pattern for Android applications. It enforces a unidirectional data flow where user intents trigger state updates, which are then propagated through reactive streams to ensure consistent and predictable interface rendering.

What are the main features of kotlin-android-open-source/mvi-coroutines-flow?

The main features of kotlin-android-open-source/mvi-coroutines-flow are: Android, StateFlow State Management, Unidirectional Data Flow Architectures, Coroutine-Based Asynchronous I/O, Reactive Programming for Kotlin, Application Logic Implementations, Asynchronous Task Orchestration, Android Implementations.

What are some open-source alternatives to kotlin-android-open-source/mvi-coroutines-flow?

Open-source alternatives to kotlin-android-open-source/mvi-coroutines-flow include: krasimir/react-in-patterns — This project is a comprehensive guide to architectural patterns and design techniques for building modular user… android10/android-cleanarchitecture-kotlin — This project is a reference Kotlin Android application template and a set of sample implementations demonstrating… airbnb/mavericks — Mavericks is an opinionated Android state management framework that structures screen-level state as a single… chrisbanes/tivi — Tivi is a cross-platform application for discovering and tracking television shows, built with Kotlin Multiplatform… pointfreeco/swift-composable-architecture — This is a Swift state management framework and application logic library designed for building applications with a… alexeymezenin/laravel-best-practices — This project is a comprehensive guide to architectural standards and coding patterns for developing maintainable…

Open-source alternatives to MVI Coroutines Flow

Similar open-source projects, ranked by how many features they share with MVI Coroutines Flow.
  • krasimir/react-in-patternskrasimir avatar

    krasimir/react-in-patterns

    13,578View on GitHub↗

    This project is a comprehensive guide to architectural patterns and design techniques for building modular user interfaces with React. It focuses on structuring component hierarchies, implementing state management patterns, and decoupling services to ensure applications remain maintainable and scalable. The collection emphasizes strategies for dependency injection and the separation of business logic from presentation layers. It provides detailed approaches for utilizing containers, higher-order components, and module registries to isolate external services and third-party libraries from the

    JavaScriptdata-flowdependencyinjection
    View on GitHub↗13,578
  • android10/android-cleanarchitecture-kotlinandroid10 avatar

    android10/Android-CleanArchitecture-Kotlin

    4,811View on GitHub↗

    This project is a reference Kotlin Android application template and a set of sample implementations demonstrating Clean Architecture principles. It provides a structural design that isolates core business rules from the user interface and data sources into distinct, layered modules. The implementation focuses on the Model-View-ViewModel (MVVM) pattern to decouple UI logic from data models. It utilizes a dependency injection framework to automate object creation and manage component lifecycles, while employing a repository pattern to abstract data requests across memory, disk, and cloud source

    Kotlinandroidandroid-cleanarchitecture-kotlinandroid-development
    View on GitHub↗4,811
  • airbnb/mavericksairbnb avatar

    airbnb/mavericks

    5,934View on GitHub↗

    Mavericks is an opinionated Android state management framework that structures screen-level state as a single immutable object and processes user actions through a unidirectional data flow. It enforces state immutability to prevent unintended mutations and simplify debugging, while managing state subscriptions and cleanup based on Android lifecycle events to prevent memory leaks. The framework uses a ViewModel-driven architecture where business logic and state management are encapsulated in ViewModels that survive configuration changes. User actions are handled through dedicated intent object

    Kotlin
    View on GitHub↗5,934
  • chrisbanes/tivichrisbanes avatar

    chrisbanes/tivi

    6,732View on GitHub↗

    Tivi is a cross-platform application for discovering and tracking television shows, built with Kotlin Multiplatform and Compose Multiplatform to share its user interface across Android, iOS, and desktop platforms. The app follows the Model-View-Intent (MVI) architecture pattern, where user actions are modelled as sealed class intents that reduce into a single immutable state object, ensuring predictable and unidirectional data flow managed through Kotlin coroutines and StateFlow. The application uses Hilt for compile-time dependency injection and SQLDelight for type-safe local data storage, c

    Kotlinandroid-applicationjetpack-composekotlin
    View on GitHub↗6,732
  • See all 30 alternatives to MVI Coroutines Flow→