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-12-11 15:20:16 +00:00
.github no longer need to setup a synapse server for the smalltalk tests 2022-12-10 14:57:15 +00:00
.idea extracting me fetching logic to its own usecase and testing 2022-10-03 20:08:03 +01:00
app avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
buildSrc avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
chat-engine@8139eaaf57 avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
core avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
design-library avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
domains avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
fastlane/metadata/android/en-US initial fastlane structures 2022-09-15 20:06:17 +01:00
features avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
gradle fix missing crashlytics plugin 2022-12-11 13:10:00 +00:00
screen-state@088fd0e720 avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
tools avoid running coverage of submodule, it's already captured by its own repo 2022-12-10 14:55:44 +00:00
.gitignore updating gitignore to ignore secrets and any nodemodules dir 2022-08-24 15:34:08 +01:00
.gitmodules using engine submodule 2022-12-05 22:51:07 +00:00
build.gradle avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
dependencies.gradle convert to version catalog 2022-12-11 12:50:46 +00:00
gradle.properties allow config caching errors and update engine ref 2022-12-07 20:58:45 +00:00
gradlew Update Gradle Wrapper from 7.4.2 to 7.5. 2022-07-15 00:24:46 +00:00
gradlew.bat Update Gradle Wrapper from 7.4.2 to 7.5. 2022-07-15 00:24:46 +00:00
LICENSE Create LICENSE 2022-03-01 18:14:35 +00:00
README.md Update README.md 2022-11-15 21:14:32 +00:00
renovate.json Add renovate.json 2022-12-11 15:20:16 +00:00
settings.gradle avoiding versioned plugins and making the buildSrc the main plugin classloader 2022-12-11 15:06:05 +00:00
version.json updating version for release 2022-11-07 08:25:01 +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.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
  • Minimal HTML formatting
  • Invitations
  • Image attachments

Planned

  • Device verification (technically supported but has no UI)
  • Room history
  • Cross signing
  • Google drive backups
  • 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

Data and Privacy

  • Messages once decrypted are stored as plain text within SmallTalk's database. Always encrypted messages comes at the cost of performance and limits features like local search. If maximum security is your number priority, SmallTalk is not the best option. This database is not easily accessed without rooting or external hardware.

  • (Not yet implemented and may be configurable) Images once decrypted are stored in their plain form within the devices media directories, organised by room metadata.

  • Push notifications contain no sensitive data by using the event_id_only configuration. Push notifications are used as a push to sync mechanism, where the on device sync fetches the actual contents.

  • Passwords are NEVER stored within SmallTalk.

  • SmallTalk does not explicitly talk to servers other than your home-server or track what you do. *

    • * There is no SmallTalk server capturing data from the application however the Google variant likely includes transitive telemetrics through the use of Firebase and Google Play Services integrations.
  • SmallTalk is completely free and will never feature adverts or paid app features.


SmallTalk comes in two flavours, Google and FOSS

Google
FOSS

Join the conversation @ https://matrix.to/#/#small-talk:iswell.cool