Coder Social home page Coder Social logo

mvflow's Introduction

MVFlow

Simple Android MVI architecture using kotlin flows*

* The library is platform-neutral but was designed with Android in mind

CI status CI status Download

Check our website for all information about the library!

Objectives

We set off with the objective of creating a minimalistic library, simple yet with all the capabilities you need.

Minimalistic yet complete

MVFlow has a very small API surface. It strives to be the smallest conceivable MVI library that could exist. In just a few minutes you will know everything there is to know about the API!

Simple

The library introduces few - if any - new concepts outside MVI, Kotlin coroutines, and Kotlin flows.

If you are familiar with those concepts, you can start using the library without a problem; if you are new to some of these concepts, you will be able to apply those concepts outside this library too.

Coroutines and flows as powerful abstractions

We believe that coroutines and flows are extremely powerful concepts that can be applied to the MVI architecture. They enable us to build a very powerful API with a small and simple surface.

Here are some advantages that they bring:

  • Coroutines make asynchronous calls very simple to write and easy to reason about;

  • Flows are a great abstraction to represent user events (clicks) and updates from background work;

  • Coroutine scopes make handling the lifecycle of requests very simple

API

You can find a guide to this library on MVFlow's website.

If you would like to take a look behind the scenes, MVFlow.kt contains all the logic in this library. PRs and feedback welcome!

You can also browse the code of the sample Android app.

Inspiration

This library got a lot of inspiration from other libraries. We would like to thank:

And everyone who contributed towards those libraries (and their respective inspirations).

mvflow's People

Contributors

pedroql avatar ablenesi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.