element-x-ios
element-x-ios copied to clipboard
Epic: EX for iOS 26
Background
Now that Apple has officially released iOS 26 with liquid glass it's time to put a plan together for updating EX accordingly.
We've already had a few initial discussions about the impact and some things we need to consider (effort, order of priorities, timing, etc.). Meanwhile, @Velin92 has already created a first GitHub issue and is working on an early implementation of liquid glass for the Super Chat app.
The following is a proposal for how we proceed from here.
Important documents
- Notes ('iOS, is it time to liquid glass??????')
- iOS Components (all new components labeled 'iOS 26')
- iOS Templates (design proposal for core screens)
- Prototype (see how new components appear in action)
The plan
Since there's a lot we could do, it doesn't make sense to release everything at once. For one thing, the risk of breaking things would be too great. For another, it would take us forever to release something.
Instead, below is a proposal for how we can approach the project in steps that would deliver the most critical components and then move on to core sections of the app. In the end we aim to have a comprehensive overhaul of Element X and Element Pro that truly feels native while maintaining our high standards for accessibility and without fundamentally altering any UX patterns we've already established.
Milestone 0: Agreement
Before we actually do anything, we should all be aligned on the plan proposed below :)
- [ ] Plan reviewed by everyone
- [ ] Any updates to plan finalized
- [ ] Determine how work will be tracked and (ideally) paid for
- [ ] Commitments and final sign off from stakeholders
Milestone 1: System components
First, @americanrefugee will work with @Velin92 to determine exactly what's needed for our first critical release. We'll start by identifying which components to update or introduce based on what Apple provides automagically. Once we're in agreement, the original GitHub issue will be updated with the most critical items needed for release.
List of iOS system components
- [ ] Action Sheet
- [ ] Alert
- [ ] Checkbox (aka Edit Buttons)
- [ ] Context Menu
- [ ] Keyboard
- [ ] Navigation Bar (including Glass Buttons)
- [ ] Segmented Control
- [ ] Scrim
- [ ] Share sheet
- [ ] Tab Bar
- [ ] Toggle
Milestone 2: Global components
Next we should update all the global components we use that are based on liquid glass, but customized for our specific needs, and are reused for for many different screens / contexts.
List of global components
- [ ] Activity Indicators
- [ ] Bottom Sheet
- [ ] Composer
- [ ] Form
- [ ] List (including all List Items)
- [ ] Page Headers (includes App, Room, Space, and Call Header)
- [ ] Pinned Message Banner
- [ ] Progress Indicator
- [ ] Search Field (including Bottom Search)
- [ ] Visual List
Milestone 3: Chats & Spaces list
Then we should focus on any updates to all full screen views of the Chats and Spaces lists that aren't addressed simply by updating any native or global components.
List of Chats & Spaces views
- [ ] Default Chats list
- [ ] Chats > Space
- [ ] Chats/Spaces search
- [ ] Default Spaces list - Org
- [ ] Default Spaces list - Community
- [ ] Space details (all variants)
- [ ] Spaces > Home
- [ ] Spaces - Community > Public Room Directory
- [ ] All context menus
- [ ] Global Settings
- [ ] Spaces Settings
- [ ] Space Settings (old design)
- [ ] Search
Milestone 4: Create new room or space
There are also a few different flows that need to be updated for creating a new room or space. This can happen after updating the core views defined above.
Currently, only certain screens or flows have been updated to show the overall design direction. If more screens are needed, then please request them from @americanrefugee – but many things are just variations of the vision defined.
List of create new room/space flows
- [ ] Start Chat
- [ ] Create new room from Chats
- [ ] Create new space (link to old design)
- [ ] Create new room from a space (link to old design)
Milestone 5: DMs & Rooms
After the Chats and Spaces lists, the most commonly used area of the app is, of course, rooms. For the most part, there shouldn't be much that actually needs to be implemented once all the system and global components in Milestones 1 & 2 have been completed. For example, there are no changes to the Timeline – just the room header and composer. However, there are a couple key areas that will need more extensive updates (room settings and Media List). If more designs guidance is required for anything, just reach out to @americanrefugee
List of room views
- [ ] DM
- [ ] Public Room
- [ ] Private Room
- [ ] Room Settings
- [ ] Sending/Receiving Files
- [ ] Media List
Milestone 6: Element Call
The other thing users do a lot of is using Element Call for peer-to-peer and video meetings or voice calls. This feature of the app can actually be done whenever the EC Team has capacity once all the system and global components are in place.
Only some screens have been updated with new designs. Once again, holler at @americanrefugee if any additional design guidance is needed.
List of Element Call views
- [ ] Incoming call banner (this might be constrained by whatever Apple provides)
- [ ] Lobby
- [ ] Peer-to-peer Voice Call
- [ ] Peer-to-peer Video Call
- [ ] Group Call
- [ ] 1 Call Minimized
- [ ] Incoming Second Call
- [ ] 2 Calls Minimized
Milestone 7: Sign in / Sign up
Finally, all the sign in screens will need to be updated. Since this is something most users do rarely, it can wait until after everything else has been done. Although many of these screens are connected to some very complex, technical bits, any changes should only be cosmetic and minimal (such as updates to form fields, lists, and spinners).
List of sign in/up views
- [ ] Sign in with QR code
- [ ] Analytics
- [ ] Preferences
- [ ] Registration flow (old design)
- [ ] Sign in manually to existing account (old design)
- [ ] Sign in manually to single signed out device (old design)
- [ ] Sign in manually to additional device (old design)
Milestone X: App icons
At any point we can introduce new app icons. These should be requested from @JordanConnor and coordinated with the Marketing Team.
List of app icons
- [ ] Element Pro
- [ ] Element Community
- [ ] Element TI-Messenger
Does it make sense to update the app icon to support the light/dark/glass/tinted aesthetic as part of this epic?
Does it make sense to update the app icon to support the light/dark/glass/tinted aesthetic as part of this epic?
💯yes please! https://developer.apple.com/documentation/TechnologyOverviews/adopting-liquid-glass#App-icons
Does it make sense to update the app icon to support the light/dark/glass/tinted aesthetic as part of this epic?
💯yes please! https://developer.apple.com/documentation/TechnologyOverviews/adopting-liquid-glass#App-icons
Epic updated to include app icons.
Just to confirm, none of the documents should be publicly accessible and are intended only for New Vector Ltd. employees?