9.0 KiB
id | title | status | lead-contributor | contributors | budget | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
318-desktop | Desktop | research | Volodymyr |
|
|
Desktop Swarm proposal
Summary and Goal(s)
Messenger apps expected to be present on all widely used platforms - ios, android, mac, windows, linux.
Status desktop app currently extensively used by Status company for communications.
It is implemented with the help of react-native-desktop project that is a Qt-based port of react-native
to desktop platforms: mac, windows, linux.
So Desktop swarm has two goals in mind:
- Providing well-polished communication tool for Status company itself and the community
- Feature parity with mobile application For initial scope focus is on the first goal.
Additional tasks for the swarm is maintaining react-native-desktop
project to fit Status desktop needs and publishing Status desktop releases.
Communication
status channel (same as swarm id)
: #318-desktop
sync frequency
: Weekly Sync
meeting notes
: https://notes.status.im/IVQ6ZK6iRw6LfF-4y4WJmw
Research
Timebox: 21/12
Research questions:
- what features we already planned or were talking about? How they priority changes now?
Allow standard keyboard shortcutsPublishing at platform's official marketplacesFix memory leaksImprove CPU usagewindows uwp supportmarkdown support in chattext selection among multiple messagesshow connection stats inside the appadd log level settingsuse peer counts to detect online\offline stateNo new messages after going back from sleep[Security and privacy review](Desktop security and privacy review)Context menu in input fieldsAdd design for menusFix scroll stutteringAdd dev mode and network switchingUI fixes for bubble-less chat areaFix group chats creationConfirmation dialog on logoutCustom url support on linuxAdd custom mailserverEdit profile pictureRemove code duplication in JenkinsfilesPersist scroll position after navigation through the appAdd jenkins job for e2e testsApply onboarding designs- what existing desktop issues affect its usability most (in functionality or UI)?
how many users outside of Status we have? (optional)- how can we get user feedback about desktop
- make a poll within Status
- what features mostly anticipated by users?
- mentions
- image/links previews
- pinned channels
- mark all messages in a channel as unread
- channel (chat where only creator can write and others can read). That would be great for announcing things company-wide
- persisting chat list and settings between full reinstalls
- what ui/ux input needed
- what should be done in
react-native-desktop
to support status desktop tasks Get rid of ubuntu-server and embed js engine in react-native-desktopFile open dialogFix remote js debuggingImprove UI responsiveness (needs clarification on existing issues)- what should be done in
react-native-desktop
to make its maintenance easier port to react-native 0.57. That will give us a possibility to make it an out-of-tree platform and facilitate future upgrades.- PR with updated version already in react-native-desktop
- PR for testing it with status-react
- PR for mobile in progress
More documentation/tutorials for external contributors- what tasks can be done without involving Clojure/Go resources
Research output structure:
When questions above answered we can create:
- prioritized list of most important tasks to do for boosting communication experience
- user stories
- bounties
Research output:
Prioritized list of tasks:
-
TODO
-
High
- Fix memory leaks
- [Security and privacy review](Desktop security and privacy review)
- Add design for menus
- Fix scroll stuttering
- UI fixes for bubble-less chat area
- Fix group chats creation
- Confirmation dialog on logout
- Custom url support on linux
- Edit profile picture
- Persist scroll position after navigation through the app
- Get rid of ubuntu-server and embed js engine in react-native-desktop
- Add jenkins job for e2e tests
- Apply onboarding designs
- File open dialog
- Fix remote js debugging
- Improve UI responsiveness (needs clarification on existing issues)
- port to react-native 0.57
- Image/links preview
- Pinned channels
- mark all messages in a channel as unread
-
Medium
- Allow standard keyboard shortcuts
- markdown support in chat
- text selection among multiple messages
- show connection stats inside the app
- add log level settings
- Context menu in input fields
- Add dev mode and network switching
- Add custom mailserver
- Remove code duplication in Jenkinsfiles
- More documentation/tutorials for external contributors
-
Low
-
-
Needs input from other teams (most probably)
-
Mentions
-
channels (public chat where only creator can write and others can read). That would be great for announcing things company-wide
-
persisting chat list and settings between full reinstalls
-
Postponed
-
windows uwp support
-
Publishing at platform's official marketplaces
User stories:
Bounties:
Specification
do after
Research
(required)
timebox specification (approx)
(optional)
user stories
, architecture
, designs
, PoC
Implementation
(required)
timebox implementation (approx)
do after
Specification
All swarm contributors should test and break the implementation, especially developers
(required)
document progress
(optional)
townhall demo
Maintenance
lead-contributor
,post-mortems
Copyright
Copyright and related rights waived via CC0.