2020-02-23 09:06:01 +00:00
![](https://i.imgur.com/wi7RlVt.png)
< p align = "center" >
< a target = "new" href = "https://play.google.com/store/apps/details?id=chat.fluffy.fluffychat" >
2020-02-23 09:08:22 +00:00
< img height = "66px" src = "https://christianpauly.gitlab.io/fluffychat-website/assets/images/google-play-badge.png" / >
2020-02-23 09:06:01 +00:00
< / a >
2020-07-01 18:55:00 +00:00
< a target = "new" href = "https://fluffychat.im/en/fdroid.html" >
2020-02-23 09:08:22 +00:00
< img height = "66px" src = "https://christianpauly.gitlab.io/fluffychat-website/assets/images/fdroid_button.png " / >
2020-02-23 09:06:01 +00:00
< / a >
< br >
2020-10-08 11:44:35 +00:00
< a href = "https://web.fluffychat.im" target = "new" > Open FluffyChat in the browser< / a > - < a href = "https://matrix.to/#/#fluffychat:matrix.org" target = "new" > Join the community< / a > - < a href = "https://metalhead.club/@krille" target = "new" > Follow me on Mastodon< / a > - < a href = "https://hosted.weblate.org/projects/fluffychat/" target = "new" > Translate FluffyChat< / a > - < a href = "https://gitlab.com/ChristianPauly/fluffychat-website" target = "new" > Translate the website< / a > - < a href = "https://christianpauly.gitlab.io/fluffychat-website/faq.html" target = "new" > FAQ< / a > - < a href = "https://christianpauly.gitlab.io/fluffychat-website/" target = "new" > Website< / a > - < a href = "https://gitlab.com/ChristianPauly/fluffychat-flutter/-/jobs/artifacts/main/browse?job=build_android_apk" target = "new" > Download latest APK< / a > - < a href = "https://gitlab.com/famedly/famedlysdk" target = "new" > Famedly Matrix SDK< / a >
2020-02-23 09:06:01 +00:00
< / p >
< br >
< br >
# Features
* Single and group chats
* Send images and files
2020-09-29 06:45:02 +00:00
* Voice messages
2020-02-23 09:06:01 +00:00
* Offline chat history
* Push Notifications
* Account settings
* Display user avatars
* Themes, chat wallpapers and dark mode
* Device management
* Edit chat settings and permissions
* Kick, ban and unban users
* Display and edit chat topics
2020-02-23 09:08:22 +00:00
* Change chat & user avatars
2020-02-23 09:06:01 +00:00
* Archived chats
* Discover public chats on the user's homeserver
2020-02-23 09:08:22 +00:00
* Registration
2020-09-29 06:45:02 +00:00
* Disable account
* Change password
* End-To-End-Encryption
2020-01-03 17:41:50 +00:00
2020-10-10 10:22:08 +00:00
# How to build
2020-01-01 18:10:13 +00:00
2020-01-03 08:28:17 +00:00
1. [Install flutter ](https://flutter.dev )
2020-01-01 18:10:13 +00:00
2020-02-23 09:06:01 +00:00
2. Clone the repo:
```
git clone --recurse-submodules https://gitlab.com/ChristianPauly/fluffychat-flutter
cd fluffychat-flutter
```
2020-01-01 18:10:13 +00:00
2020-10-10 10:22:08 +00:00
3. Choose your target platform below and enable support for it.
2020-01-03 08:28:17 +00:00
2020-10-10 10:22:08 +00:00
4. Debug with: `flutter run`
2020-02-23 09:12:31 +00:00
2020-10-10 10:22:08 +00:00
### Android
* Install CMake from the SDK Manager
* Install ninja:
2020-02-23 09:12:31 +00:00
```
sudo apt install ninja-build
```
2020-10-10 10:22:08 +00:00
* Build with: `flutter build apk`
### iOS / iPadOS
* With xcode you can't build a release version without our cert. :-/ Use `flutter run --profile` to have a working version on your iOS device.
2020-01-03 08:28:17 +00:00
### Web
2020-10-10 10:22:08 +00:00
* Enable web support in Flutter: https://flutter.dev/docs/get-started/web
* Build with: `flutter build web --release`
2020-01-03 08:28:17 +00:00
2020-10-10 10:22:08 +00:00
### Desktop (Linux, Windows, macOS)
* Enable Desktop support in Flutter: https://flutter.dev/desktop
* Build with one of these:
```
flutter build linux --release
flutter build windows --release
flutter build macos --release
```
2020-01-03 08:28:17 +00:00
2020-01-20 08:50:49 +00:00
## How to add translations for your language
2020-06-20 10:09:19 +00:00
You can use Weblate to translate the app to your language:
https://hosted.weblate.org/projects/fluffychat/
2020-01-20 08:50:49 +00:00
1. Replace the non-translated string in the codebase:
```
Text("Hello world"),
```
with a method call:
```
2020-05-07 05:52:40 +00:00
Text(L10n.of(context).helloWorld),
2020-01-20 08:50:49 +00:00
```
2020-10-03 11:11:07 +00:00
and add the following import if missing:
2020-01-20 08:50:49 +00:00
```
2020-10-03 11:11:07 +00:00
import 'package:flutter_gen/gen_l10n/l10n.dart';
2020-01-20 08:50:49 +00:00
```
2020-10-03 11:11:07 +00:00
2. Add the string to `/lib/l10n/l10n_en.arb` :
2020-01-20 08:50:49 +00:00
2020-10-03 11:11:07 +00:00
(The following example need to be sorounded by the usual json `{}` and after the `@@locale` key)
Example A:
2020-01-20 08:50:49 +00:00
```
2020-10-03 11:11:07 +00:00
"helloWorld": "Hello World!",
"@helloWorld": {
"description": "The conventional newborn programmer greeting"
}
2020-01-20 08:50:49 +00:00
```
2020-10-03 11:11:07 +00:00
Example B:
```
"hello": "Hello {userName}",
"@hello": {
"description": "A message with a single parameter",
"placeholders": {
"userName": {
"type": “String”,
“example”: “Bob”
}
}
}
```
2020-02-23 09:06:01 +00:00
2020-10-03 11:11:07 +00:00
3. For testing just run a regular build without extras
2020-02-23 09:06:01 +00:00
# Special thanks to
* < a href = "https://github.com/fabiyamada" > Fabiyamada</ a > is a graphics designer from Brasil and has made the fluffychat logo and the banner. Big thanks for her great designs.
* < a href = "https://github.com/advocatux" > Advocatux</ a > has made the Spanish translation with great love and care. He always stands by my side and supports my work with great commitment.
* Thanks to MTRNord and Sorunome for developing.
* Thanks to Mark for all his support and the chat background.
* Also thanks to all translators and testers! With your help, fluffychat is now available in more than 12 languages.