element-hq / element-hq/element-android

Proposal for a minimalistic flavour

Open
#1,559 3 comments 5 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
3.7k
Forks
917
PR merge metrics
No merged PRs in 30d

Description

Hi,

I am the developer of a friendly and minimalistic fork of Riot-Android called [miniVector](https://github.com/LiMium/mini-vector-android). At the time I created the fork, I was not familiar with the Android Gradle build system and its ability to create application flavours from a single code-base. By the time I learnt about it, it was too late to propose a flavour to Riot-Android as all the action had moved to RiotX.

But now that Riot-Android is switching to this new code-base, I would like to propose a minimalistic flavour here.

The minimalistic flavour could, for example, not include the following dependencies:
* ShortcutBadger
* barcodescanner
* Jitsi (if and when it is added)
* any other dependency which is not critical for matrix use

The reasons why some people might like fewer dependencies are:
* Reduced surface area of attack
* Reduced permissions for app
* Apk size reduction, and better performance on older devices

### Quick Design proposal
Define an interface for each optional functionality. For example `interface Badger` and then implement it differently in each flavour. The implementation in minimal flavour would just be a dummy implementation.

### Benefit of flavour v/s fork
* Both flavours will be updated in sync
* Both flavours can have same publisher. Hence no need for different logo, and other graphical assets.

---

If this is acceptable, I would be happy to send a first-cut PR that adds such a flavour.

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.