Then we can finally try and bring in everybody who's currently trapped in proprietary IM.
Then we can finally try and bring in everybody who's currently trapped in proprietary IM.
I'd say that this will remove my last hesitation I've had in recommending Matrix to people.
What Matrix 2.0 fixes were true pain points which didn't keep me from using Matrix with my closest friends, but kept me from pushing Matrix to most people.
For a complete example, not that long ago (couple months), I had to wait over 10 minutes to send a message to somebody on Element on Android (on the street, trying to meet with them), because I turned connectivity on at that moment for the first time that day, and syncing took that long.
Now, this is instant, so is joining new rooms; This meets most people's expectation.
Having native videoconference is also very welcome, but the old hack was not a deal-breaker.
So you had to sync all of the messages on the server first before sending a message?
Sync still takes a second in large rooms, but you no longer need to download a thousand messages just to see the three latest ones.
Maybe before 2020?
Both the servers and the clients will have to be updated to leverage them.
The features already exist serverside; we're just working on getting them out of beta.
I am hopeful it also improves resource usage, bringing it closer to hydrogen.
Is this also for the desktop/browser version?
Unfortunately making it a "real" macOS app is much harder, as the UI is currently uses UIKit in a bunch of places to make up for feature and performance limitations in SwiftUI. These would have to be ported over to AppKit to run on macOS. I had a go at it over the holidays, but it's not trivial - perhaps someone with more AppKit skills than I could make it work (or maintain a fork) though.
To give an idea of the amount of UIKit that would need to be swapped out:
matthew@shadowfax ElementX % find . -name \*.swift | xargs perl -ne 'while (/[^a-zA-Z](UI[A-Z].*?)[^a-zA-Z]/g) { print "$1\n" }' | grep -v UITest | sort | uniq -c | sort -rn
52 UIKit
31 UIImage
20 UIApplication
13 UIScrollView
12 UITextView
11 UIDevice
11 UIConstants
10 UIColor
5 UIViewController
5 UIRectCorner
5 UIKitBackgroundTask
5 UIKeyCommand
4 UIView
4 UIPasteboard
4 UIBackgroundTaskIdentifier
3 UIViewControllerRepresentable
3 UITableView
3 UIScreen
3 UINavigationController
3 UIKitBackgroundTaskService
3 UIFont
3 UIActivityViewControllerWrapper
3 UIActivityViewController
2 UIViewRepresentableContext
2 UIViewControllerRepresentableContext
2 UITextViewWrapper
2 UITableViewDelegate
2 UIResponder
2 UIHostingController
2 UICollectionView
1 UIViewType
1 UIViewRepresentable
1 UITraitCollection
1 UITextViewDelegate
1 UITableViewDiffableDataSource
1 UITableViewController
1 UITableViewCell
1 UIScrollViewDelegate
1 UIKitAttributes
1 UIHostingConfiguration
1 UIContentSizeCategory
1 UIBezierPath
1 UIApplicationDelegateAdaptor
1 UIApplicationDelegate
1 UIActivityI've got a lot of experience with AppKit and may be down to look at doing that fork once the churn on Element X is lower...
That'd make hydrogen minimally usable. Currently, all the other clients that are logged in constantly nag about an unverified and unverify-able hydrogen session existing!
Hydrogen works on older / weaker computers, where element is unusable.
e.g. share a link to a GitHub repo or a photo and be able to quickly say something in the same sheet without having to switch to the app and say the thing and the back to my browser
edit: had to use YouTube in the end: https://www.youtube.com/watch?v=eUPJ9zFV5IE