Closed
Description
This is the current plan, which will also help to track progress
- We want to validate and de-risk that using the Rust SDK is possible (and easy!) and performance are good.
- We want to use Jetpack Compose
- We want to spend no more than 4 weeks to do that
Goals
- Repo setup
- README that explain the plan (or link to this issue maybe)
- Android project setup. min API33. We will use a new appId
io.element.android.x
- Share debug signature. We will need a release version for performance
- SDK rust & wrapper in https://github.com/matrix-org/matrix-rust-sdk/tree/main/bindings (a new folder will be created here). The library (aar) is published with this action. The API is defined here. Doc of the SDK: https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk
- We will use ViewModel, where object from Rust SDK will be injected.
- We will limit abstration to be fast, and may iterate later.
Design
Screens
There will be 3 screens in this application, each in a separate gradle module
- Simple login with Compose (no new auth screen)
- carroussel
- wireframe
- polished
- server selection
- internal module navigation -> Postponed. Not resolved yet. Will be required as an example for others
- Room list
- placeholder with a fake list
- polished (Enough done.)
- pagination -> Postponed. EIX is experimenting it
- burger menu to sign out
- with confirmation dialog
- search v1 where we filter on displayed items (enough for demoing)
- display name
- last message if decrypted
- Timeline
- polished (Enough done. Figma is not up-to-date)
- Extended bubbles width
- corner radii
- backward pagination (when the loader is displayed)
- Images
- Reactions display
- Text message including HTML
- Replies (bubble in bubble)
- Contextual menu
- bottom sheet
- (Copy)
- (Quote (optional))
- (Permalink)
- Reply
- Edit
- Redact (with no reason)
- polished (Enough done. Figma is not up-to-date)
- Text composer (Markdown is supported by the SDK)
- Text/MD
- Edit
- Reply
- (Image with picker. We can reuse the plus button) . Not available in Rust SDK
- (Minimal design kit where we define constants (maybe a figma export) to quick tuning) -> Postponed. Need design input first
- (colors)
- (Font & Font size)
- App icon (black variation of EA)
- Release build to check performance
Other
- Setup nightly builds on Firebase and github action
TBD
- Device verification
- History decryption
- How long will run this demo app?
No goals
- no DI, except if it's very fast to setup (to be discussed - maybe give a try to anvil)
- no time spent on DevX and CI
- Loose time outside room list and timeline screens
- DesignKit. We do not have it for android. It will be a separate tasks
- WYSIWYG views in compose
- Icons. We reuse material ones
- No OIDC
Metadata
Metadata
Assignees
Labels
No labels