This repository contains the complete source code for an educational project on Android Architecture Patterns, used as part of a public talk on software architecture at TLP Innova 2019.
It is designed as a practical comparison of real implementations of the same Android app using different architecture patterns.
This project demonstrates the following architecture patterns in real Android apps built with Kotlin:
✅ Spaghetti Code – no architecture, just raw code.
✅ MVP – Model View Presenter.
✅ MVVM – Model View ViewModel.
✅ VIPER – View, Interactor, Presenter, Entity, Router.
Each architecture is available in a separate branch.
You can explore how each one affects separation of concerns, testability, and code maintenance.
| Branch | Architecture | Description |
|---|---|---|
master |
Spaghetti | No architecture, tightly coupled code. |
mvp_pattern |
MVP | Presenter handles logic, View is passive. |
mvvm_pattern |
MVVM | ViewModel exposes observable data to View. |
viper_pattern |
VIPER | Clean and scalable, inspired by iOS VIPER. |
This repository was originally created as a companion for a public talk given at TLP Innova 2019, titled:
"Arquitectura de aplicaciones móviles: El camino hacia un software robusto"
Google Drive : (https://docs.google.com/presentation/d/1QwVwmIDSfz9CUqSO2QPohKhdjfzjtJsJxFK-wIYW5Jg/edit?usp=sharing)
Developed and taught by Manuel Bacallado.
Android · Kotlin · Mobile App Development · MVP · MVVM · VIPER · Clean Architecture · Educational Project.