Files
app/README.md
T
denis0001-dev bf27b69af0 Update README
Signed-off-by: denis0001-dev <denis0001.dev@ya.ru>
2026-07-13 15:43:55 +03:00

6.5 KiB

Читать на других языках: English

FromChat

FromChat — 100% бесплатный и открытый мессенджер. В этом репозитории содержится кроссплатформенный клиент для Android и iOS.

📥 Скачать💬 Telegram-канал🖥️ Сервер

Возможности

  • Голосовые и видеозвонки — высокое качество связи через LiveKit
  • Совместное использование экрана — демонстрация экрана при вызовах
  • Общий чат — сообщество всех пользователей на сервере
  • Личные сообщения — используется легальная схема шифрования. Планируется режим E2EE на сервере.
  • Управление устройствами — контроль активных сеансов
  • Тёмный режим по умолчанию — стильный и приятный для глаз вид
  • Открытый исходный код — полная прозрачность

📊 Сравнение клиентов

⚠️ iOS временно не поддерживается. Разработка iOS-части требует много времени и из-за ограничений Apple это гораздо сложнее, чем на Android. Поэтому она выйдет позже.

В этой таблице показано, какие возможности реализованы в официальных клиентах.

Возможность Android Web iOS
Обмен сообщениями и профили
Голосовые/видеозвонки
Совместное использование экрана
Реакции на сообщения
Расширенная поддержка вложений

🏗️ Технологический стек

  • Kotlin — язык программирования, ориентированный на безопасность и производительность
  • Compose Multiplatform — объявленный UI фреймворк для кроссплатформенной разработки
  • Material Design 3 — современные компоненты пользовательского интерфейса
  • Ktor Client — асинхронный HTTP клиент для сетевых запросов
  • LiveKit — инфраструктура для видеозвонков и конференций
  • SQLDelight — тип-безопасные SQL запросы для локального хранилища данных
  • Firebase Messaging — push-уведомления
  • Coil — загрузка и кэширование изображений

📥 Сборка и разработка (Android Studio)

Требования

  • Последняя версия Android Studio
  • Компоненты, обновленные до последних версий

Быстрый старт

  1. Клонируйте репозиторий:
 git clone https://github.com/fromchat-messenger/app.git
 cd app
  1. Сгенерируйте ключи (Debug & Release):
  2. Установите переменные (замените CHANGEME на ваши надежные пароли): bash DEBUG_STORE_PASS=CHANGEME DEBUG_KEY_PASS=CHANGEME RELEASE_STORE_PASS=CHANGEME RELEASE_KEY_PASS=CHANGEME
  3. Выполните команды: ```bash mkdir -p app/android/keys
keytool -genkey -v -keystore app/android/keys/debug.jks \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -alias key0 -storepass $DEBUG_STORE_PASS -keypass $DEBUG_KEY_PASS \
  -dname "CN=Debug, O=FromChat, C=RU"

keytool -genkey -v -keystore app/android/keys/release.jks \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -alias key0 -storepass $RELEASE_STORE_PASS -keypass $RELEASE_KEY_PASS \
  -dname "CN=Release, O=FromChat, C=RU"

cat > app/android/keystore.properties << EOF
releaseStorePassword=$RELEASE_STORE_PASS
releaseKeyPassword=$RELEASE_KEY_PASS
debugStorePassword=$DEBUG_STORE_PASS
debugKeyPassword=$DEBUG_KEY_PASS
EOF
```
  1. Откройте в Android Studio:
  • Выберите: File → Open → app/
  • Android Studio автоматически загружает все зависимости и синхронизирует Gradle
  1. Запустите:
  • Нажмите Run → Run 'Android' (Shift+F10)
  • Выберите эмулятор или подключённое устройство

Структура проекта

android/
├── app/ # Код клиента
│   ├── android/         # Модуль Android-приложения
│   └── shared/          # Общий код Compose (Android + iOS)
│       ├── commonMain/  # Кроссплатформенный код
│       ├── androidMain/ # Android-специфичный код
│       └── iosMain/     # iOS-специфичный код (еще не готово)
├── utils/ # Модуль всяких полезных штук, которые можно использовать в другом проекте
│   ├── android/ # Модуль Android-библиотеки
│   └── shared/           
└── gradle/libs.versions.toml # Управление зависимостями

🤝 Внести вклад

Если вам хочется поддержать разработку проекта, просто кидайте Pull Request, я уверен, что вы это уже знаете, мне лень это расписывать.

📄 Лицензия

Этот проект лицензирован в соответствии с лицензией GNU Affero General Public License v3.0. Подробности см. в файле LICENSE.