2024-01-22 23:12:51 +01:00
|
|
|
|
---
|
|
|
|
|
layout: default
|
|
|
|
|
---
|
|
|
|
|
|
2024-01-23 09:28:30 +01:00
|
|
|
|
Welcome to the homepage of Raccoon for Lemmy!
|
|
|
|
|
|
2024-02-08 23:38:29 +01:00
|
|
|
|
If you need some guidance about how to use the app, please have a look at
|
|
|
|
|
the [User manual](user_manual/main).
|
|
|
|
|
|
2024-01-23 09:28:30 +01:00
|
|
|
|
# Table of contents
|
2024-01-22 23:12:51 +01:00
|
|
|
|
|
|
|
|
|
- [project overview](#overview)
|
|
|
|
|
- [rationale](#rationale)
|
|
|
|
|
- [key app features](#key-app-features)
|
2024-01-23 13:41:46 +01:00
|
|
|
|
- [credits and acknowledgements](#credits-and-acknowledgements)
|
2024-01-22 23:12:51 +01:00
|
|
|
|
- [further reading](#further-reading)
|
|
|
|
|
|
|
|
|
|
# Overview
|
|
|
|
|
|
2024-01-23 09:28:30 +01:00
|
|
|
|
Raccoon for Lemmy is a mobile client for Lemmy, a federated aggregation and discussion platform. The
|
2024-01-22 23:12:51 +01:00
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
- experimenting and making some stress tests with a real world project Kotlin Multiplatform (KMP)
|
|
|
|
|
and Compose multiplatform, in order to explore what could be achieved with multiplatform libraries
|
|
|
|
|
and share as much code as possible in the `commonMain` source directory;
|
|
|
|
|
- offering a feature rich Lemmy client mainly aimed at "pro" users, i.e. users who
|
|
|
|
|
are not content with just browsing the contents of the Fediverse, creating posts and
|
|
|
|
|
answers but be able to customize the app and "feel at home" because of its theme, its localization
|
|
|
|
|
and its behaviour that each user has chosen;
|
|
|
|
|
- digging deeper inside Lemmy's internals and understand better what it is like to work with a
|
|
|
|
|
decentralized platform; we believe that the Lemmy project has a lot of potential and part of its
|
|
|
|
|
success depends on users being able to enjoy the experience on robust and well-done clients.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
2024-01-23 13:41:46 +01:00
|
|
|
|
If you are wondering why the app is called like that, aren't raccoons just adorable? 🦝 Jokes aside,
|
2024-01-22 23:12:51 +01:00
|
|
|
|
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
|
2024-01-23 09:28:30 +01:00
|
|
|
|
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.
|
2024-01-22 23:12:51 +01:00
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
- view post feed and comments with different listing and sort types;
|
|
|
|
|
- possibility to upvote and downvote (with optional and configurable swipe actions);
|
|
|
|
|
- community and user detail (with info about moderators/moderated communities);
|
|
|
|
|
- user profile with one's own posts, comments and saved items;
|
|
|
|
|
- inbox with replies, mentions and direct messages in the form of a chat;
|
|
|
|
|
- full-fledged explore section with different result types (all, posts, comments, user,
|
|
|
|
|
communities);
|
|
|
|
|
- create and edit new posts (with optional images);
|
|
|
|
|
- cross-post contents to other communities;
|
|
|
|
|
- reply to post and comments (and edit replies);
|
|
|
|
|
- mark posts as read (even while scrolling) and hide read contents;
|
|
|
|
|
- seeing raw post/comment source;
|
|
|
|
|
- custom appearance (color scheme, fonts, text sizes, post layout, etc.);
|
|
|
|
|
- custom localization (independent of system settings);
|
|
|
|
|
- block users, communities and instances (the latter requires Lemmy >= 0.19);
|
|
|
|
|
- report post and comments to moderators;
|
|
|
|
|
- support for multiple accounts (and multiple instances) with account-specific settings;
|
|
|
|
|
- lazy scrolling (referred to as "zombie mode");
|
|
|
|
|
- explore all the communities on a given instance in guest mode (instance info);
|
|
|
|
|
- multi-community (community aggregation);
|
2024-01-23 09:28:30 +01:00
|
|
|
|
- report post and comments with a reason;
|
|
|
|
|
- view the moderation log;
|
2024-01-22 23:12:51 +01:00
|
|
|
|
- community moderation tool (examine and resolve reports, ban users, feature posts, block
|
|
|
|
|
further comments from posts, mark comments as distinguished, remove posts/comments).
|
|
|
|
|
|
|
|
|
|
Most clients for Lemmy currently offer the first points (with various degrees of completion),
|
2024-01-23 09:28:30 +01:00
|
|
|
|
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.
|
2024-01-22 23:12:51 +01:00
|
|
|
|
|
2024-01-23 09:28:30 +01:00
|
|
|
|
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).
|
2024-01-22 23:12:51 +01:00
|
|
|
|
|
2024-01-23 13:41:46 +01:00
|
|
|
|
# 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](https://github.com/dessalines/jerboa), mainly in two crucial aspects of the app:
|
|
|
|
|
|
|
|
|
|
- markdown processing and rendering, where `MarkwonProvider` and its implementation are inspired by
|
|
|
|
|
Jerboa for Lemmy;
|
|
|
|
|
- comment processing to reconstruct the tree with missing nodes, where the memoized algorithm is,
|
|
|
|
|
too, inspired by Jerboa's.
|
|
|
|
|
|
|
|
|
|
The UI is inspired (in principle, rather than in actual implementation) on the
|
|
|
|
|
great [Thunder](https://github.com/thunder-app/thunder) app.
|
|
|
|
|
|
|
|
|
|
The ideas for some of the features come from [Liftoff](https://github.com/liftoff-app/liftoff), e.g.
|
|
|
|
|
the guest mode, while some other come from [Summit](https://github.com/idunnololz/summit-for-lemmy),
|
|
|
|
|
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):
|
|
|
|
|
|
|
|
|
|
- [u/rb_c](https://discuss.tchncs.de/u/rb_c)
|
|
|
|
|
- [u/heyazorin](https://lemmy.ml/u/heyazorin)
|
|
|
|
|
- [u/thegiddystitcher](https://lemm.ee/u/thegiddystitcher)
|
|
|
|
|
- [u/SgtAStrawberry](https://lemmy.world/u/SgtAStrawberry)
|
|
|
|
|
- [outerair](https://github.com/outerair)
|
|
|
|
|
- [u/Wild_Mastic](https://lemmy.world/u/Wild_Mastic)
|
|
|
|
|
- [reusityback](https://github.com/reusityback)
|
2024-02-08 23:38:29 +01:00
|
|
|
|
- [u/fisco](https://lemmy.ml/u/fisco)
|
2024-01-23 13:41:46 +01:00
|
|
|
|
- all those who reported feedback and ideas through the Lemmy community, GitHub issues, emails,
|
|
|
|
|
private messages, homing pigeons and every other imaginable media.
|
|
|
|
|
|
|
|
|
|
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,
|
2024-02-08 23:38:29 +01:00
|
|
|
|
reported bugs, offered to help, submitted translations to their local language, offered help to
|
|
|
|
|
other users and made the community a better place, etc.
|
2024-01-23 13:41:46 +01:00
|
|
|
|
|
2024-02-08 23:38:29 +01:00
|
|
|
|
You are awesome… THANKS 🙏️❤️🦝
|
2024-01-23 13:41:46 +01:00
|
|
|
|
|
2024-01-22 23:12:51 +01:00
|
|
|
|
# Further reading
|
|
|
|
|
|
|
|
|
|
If what you have read so far sounds interesting and you want to know more, here are some useful
|
|
|
|
|
links:
|
|
|
|
|
|
2024-01-24 19:32:23 +01:00
|
|
|
|
- check out the [User manual](user_manual/main);
|
|
|
|
|
- have a look at the more detailed documentation in the [Technical manual](tech_manual/main);
|
2024-01-23 23:15:54 +01:00
|
|
|
|
- consult
|
|
|
|
|
the [CONTRIBUTING.md](https://github.com/diegoberaldin/RaccoonForLemmy/blob/master/CONTRIBUTING.md)
|
2024-01-24 19:32:23 +01:00
|
|
|
|
on GitHub.
|
2024-01-23 09:28:30 +01:00
|
|
|
|
|
|
|
|
|
If, on the other hand, you just want to interact with the community, provide suggestions, report
|
|
|
|
|
bugs or tell your opinion, you can:
|
|
|
|
|
|
|
|
|
|
- use the [Matrix space](https://matrix.to/#/#raccoonforlemmy:matrix.org) to chat in real time with
|
2024-01-22 23:12:51 +01:00
|
|
|
|
other team members, there are two rooms in the space: "General" is for general information about
|
2024-01-23 23:15:54 +01:00
|
|
|
|
the app development and "Trashcan" is more for smalltalk and random topics;
|
2024-01-22 23:12:51 +01:00
|
|
|
|
- use the [Lemmy community](https://lemmy.world/c/raccoonforlemmy) to receive updates about the new
|
|
|
|
|
releases, participate into public discussions in the Lemmy style and provide your feedback or even
|
2024-01-23 23:15:54 +01:00
|
|
|
|
share your memes about raccoons with any other interested people;
|
2024-01-22 23:12:51 +01:00
|
|
|
|
- use the [GitHub issue tracker](https://github.com/diegoberaldin/RaccoonForLemmy/issues) to report
|
2024-01-23 23:15:54 +01:00
|
|
|
|
bugs or request features;
|
2024-01-22 23:12:51 +01:00
|
|
|
|
- use the [GitHub discussion section](https://github.com/diegoberaldin/RaccoonForLemmy/discussions)
|
2024-01-23 23:15:54 +01:00
|
|
|
|
for technical questions about the release roadmap, questions about app internationalization, etc.;
|
2024-01-22 23:12:51 +01:00
|
|
|
|
- finally, if none of the above methods fits your needs you
|
|
|
|
|
can [write an email](mailto:raccoonforlemmy@gmail.com) or send a private
|
2024-01-23 09:28:30 +01:00
|
|
|
|
message on Lemmy to the [original developer](https://feddit.it/u/DieguiTux8623).
|