* Translated using Weblate (Italian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Czech) Currently translated at 95.3% (2526 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (Russian) Currently translated at 97.2% (2578 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Arabic) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (German) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (German) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Czech) Currently translated at 95.3% (2526 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/ * Translated using Weblate (Czech) Currently translated at 54.2% (1245 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/cs/ * Translated using Weblate (Czech) Currently translated at 95.3% (2526 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/ * Translated using Weblate (Spanish) Currently translated at 97.1% (2575 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (2650 of 2650 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 87.8% (2342 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt_BR/ * Translated using Weblate (Latvian) Currently translated at 91.5% (2440 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/lv/ * Translated using Weblate (Lithuanian) Currently translated at 64.0% (1707 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/lt/ * Translated using Weblate (Catalan) Currently translated at 94.1% (2509 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ca/ * Translated using Weblate (Romanian) Currently translated at 93.3% (2490 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ro/ * Translated using Weblate (Romanian) Currently translated at 93.3% (2490 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ro/ * Translated using Weblate (Thai) Currently translated at 47.3% (1262 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/th/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2666 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2666 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Italian) Currently translated at 100.0% (2666 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (German) Currently translated at 100.0% (2666 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2666 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2666 of 2666 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2679 of 2679 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Italian) Currently translated at 100.0% (2679 of 2679 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2679 of 2679 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2679 of 2679 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2687 of 2687 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Italian) Currently translated at 100.0% (2687 of 2687 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2687 of 2687 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (German) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (German) Currently translated at 100.0% (2687 of 2687 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2689 of 2689 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Italian) Currently translated at 100.0% (2689 of 2689 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Russian) Currently translated at 96.0% (2584 of 2689 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (German) Currently translated at 100.0% (2689 of 2689 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2689 of 2689 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (German) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/ * Translated using Weblate (Russian) Currently translated at 96.1% (2586 of 2690 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Russian) Currently translated at 95.4% (2581 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (Hebrew) Currently translated at 77.3% (2092 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/he/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2704 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Japanese) Currently translated at 73.5% (1990 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ja/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (French) Currently translated at 88.6% (2398 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 86.4% (2337 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt_BR/ * Translated using Weblate (Czech) Currently translated at 93.2% (2521 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/ * Translated using Weblate (Spanish) Currently translated at 97.7% (2644 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/ * Translated using Weblate (Finnish) Currently translated at 53.1% (1436 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fi/ * Translated using Weblate (German) Currently translated at 99.2% (2684 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * Translated using Weblate (Dutch) Currently translated at 88.5% (2394 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/ * Translated using Weblate (Thai) Currently translated at 46.5% (1258 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/th/ * Translated using Weblate (Italian) Currently translated at 99.2% (2684 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Polish) Currently translated at 93.1% (2519 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pl/ * Translated using Weblate (Bulgarian) Currently translated at 92.0% (2488 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/bg/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2704 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2704 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (Italian) Currently translated at 100.0% (2704 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2704 of 2704 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2294 of 2294 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/ * Translated using Weblate (Hungarian) Currently translated at 99.6% (2706 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2715 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (2715 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/ * Translated using Weblate (Italian) Currently translated at 99.6% (2705 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (2715 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Russian) Currently translated at 97.1% (2637 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/ * Translated using Weblate (German) Currently translated at 100.0% (2715 of 2715 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/ * process localizations * ui: translation fixes for PR #6881 (de, es, hu, it, ar, ru, zh-rCN) (#6883) Fixes 17 individual issues across 11 files surfaced by line-by-line review of the new channel-feature translations on the weblate/translations branch. Merge-blockers - es: re-insert "/" in %1$d/%2$d format specifier in relay_bar_active, relay_bar_active_with_failures, relay_bar_connected, relay_bar_connected_with_errors (iOS .strings, .xliff, Android XML). Without the /, UI rendered "12 servidores" instead of "1/2 servidores". - zh-rCN: owner_verification_passed translated as "无效" (INVALID); both PASSED and FAILED branches read as failure. Now "链接签名已验证。". - es: connect_plan_this_is_your_link_for_channel_vName was left in English; translated to Spanish. Bugs and typos - de: tap_to_start_new_chat "einen neuen Chats" → "einen neuen Chat" (accusative cannot govern genitive/plural form). - de: lowercase indefinite pronouns "jemand"/"jemandem" in connect_with_someone, let_someone_connect_to_you, talk_to_someone. - de: v6_5_public_channels "freies kommunizieren" → "freies Kommunizieren" (nominalised infinitive must be capitalised). - de: %3$d Fehlgeschlagen → %3$d fehlgeschlagen in relay_bar_active_with_failures (parallels %3$d Fehler correctly; participle, not noun). - de iOS: restore dropped **%@** markdown bold around the profile name in "Your profile **%@** will be shared with channel relays and subscribers." - es: suscroptores → suscriptores (3 files). - es: requere → requiere (3 files). - it: relayvdi chat → relay di chat (2 files). - ru: ретранстляторы → ретрансляторы (configure_relays). - ru: подписчкика → подписчика (block_subscriber_for_all_question). - ar: الفناة → القناة (your_profile_shared_with_channel_relays). - zh-rCN: alert_text_msg_reception_error fixed truncation "这条消" and 接受 (accept) → 接收 (receive). - zh-rCN: channel_no_active_relays_try_later inverted meaning "频道有不活跃的中继" (HAS inactive relays) → "频道无活跃中继" (has no active relays). - zh-rCN: chat_link_signed removed stray "s": "(s已签名)" → "(已签名)". - zh-rCN: onboarding_or_show_qr_code fixed truncation "视频通" → "视频通话". Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: zenobit <zenobit@disroot.org> Co-authored-by: summoner001 <summoner@disroot.org> Co-authored-by: Skyward Copied <skywardcopied@users.noreply.hosted.weblate.org> Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Co-authored-by: mlanp <github@lang.xyz> Co-authored-by: slrslr <adm@prnet.info> Co-authored-by: No name <usir.alerts@onionmail.org> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Augusto Coronel <156332097+aocoronel@users.noreply.github.com> Co-authored-by: Riko Miko <rihardslaskovs@gmail.com> Co-authored-by: Anonimas <anonimas3@users.noreply.hosted.weblate.org> Co-authored-by: fran secs <fransecs@gmail.com> Co-authored-by: Anonymous <noreply@weblate.org> Co-authored-by: Alex Vornicu <vornicualex@gmail.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Roee Hershberg <roihershberg@protonmail.com> Co-authored-by: a4318 <dalse.077@gmail.com> Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com> Co-authored-by: Feroli <feroli@tuta.io> Co-authored-by: petri <pkajander@gmail.com> Co-authored-by: John m <jvanmanen@gmail.com> Co-authored-by: Titapa (PunPun) Chaiyakiturajai <titapapunne@gmail.com> Co-authored-by: Deleted User <noreply+6980@weblate.org> Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com> Co-authored-by: elgratea <weblate@fastmail.com> Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Android App Development
This is a guide to contributing to the develop of the SimpleX android and desktop apps.
Project Overview
This is the Kotlin Multiplatform (KMP) mobile and desktop client for SimpleX Chat, sharing code between Android and Desktop (JVM) platforms using Compose Multiplatform for UI.
Build Commands
# Android debug APK
./gradlew assembleDebug
# Android release APK
./gradlew assembleRelease
# Desktop distribution (current OS)
./gradlew :desktop:packageDistributionForCurrentOS
# Run desktop/JVM tests
./gradlew desktopTest
# Run Android instrumented tests (requires connected device/emulator)
./gradlew connectedAndroidTest
# Build native libraries for all platforms
./gradlew common:cmakeBuild -PcrossCompile
# Clean build
./gradlew clean
Architecture
Module Structure
common/- Shared code (Compose UI, models, business logic)src/commonMain/- Cross-platform codesrc/androidMain/- Android-specific implementationssrc/desktopMain/- Desktop-specific implementations
android/- Android app containerdesktop/- Desktop JVM app container
Key Components (common/src/commonMain/kotlin/chat/simplex/common/)
model/ChatModel.kt- Main state container with reactive properties (MutableState, MutableStateFlow)model/SimpleXAPI.kt- API bindings to Haskell core library via FFIplatform/Core.kt- FFI interface to nativelibapplibraryplatform/- Platform abstraction layer (expect/actual pattern for Android/Desktop specifics)views/- Compose UI screens organized by feature (chat, chatlist, call, usersettings, etc.)ui/theme/- Design system (colors, typography, shapes)
Native Integration
The app calls into a Haskell core library via JNI/FFI:
- CMake builds in
common/src/commonMain/cpp/android/andcpp/desktop/ - Cross-compilation toolchains in
cpp/toolchains/ - Built libraries go to
cpp/desktop/libs/(organized by platform)
Configuration
local.properties (create from local.properties.example)
compression.level=0 # APK compression (0-9)
enable_debuggable=true # Debug mode
application_id.suffix=.debug # Multiple app instances on same device
app.name=SimpleX Debug # App name for debug builds
gradle.properties
Contains versions (Kotlin, Compose, AGP) and app version info. Key settings:
kotlin.jvm.target=11database.backend=sqlite(orpostgres)
Testing
Tests are in:
common/src/commonTest/kotlin/- Cross-platform testscommon/src/desktopTest/kotlin/- Desktop-specific tests (run with./gradlew desktopTest)android/src/androidTest/- Android instrumented tests
Resources & Localization
- String resources:
common/src/commonMain/resources/MR/base/strings.xml+ 21 language variants - Uses Moko Resources (
dev.icerock.moko:resources) for cross-platform resource management - The
adjustFormattinggradle task validates string resources during build
Platform-Specific Notes
Android
- Min SDK 26, Target SDK 35
- NDK 23.1.7779620
- Supports ABI splits:
arm64-v8a,armeabi-v7a - Deep linking requires SHA certificate fingerprint in
assetlinks.json(see README.md)
Desktop
- Distributions: DMG (macOS), MSI/EXE (Windows), DEB (Linux)
- Mac signing/notarization configured via
local.properties - Video playback uses VLCJ
Gotchas
SHA Signature for verification for app links/deep links
In order for the SimpleX app to be automatically adopted for opening links from https://simplex.chat the SHA certificate fingerprint for the App installed on the phone must be in the hosted assetlinks.json file on simplex.chat.
The accepted fingerprints are in the sha256_cert_fingerprints list.
To find your SHA certificate fingerprint perform the following steps.
- Build and install your development version of the app as usual
- From the terminal in Android studio run
adb shell pm get-app-links chat.simplex.app - Copy the signature listed in
signaturesin the result - Add your signature to assetlinks.json in the website repo and make a PR. On approval, wait a few minutes for the changes to propagate to the public website and then you should be able to verify SimpleX.
More information is available here. If there is no response when running the pm get-app-links command, the intents in AndroidManifest.xml are likely misspecified. A verification attempt can be triggered using adb shell pm verify-app-links --re-verify chat.simplex.app.
Note that this is not an issue for the app store build of the app as this is signed with our app store credentials and thus there is a stable signature over users. Developers do not have general access to these credentials for development and testing.
Adding icons
-
Find a Material symbol in Rounded category.
-
Set weight to 400, grade to -25 and size to 48px.
-
Click on the icon, choose Android and download XML file.
-
Update the color to black (#FF000000) and the size to "24.dp", as in other icons.
For example, this is add reaction icon.