# Refactoring Plaid App - A reactive MVP approach

DevFeed: [Refactoring Plaid App - A reactive MVP approach](<https://devfeed.tech/articles/refactoring-plaid-app-a-reactive-mvp-approach-25473.md>)

Original publisher: [Read original article](<https://hannesdorfmann.com/presentations/2016-06-16-refactoring-plaid/>)

Author: Hannes Dorfmann

Published: 2016-06-16T00:00:00Z

Content type: article

Language: en

Sources: [Hannes Dorfmann](<https://devfeed.tech/sources/hannes-dorfmann.md>)

Topics: [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [software-architecture](<https://devfeed.tech/topics/software-architecture.md>), [Android](<https://devfeed.tech/topics/android.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [RxJava](<https://devfeed.tech/topics/rxjava.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Google](<https://devfeed.tech/topics/google.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>), [reactive](<https://devfeed.tech/topics/reactive.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [code](<https://devfeed.tech/tags/code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [google](<https://devfeed.tech/tags/google.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [software](<https://devfeed.tech/tags/software.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [ui](<https://devfeed.tech/tags/ui.md>)

## AI overview

A presentation about refactoring the open-source Android app Plaid from a traditional architecture toward a modular, decoupled Model-View-Presenter architecture. It covers RxJava, dependency injection, testing with Test-Driven Development, code quality, and the meaning of "reactive" in this context.

## Source excerpt

Nick Butcher, developer advocate at Google, has open sourced an android app called Plaid with an outstanding UI, meaningful animations and a lot of others material design goodies. However, from the software architecture's point of view, the architecture of this app more "traditional" so that both, beginners and expert developers, can understand the source code easily.