2023-09-03 21:43:36 +02:00
|
|
|
|
<div align="center">
|
2024-08-04 18:28:19 -04:00
|
|
|
|
<img src="https://img.shields.io/badge/Kotlin-1.9.21-7f52ff?logo=kotlin" />
|
|
|
|
|
<img src="https://img.shields.io/badge/Android-26+-green" />
|
|
|
|
|
<img src="https://img.shields.io/badge/Jetpack_Compose-1.5.11-3e7fea?logo=jetpackcompose" />
|
|
|
|
|
<img src="https://img.shields.io/github/license/livefasteattrashraccoon/raccoonforlemmy" />
|
2023-09-03 21:43:36 +02:00
|
|
|
|
</div>
|
2024-08-03 22:53:59 -04:00
|
|
|
|
|
2023-09-03 21:43:36 +02:00
|
|
|
|
<br />
|
|
|
|
|
|
2024-08-03 22:53:59 -04:00
|
|
|
|
<div align="center">
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/47265cc3-2bb0-4c9b-8dfa-4923dea22571" width="250" height="auto" />
|
2024-08-03 22:53:59 -04:00
|
|
|
|
</div>
|
|
|
|
|
|
2023-09-26 18:39:49 +02:00
|
|
|
|
# Raccoon for Lemmy
|
2023-08-04 15:18:57 +02:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
A Kotlin Multiplatform client for Lemmy.
|
2023-08-04 00:04:07 +02:00
|
|
|
|
|
2024-08-04 18:28:19 -04:00
|
|
|
|
<div align="center">
|
|
|
|
|
<table>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/4f260197-3902-4f95-b2d1-c58c50bdd484" width="310" alt="home screen" />
|
2024-08-04 18:28:19 -04:00
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/49425175-8949-4aec-bea0-185143fc7096" width="310" alt="post detail" />
|
2024-08-04 18:28:19 -04:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/b3866545-8a32-4a3c-b32f-87ddcc8a7b65" width="310" alt="explore screen" />
|
2024-08-04 18:28:19 -04:00
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/36249619-57d6-4710-9111-21fcbf624a0c" width="310" alt="community detail" />
|
2024-08-04 18:28:19 -04:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/70a5996d-fbcb-4d71-9d46-27a20e6b0b94" width="310" alt="inbox screen" />
|
2024-08-04 18:28:19 -04:00
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<img src="https://github.com/user-attachments/assets/f1f9097e-b935-4bcf-9956-714fadc41e85" width="310" alt="settings screen" />
|
2024-08-04 18:28:19 -04:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
Raccoon for Lemmy is a client for the federated aggregation and discussion platform Lemmy.
|
2024-01-25 23:56:42 +01:00
|
|
|
|
|
|
|
|
|
The project started as an exercise to play around with Kotlin Multiplatform (KMP) and Compose
|
|
|
|
|
multiplatform and gradually grew as a fully functional client with many features.
|
|
|
|
|
|
2024-08-04 18:28:19 -04:00
|
|
|
|
## Disclaimer
|
|
|
|
|
|
|
|
|
|
This is an experimental project and some technologies it is build upon are still in pre-production
|
|
|
|
|
stage, moreover this is a side-project developed by volunteers in their spare time, so use _at your
|
|
|
|
|
own risk_, please don't expect a full-fledged and fully functional app and be prepared to occasional
|
|
|
|
|
failures and yet-to-implement features.
|
|
|
|
|
|
|
|
|
|
Please be willing to contribute if you can, instead of being ready to demand. Thank you.
|
2024-01-25 23:56:42 +01:00
|
|
|
|
|
2023-10-05 23:55:07 +02:00
|
|
|
|
## Main features
|
2023-08-04 00:04:07 +02:00
|
|
|
|
|
2023-10-05 23:55:07 +02:00
|
|
|
|
- view post feed and comments with different listing and sort types;
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- possibility to upvote and downvote (with configurable swipe actions);
|
2024-08-04 18:28:19 -04:00
|
|
|
|
- community and user detail;
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- review your own posts and comments (created by you, bookmarked, liked/disliked);
|
2023-10-05 23:55:07 +02:00
|
|
|
|
- inbox with replies, mentions and direct messages;
|
2024-08-04 18:28:19 -04:00
|
|
|
|
- global search on Lemmy with different result types (all, posts, comments, user, communities);
|
2023-10-24 21:15:02 +02:00
|
|
|
|
- create and edit new posts (with optional images);
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- cross-post contents to other communities;
|
2023-10-24 21:15:02 +02:00
|
|
|
|
- reply to post and comments (and edit replies);
|
2024-08-04 18:28:19 -04:00
|
|
|
|
- mark posts as read and hide read contents;
|
2023-12-24 09:46:35 +01:00
|
|
|
|
- custom appearance (color scheme, fonts, text sizes, post layout, etc.);
|
2023-11-08 13:56:11 +01:00
|
|
|
|
- custom localization (independent of system settings);
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- block users, communities and instances;
|
2024-08-04 18:28:19 -04:00
|
|
|
|
- report post and comments to moderators;
|
2023-10-05 23:55:07 +02:00
|
|
|
|
- support for multiple accounts (and multiple instances) with account-specific settings;
|
2023-11-08 13:56:11 +01:00
|
|
|
|
- lazy scrolling (referred to as "zombie mode");
|
2023-10-05 23:55:07 +02:00
|
|
|
|
- explore all the communities on a given instance in guest mode;
|
2023-11-28 14:02:45 +01:00
|
|
|
|
- multi-community (community aggregation);
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- community moderation, instance moderation and moderation log;
|
|
|
|
|
- save posts and comments you are creating as drafts to edit them later.
|
2023-10-05 23:55:07 +02:00
|
|
|
|
|
|
|
|
|
Most clients for Lemmy currently offer the first points (with various degrees of completion), so
|
2024-08-05 13:48:40 +02:00
|
|
|
|
there is nothing special about Raccoon, whereas the last ones are less common and are directed to
|
|
|
|
|
more demanding users.
|
2023-11-08 13:56:11 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
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 of the system language.
|
2023-11-28 14:02:45 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
This app is also intended for moderators who want to use their mobile device, offering moderation
|
|
|
|
|
tools (feature post, lock post, distinguish comment, remove post/comment, ban users) and the ability
|
|
|
|
|
to revert any of these actions. It also has admin tools (purge users/posts/comments/communities,
|
|
|
|
|
feature posts locally, hide/unhide communities) to simplify admin moderation without having to
|
|
|
|
|
switch to the web UI.
|
2023-11-28 14:02:45 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
The project is under active development, so expect new features to be added over time. Have a look
|
|
|
|
|
on the issues labeled with "feature" in the issue tracker to get an idea of what's going to come next.
|
2023-10-05 23:55:07 +02:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
If you have ideas, feedback, suggestions or comments remember to speak up and use your voice. You
|
|
|
|
|
can add reports or request features and they will be considered.
|
2023-10-05 23:55:07 +02:00
|
|
|
|
|
|
|
|
|
## Why was the project started?
|
|
|
|
|
|
|
|
|
|
Because raccoons are so adorable, aren't they? 🦝🦝🦝
|
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
Joking apart, one of the main goals was to experiment with KMP and learn how to properly deal with
|
|
|
|
|
the challenges of a multiplatform environment, and a medium-sized project like this was an ideal
|
|
|
|
|
testing ground for that technology.
|
2024-01-23 09:28:30 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
Secondly, I felt that the Android ecosystem of Lemmy apps was a little "poor" with few native apps
|
|
|
|
|
(fewer open source), while the "market" is dominated by iOS and cross-platform clients.
|
|
|
|
|
I️ ❤️ Kotlin, I ❤️ Free and Open Source Software and I ❤️ native app development, so there was a niche
|
|
|
|
|
that could be filled.
|
2023-12-24 09:46:35 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
Developing a new client was an opportunity to add all the good features that were "scattered" across
|
|
|
|
|
different apps, e.g. the feature richness of [Liftoff](https://github.com/liftoff-app/liftoff),
|
|
|
|
|
the multi-community feature of [Summit](https://github.com/idunnololz/summit-for-lemmy) and the
|
|
|
|
|
polished UI of the really great [Thunder](https://github.com/thunder-app/thunder) and so on.
|
|
|
|
|
This app tries to be configurable enough to make users feel "at home" and choose what they want,
|
|
|
|
|
while at the same time having a not too cluttered interface.
|
2023-10-05 23:55:07 +02:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
In the third place, this app has been a means to dig deeper inside Lemmy's internals and become more
|
|
|
|
|
humble and patient towards other apps because there are technical difficulties in having to deal
|
|
|
|
|
with a platform like Lemmy.
|
2024-01-24 19:32:23 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
This project _is_ all about experimenting and learning, so please be patient.
|
2024-08-04 18:28:19 -04:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
## Technical notes:
|
2023-08-04 00:04:07 +02:00
|
|
|
|
|
2023-08-04 15:18:57 +02:00
|
|
|
|
- [Koin](https://github.com/InsertKoinIO/koin) for dependency injection
|
|
|
|
|
- [Voyager](https://github.com/adrielcafe/voyager) for screen navigation
|
2024-06-11 14:13:10 +02:00
|
|
|
|
- [Ktor](https://github.com/ktorio/ktor) and [Ktorfit](https://github.com/Foso/Ktorfit) for
|
|
|
|
|
networking
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- [Lyricist](https://github.com/adrielcafe/lyricist) for l10n
|
2024-06-11 14:13:10 +02:00
|
|
|
|
- [Multiplatform settings](https://github.com/russhwolf/multiplatform-settings) for encrypted
|
|
|
|
|
preferences
|
|
|
|
|
- [SQLDelight](https://github.com/cashapp/sqldelight)
|
2024-08-04 18:28:19 -04:00
|
|
|
|
and [SQLCipher](https://github.com/sqlcipher/sqlcipher) for local persistence
|
2024-08-05 13:48:40 +02:00
|
|
|
|
- [Multiplatform Markdown Renderer](https://github.com/mikepenz/multiplatform-markdown-renderer) for
|
|
|
|
|
Markdown rendering
|
2023-08-04 00:04:07 +02:00
|
|
|
|
|
2024-01-13 14:38:31 +01:00
|
|
|
|
More info about the technologies used in the project can be found in
|
2024-08-04 18:28:19 -04:00
|
|
|
|
the [CONTRIBUTING.md](https://github.com/livefasteattrashraccoon/RaccoonForLemmy/blob/master/CONTRIBUTING.md#51-tech-stack).
|
|
|
|
|
|
|
|
|
|
## Want to try it out?
|
|
|
|
|
|
|
|
|
|
Here are some options to install the application on your device.
|
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
<div align="center">
|
|
|
|
|
<div style="display: flex; flex-flow: row wrap; justify-content: center; align-items: center;">
|
|
|
|
|
<a href="https://github.com/ImranR98/Obtainium/releases"><img width="200" src="https://github.com/user-attachments/assets/377575fe-a651-4420-afad-8dee21618c44" /></a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-08-04 18:28:19 -04:00
|
|
|
|
|
|
|
|
|
<br />
|
2024-01-24 19:32:23 +01:00
|
|
|
|
|
2023-10-08 13:35:45 +02:00
|
|
|
|
## Want to leave your feedback or report a bug?
|
|
|
|
|
|
|
|
|
|
- open an issue on this
|
2024-08-04 18:28:19 -04:00
|
|
|
|
project's [issue tracker](https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy/issues) to report bugs
|
2023-10-08 13:35:45 +02:00
|
|
|
|
or request new features
|
2024-08-04 18:28:19 -04:00
|
|
|
|
- if you are a translator and want to help out with l10n or submit some corrections but you don't
|
|
|
|
|
feel confident with repository forks, pull requests, managing resource files, etc. feel free to
|
2024-08-05 13:48:40 +02:00
|
|
|
|
drop an email or contact the maintainers in any way.
|
2023-12-24 09:46:35 +01:00
|
|
|
|
|
2024-06-11 14:13:10 +02:00
|
|
|
|
Please remember: every contribution is welcome and everyone's opinion matters here. This is a
|
2024-08-04 18:28:19 -04:00
|
|
|
|
community project, open source, ad-free and free of charge, and it belongs to us all so don't be
|
|
|
|
|
afraid to get involved.
|
2023-11-08 13:56:11 +01:00
|
|
|
|
|
2024-08-05 13:48:40 +02:00
|
|
|
|
And don't forget every 🦝's motto: «Live Fast, Eat Trash» (for shortness L. F. E. T.).
|