2026-07-17 14:10:05 +03:00
2025-12-24 17:46:44 +03:00
2026-07-16 00:17:44 +03:00
2026-07-22 17:03:29 +03:00
2026-05-17 21:11:19 +03:00
2026-04-21 14:49:37 +03:00
2026-07-05 21:14:03 +03:00
2026-06-08 21:26:55 +03:00
2026-02-26 15:45:01 +03:00
2026-07-15 23:57:30 +03:00
2026-07-15 23:57:30 +03:00
2025-12-26 12:05:37 +03:00
2026-04-23 16:53:54 +03:00

Read in other languages: Русский

FromChat

FromChat is a 100% free and open-source messenger. This repository is the cross-platform client (Android + iOS; iOS is not ready yet).

📥 Download💬 Telegram Channel🖥️ Server

Features

  • Voice and video calls — LiveKit
  • Screen sharing during calls
  • Public chat — server-wide community
  • Direct messages — legal encryption scheme; server-side E2EE planned
  • Device management — active sessions
  • Dark mode by default
  • Open source

📊 Client Comparison

⚠️ iOS is temporarily not supported (Apple constraints and development cost). It will ship later.

Feature Android Web iOS
Messaging and profiles
Voice/video calls
Screen sharing
Message reactions
Rich attachment support

🏗️ Tech Stack

  • Kotlin
  • Compose Multiplatform
  • Material Design 3
  • Ktor Client
  • LiveKit — calls
  • SQLDelight — local storage
  • Firebase Messaging — push
  • Coil — images

📥 Build and Development (Android Studio)

Requirements

  • Latest Android Studio
  • JDK from Android Studio (JetBrains Runtime)

Quick start

  1. Clone the repository:

    git clone https://github.com/fromchat-messenger/android.git
    cd android
    
  2. Generate keys (Debug & Release):

    DEBUG_STORE_PASS=CHANGEME
    DEBUG_KEY_PASS=CHANGEME
    RELEASE_STORE_PASS=CHANGEME
    RELEASE_KEY_PASS=CHANGEME
    
    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
    
  3. Open in Android Studio: File → Open → repo root. Gradle syncs dependencies automatically.

  4. Run: Run → Run 'Android' (or the app debug configuration).
    Debug application id: ru.fromchat.beta.

CLI build

export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
./gradlew :app:shared:compileAndroidMain :app:android:assembleDebug

APK: app/android/build/outputs/apk/debug/android-debug.apk.

Project structure

android/
├── app/
│   ├── android/          # Android app module
│   └── shared/           # Compose Multiplatform
│       ├── commonMain/
│       ├── androidMain/
│       └── iosMain/      # not ready yet
├── utils/                # reusable utilities
│   ├── android/
│   └── shared/
└── gradle/libs.versions.toml

Code style: CODE_STYLE.md.


🤝 Contribute

Pull requests are welcome. For large changes, follow CODE_STYLE.md.

📄 License

GNU Affero General Public License v3.0 — see LICENSE.

S
Description
No description provided
Readme AGPL-3.0 20 MiB
Languages
Kotlin 99.3%
Shell 0.4%
Swift 0.2%
Java 0.1%