Element X is the future Element. It is the brand new, and fastest ever, Matrix client. It is for personal and community use, and will support enterprise functionality later this year. A complete new build, Element X transforms performance. It's not just the fastest Matrix client, it's also fresher and more reliable. This app is currently in a pre-alpha release stage with only basic functionalities.

The application is a total rewrite of Element-Android and Element-iOS using the Matrix Rust SDK underneath and targeting devices running Android 6+ and iOS 16+ respectively. The UI layer is written using Jetpack Compose, and the navigation is managed using Appyx.

Element X leverages the Matrix Rust SDK through an FFI layer that the final client can directly import and use. We're doing this as a way to share code between platforms and while we've seen promising results it's still in the experimental stage and bound to change.

What's New

Features

  • [Rich text editor] Add full screen mode (#1447)
  • Improve rendering of m.emote. (#1497)
  • Improve deleted session behavior. (#1520)

Bugfixes

  • WebP images can't be sent as media. (#1483)
  • Fix back button not working in bottom sheets. (#1517)
  • Render body of unknown msgtype in the timeline and in the room list (#1539)

Other changes

  • Room : makes subscribeToSync/unsubscribeFromSync suspendable. (#1457)
  • Add some Konsist tests. (#1526)

What's Changed

  • Update _developer_onboarding.md by @ganfra in #1439
  • Improve developer build instructions by @kegsay in #1440
  • Update dependency io.sentry:sentry-android to v6.30.0 by @renovate in #1444
  • Ensure http url entered by the user are provided to the SDK without being altered by @bmarty in #1443
  • Update dependency androidx.compose.material3:material3 to v1.2.0-alpha08 by @renovate in #1389
  • Update dependency androidx.compose:compose-bom to v2023.09.02 by @renovate in #1441
  • Update dependency com.autonomousapps.dependency-analysis to v1.23.1 by @renovate in #1459
  • Update android.gradle.plugin to v8.1.2 by @renovate in #1458
  • String duplicate by @bmarty in #1454
  • Room : makes subscribeToSync/unsubscribeFromSync suspendable by @ganfra in #1457
  • [Rich text editor] Add full screen mode by @jonnyandrew in #1447
  • Display poll notifications in the notification drawer by @julioromano in #1467
  • Fix composer options bottom sheet position by @jonnyandrew in #1469
  • Update dependency com.autonomousapps.dependency-analysis to v1.24.0 by @renovate in #1473
  • Sync Strings by @ElementBot in #1475
  • Update gradle/gradle-build-action action to v2.9.0 by @renovate in #1470
  • Improve code coverage by @bmarty in #1465
  • Store images and app icon by @bmarty in #1435
  • Element call url param by @bmarty in #1477
  • Maestro test: change server (again) to test server which does not support sliding sync by @bmarty in #1479
  • Fix template by @bmarty in #1478
  • Update dagger to v2.48.1 by @renovate in #1485
  • Add docs for debug mitm proxying. by @julioromano in #1490
  • Update dependency org.matrix.rustcomponents:sdk-android to v0.1.59 by @renovate in #1486
  • Small cleanup by @bmarty in #1487
  • Update activity to v1.8.0 by @renovate in #1494
  • Update dependency androidx.compose.material3:material3 to v1.2.0-alpha09 by @renovate in #1493
  • Update dependency androidx.compose:compose-bom to v2023.10.00 by @renovate in #1495
  • Render emote by @bmarty in #1498
  • Update dependency gradle to v8.4 by @renovate in #1496
  • Update wysiwyg to v2.14.1 by @renovate in #1491
  • Fix: WebP images can't be sent as media. by @jmartinesp in #1501
  • Improve coverage in permalinks package by @jmartinesp in #1502
  • Update rnkdsh/action-upload-diawi action to v1.5.3 by @renovate in #1505
  • Update appyx to v1.4.0 by @renovate in #1482
  • Add feature flag for voice messages by @jonnyandrew in #1507
  • Add more tests, particularly to the room list diffing by @jmartinesp in #1508
  • Switch off enableOnBackInvokedCallback due to androidx bug (#1517) by @julioromano in #1517
  • Update dependency com.autonomousapps.dependency-analysis to v1.25.0 by @renovate in #1513
  • Sync Strings by @ElementBot in #1515
  • Update mobile-dev-inc/action-maestro-cloud action to v1.6.0 by @renovate in #1512
  • Optimize use of blurhash algo in bloom modifier by @julioromano in #1509
  • Refactor composer UI components to separate files by @jonnyandrew in #1506
  • Cleanup dependencies by @bmarty in #1524
  • Update dependency org.matrix.rustcomponents:sdk-android to v0.1.60 by @renovate in #1528
  • Update plugin ktlint to v11.6.1 by @renovate in #1527
  • Konsist by @bmarty in #1526
  • Improve session db and improve deleted session behavior by @bmarty in #1520
  • Update dependency org.matrix.rustcomponents:sdk-android to v0.1.61 by @renovate in #1550
  • Render unknown msgtype by @bmarty in #1549