alexispurslane / neo

An Android-native, Material You-based, slick, clean, UX-first Matrix client
GNU General Public License v3.0
15 stars 1 forks source link
android-app chat client compose jetpack matrix

Neo

"He's beginning to believe"


Neo is newer, faster, and more featureful Android-native client for the Matrix decentralized chat protocol, designed for Discord fugitives.

šŸš§ Status: ALPHA QUALITY SOFTWARE šŸš§

Disclaimer: This project is in early alpha. I'm trying to polish and bugfix and optimize as I go, so that each feature I complete is largely in its final form, but the overall application will be lacking features and polish up to my high standards for a very long time. Please judge with that in mind!

Why do we need another Matrix client?

The mobile Matrix client space suffers from a critical hole in the market: while each of the existing options has their benefits and drawbacks, none offers the fast, feature-rich, efficient to navigate, and server/space-oriented (IRC-lite) model of Discord.

Element is well supported and covers the basic Matrix protocol well, but it is slow, inefficiently laid out (requiring more steps than necessary to switch servers/spaces and channels/rooms because the current room, the rooms in a space, and the spaces you are a member of are all completely separate screens, and it does not allow gestures to be used to navigate besides the unreliable OS-level "back" gesture), and doesn't support a lot of the optional matrix protocols that would make it appealing for those looking to switch from things like Discord.

SchildiChat is a barebones fork of an old version of Element that seems to want to want to pretend Matrix never developed past the point the fork was made, refusing to support even basic protocol additions like spaces in an attempt to retain the simple, iMessage-chat-like M.O. of old Matrix. Moreover it suffers from the same slowness as regular Element.

Then there's FluffyChat, Neo's primary competitor. It is beautiful, uses Flutter to achieve better UI performance relative to Element, and it supports spaces at least. However it doesn't currently support image packs or other optional matrix protocol features that would make it attractive to Discord fugitives, and doesn't seem interested in them as a core feature, rather forking that off to the SDK-level. Furthermore, for many UI features it seems to rely heavily on text commands, and the interface suffers from the same awkward, uncessarily inefficient layout as the other matrix clients.

Neo aims to fill this gap with an efficiently designed, gesture navigation oriented, fully GUI, native-performance, Discord-like client.

It's standout features are:

Features

Installation

Eventually Neo will be released on F-Droid. For now, once there is a public Alpha available, you should be able to get it in the "releases" sidebar on GitHub.

<img src="https://github.com/machiav3lli/oandbackupx/blob/034b226cea5c1b30eb4f6a6f313e4dadcbb0ece4/badge_github.png" alt="Get it on GitHub" height="80">

Roadmap

Roadmap to the first alpha

Roadmap to 1.0

Acknowledgements

[^1]: Firebase Cloud Messaging (FCM) is what most applications on Android use. With FCM, app developers must register the server they want to produce push notifications with Google's cloud infrastructure, and then put a manifest file in their application indicating they want to recieve notifications from that server. Then Google Play Services (a piece of closed-source data-hoovering spyware) takes the list of all the applications that want push notifications and all the servers they want them from, and listens to Google's central Firebase Cloud Messaging servers, which use the configuration the app developer created on Google's cloud platform to relay push notifications from the various sources they originate from to Google Play Services, which then distributes them to the relevant apps. This of course creates privacy and centralization/monopoly concerns, since it requires all apps that want push notifications to use Google Play Services (thus locking Android users into using a version of Android made by Google) and routes all notifications through Google's services. On the other hand, Neo's architecture bypasses that at a very, very small battery cost ("consumes about 0-1% of battery in 17h of use" according to the creators of the foreground service algorithm I use). Neo's architecture also allows receiveing push notifications from arbitrary self-hosted Matrix servers with no further setup, whereas getting traditional FCM push notifications to work would require each owner of a self-hosted Matrix server to individually connect their server to the FCM servers and then release a custom build of the app.