Raccoon for Lemmy

Raccoon for Lemmy 🦝 documentation

View on GitHub

Welcome to the homepage of Raccoon for Lemmy!

If you need some guidance about how to use the app, please have a look at the User manual.

Table of contents

Overview

Raccoon is a mobile client for Lemmy, a federated aggregation and discussion platform. The app is implemented as a Kotlin Multiplatform (KMP) project, mainly focusing on the Android platform.

The project was started as an exercise to play around with Kotlin Multiplatform and Compose multiplatform and gradually grew as a fully functional client with several features.

Rationale

There are several reasons why this project was started:

In the Lemmy ecosystem for Android, there are many cross-platform alternatives either implemented with Flutter or React, a couple of native options written in Java and just one native pure-Kotlin application. We️ ❤️ Kotlin, we ❤️ Free and Open Source Software and we ❤️ native app development, so there was a niche to be filled and we are trying our best to do so.

Another important factor which determined the creation of a new client was that different projects had very interesting features but no one had them all at the same time. Lemmur first and Liftoff then were great apps with a lot of advanced features (e.g. the possibility to explore all the communities of an external instance in guest mode). Summit is another great project with unique features like multi-communities, a high degree of customization and very good performance. Finally, Thunder has a really appealing and polished UI. All these apps have been and continue to be sources of inspiration and motivation for Raccoon, which aims at having all the good sides of them, in a Kotlin open source app.

If you are wondering why the app is called like that, aren’t raccoons just adorable? 🦝 Jokes aside, Lemmy users used to refer to themselves as “lemmings” and the platform logo clearly recalls that animal, so there was this tradition in the early days to use animals names for clients (some examples being Lemmur, Jerboa and Fennec). The original developers of this app really liked raccoons so they choose that. Raccoons are cunning animals that adapt to live in harsh conditions, finding a way to survive even with what we consider “trash”. They look like masked criminals but do not harm anyone, they are lazy, chubby and cute.

As long as you are on this page, don’t forget every raccoon’s motto: «Live Fast, Eat Trash» (abbreviated L.F.E.T.).

Key app features

Here is a list of the most important features of the app:

Most clients for Lemmy currently offer the first points (with various degrees of completion), whereas the last ones are trickier and less common, so they are directed to more demanding users, who like to explore the Lemmy ecosystem, play around with settings and fine-tune their client to their needs.

Concerning customization, the ability to change some aspects like font face or size and app colors, vote format, bar transparency and so on was of paramount importance from the very beginning. Similarly, users should be able to use the app in their native language and change the UI language independently from the system language, so localization is a first-class citizen in this project too.

For moderators, it is also nice to be able to moderate content from your mobile device instead of using the web interface, and in the beginning moderation tools were rare among mobile clients. This app tried to bridge this gap and offer moderation tools (feature post, lock post, distinguish comment, remove post/comment, ban users and the ability to revert any of these actions).

Credits and acknowledgements

Credits

A saying from the original developer:

«Whenever in doubt, anguish or uncertainty, look at the code of Jerboa for Lemmy».

It is without any doubt that this project has a gratitude debt towards Jerboa, mainly in two crucial aspects of the app such as comment processing to reconstruct the tree with missing nodes, where the memoized algorithm is inspired by Jerboa’s.

The UI is inspired (in principle, rather than in actual implementation) on the great Thunder app.

The ideas for some of the features come from Liftoff, e.g. the guest mode, while some other come from Summit, which is again both source of inspiration and admiration.

Towards all the authors and contributors of these projects, a great “thank you” 🙏️🙏️🙏️

Acknowledgements

A special thanks goes to all those who contributed so far (in nearly chronological order):

This project would not be what it is were it not for the huge amount of patience and dedication of these early adopters who sent me continuous feedback and ideas for improvement after every release, reported bugs, offered to help, submitted translations to their local language, offered help to other users and made the community a better place, etc.

You are awesome… THANKS ❤️🦝️❤️

Further reading

If what you have read so far sounds interesting and you want to know more, here are some useful links:

If, on the other hand, you just want to interact with the community, provide suggestions, report bugs, contribute with translations or tell your opinion, you can: