nextcloud / nextcloud/android

Migrate to MVP (code architectures/patterns)

Open
#2,474 12 comments 2 reactions 0 assignees View on GitHub
enhancement meta needs info pr exists technical debt
Dominant language
Kotlin
Stars
5.6k
Forks
2k
Avg merge
2d 18h
Merged PRs (30d)
92

Description

The current codebase is a bit difficult to work with in my opinion. Unit testing is especially difficult and it doesnt seem like a testable design architecture is being used. There are about a gazillion different architectures and patterns out there and while I have by no means tested them all I find that MVP is easy to understand and test. Additionally, you could consider something like the repository pattern for easier API development.

I'll be happy to create PR with a proposed MVP example. I havent been able to find the easiest place to start as it's pretty time consuming trying to wrap my head around the various bits and pieces related to an isolated activity and/or view.

Migrating to a cleaner architecture means we can actually write effective unit tests for the application. MVP would make it trivial to write unit tests for the presenter and instrumented tests for the view for full code coverage.

* [x] #2504
* [ ] TBD

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.