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
Go to file
2022-03-15 21:40:46 +00:00
.github fetching bundletool 2022-03-15 21:36:57 +00:00
.idea initial commit 2022-02-27 21:48:14 +00:00
app adding tests around the messaging view model 2022-03-07 23:18:25 +00:00
core Bump mockk from 1.12.2 to 1.12.3 2022-03-09 05:30:26 +00:00
design-library Bump accompanist-systemuicontroller from 0.24.3-alpha to 0.24.4-alpha 2022-03-15 21:02:46 +00:00
domains splitting the notification logic 2022-03-13 18:56:21 +00:00
external initial commit 2022-02-27 21:48:14 +00:00
features using combine instead of merge for syncing until the event appears 2022-03-13 19:04:49 +00:00
gradle/wrapper initial commit 2022-02-27 21:48:14 +00:00
matrix splitting the notification logic 2022-03-13 18:56:21 +00:00
test-harness caching pip depedencies 2022-03-08 22:40:10 +00:00
tools ignoring stub modules from coverage report 2022-03-13 14:15:24 +00:00
.gitignore initial commit 2022-02-27 21:48:14 +00:00
build.gradle adding tests around the timeline usecase 2022-03-13 14:12:13 +00:00
dependencies.gradle Bump kotlinx-serialization-json from 1.3.0 to 1.3.2 2022-03-09 05:30:22 +00:00
gradle.properties initial commit 2022-02-27 21:48:14 +00:00
gradlew initial commit 2022-02-27 21:48:14 +00:00
gradlew.bat initial commit 2022-02-27 21:48:14 +00:00
LICENSE Create LICENSE 2022-03-01 18:14:35 +00:00
README.md Update README.md 2022-03-07 19:34:22 +00:00
settings.gradle extracting settings view model fixtures to their parent modules 2022-03-06 15:07:04 +00:00
version.json using local json to control the current version 2022-03-07 19:04:25 +00:00

SmallTalk Assemble codecov License

SmallTalk is a minimal, modern, friends and family focused Android messenger. Heavily inspired by Whatsapp and Signal, powered by Matrix.

header




Project mantra

  • Tiny app size - currently 1.72mb~ when provided via app bundle.
  • Focused on reliability and stability.
  • Bare-bones feature set.
*Google play only with automatic crash reporting enabled

Feature list

  • Login with username/password (home servers must serve ${domain}.well-known/matrix/client)
  • 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

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.