SmallTalk è un messenger Android minimale, moderno, incentrato sugli amici e sulla famiglia. Fortemente ispirato a Whatsapp e Signal, è alimentato da Matrix.
https://noblogo.org/filippodb/mai-piu-notifiche-da-google-guida-a-unified-push-su-mastodon-matrix-e-telegram
40222b5ea3 | ||
---|---|---|
.github | ||
.idea | ||
app | ||
core | ||
design-library | ||
domains | ||
external | ||
fastlane/metadata/android/en-US | ||
features | ||
gradle/wrapper | ||
matrix | ||
test-harness | ||
tools | ||
.gitignore | ||
LICENSE | ||
README.md | ||
build.gradle | ||
dependencies.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
settings.gradle | ||
version.json |
README.md
SmallTalk
SmallTalk
is a minimal, modern, friends and family focused Android messenger. Heavily inspired by Whatsapp and Signal, powered by Matrix.
Project mantra
- Tiny app size - currently 1.80mb~ when provided via app bundle.
- Focused on reliability and stability.
- Bare-bones feature set.
Feature list
- Login with Matrix ID/Password
- Combined Room and DM interface
- End to end encryption
- Message bubbles, supporting text, replies and edits
- Push notifications (DMs always notify, Rooms notify once)
- Importing of E2E room keys from Element clients
- UnifiedPush
- FOSS variant
Planned
- Device verification (technically supported but has no UI)
- Invitations (technically supported but has no UI)
- Room history
- Message media
- Cross signing
- Google drive backups
- Markdown subset (bold, italic, blocks)
- Changing user name/avatar
- Room settings and information
- Exporting E2E room keys
- Local search
- Registration
Technical details
- Built on Jetpack compose and kotlin multiplatform libraries ktor and sqldelight (although the project is not currently setup to be multiplatform until needed).
- Greenfield matrix SDK implementation, focus on separation, testability and parallelisation.
- Heavily optimised build script, clean cacheless builds are sub 10 seconds with a warmed up gradle daemon.
- Avoids code generation where possible in favour of build speed, this mainly means manual DI.
- A pure kotlin test harness to allow for critical flow assertions Smoke Tests, currently Linux x86-64 only.
Building
Debug .apk
./gradlew assembleDebug
Release (signed with debug key) .apk
./gradlew assembleRelease
Unsigned release .apk
./gradlew assembleRelease -Punsigned
Unsigned release (FOSS) .apk
./gradlew assembleRelease -Punsigned -Pfoss