Elytra Summer 2021 Update
Elytra’s 2021 Summer Release is here, just in time for WWDC 2021. It’s been extra challenging to work on v2.3 as this is the first release of Elytra that introduced Swift into various core systems of the app.
If you have read my earlier post about the public beta, you'd know this has been in the works for a while, but the work on the new version started all the way back in February of 2020.
This is slightly bigger release (even I am not used to this) so this is going to need a TLDR.
TLDR;
- New system for adding feeds: You can explore topics by prefixing your keyword with the
#
symbol. Or directly search for a website with its base URL. - Sync is now faster: more reliable and uses a delta updates approach to conserve power and network bandwidth.
- Two new Widgets: Folders (configurable) and Bloccs.
- Improved App Performance: Thanks to a new core, the app’s performance has seen a big boost and crashes less.
- Filters on macOS: You can now add and remove filters directly from the macOS App.
- Mini Audio player: Elytra now ships with a mini-audio player to quickly browse through audio-clips and podcast episodes.
- Media Playback: Elytra now comes with improved support for Youtube and Apple Trailers feeds.
- Search: Searching for feeds and articles is now simpler than ever and on macOS, it’s always available.
- Reader Bar: You can now customise the reader bar size and choose from three sizes: Small, Regular and Large.
- Finally: As always, an assortment of improvements and fixes.
New
Adding Feeds
Elytra v2.3 introduces a new system for finding and adding feeds to your lists. You can explore some pre-defined topics or search for topics of your interest by prefixing the keyword with a #
key.
To directly explore feeds linked by a website, simply type in the website’s URL. If you have a feed URL, then you can directly use that.
Something that been asked for a long time is to directly add a feed to a folder when creating it. It’s now possible to do so and all your folders will be listed out. By default, None
will be selected.
Core Sync
Syncing across all apps is now faster, more reliable and also automatically syncs in the background to keep all your devices in sync and ready to go. This lays a critical foundation for future releases.
The new sync system is written in Swift (version 5.4 for those who care) and is much more resilient, fault-tolerant and heavily tested compared to its previous iteration.
It also now uses a delta updates system so your devices only download the data they don’t already have. Multiple sync triggers can happen simultaneously on a single device of yours (say you added a feed, then marked all the items inside that feed as read which will trigger two events). This ensures your devices consume less power and consume less network bandwidth.
Two New Widget Types
v2.3 brings two new Widgets: Folders and Bloccs. The Bloccs widget brings up to 6 of the latest unread articles from your feeds to your device's homescreen, decorated by the articles' cover images. The Folders' widget enables to you select a folder of your choice and showcase up to 4 articles from that folder. I can't wait to see how you have these setup on your devices.
Performance
I’ve spent all of March working through various modules in the app to optimise the performance. The Article Reader was the only component in the app that was optimised down to the last bit (to my best knowledge and technical capabilities). Everything else was just mish-mash. You should now notice improved performance in the app for just about any activity you’d perform in it.
Filters on macOS
Filters have been available in Elytra since v1.0 so it was always weird that there was no UI for it on macOS. Now there is, it's mac-assed and works exactly as you'd expect it to.
### New Subscriptions UI
I also took this opportunity to redesign the subscriptions interface. The new design is an indicator towards the next iteration of the design system for Elytra, it better and more clearly explains the advantages of each subscription type and enables you to quickly switch between the two offerings.
Mini Audio Player
For a long time, I’ve used Elytra to notify me when new episodes are available for the podcasts I follow. In v2.3, I’ve built a mini-audio player into the app. It detects Podcast episodes and automatically updates its rendering state. This is in no way a replacement to a full-fledged Podcast app, but just a little something to get you a sneak-peak into that episode if you so desire.
Rich Media
I’ve made several improvements to the API and the apps to improve media playback. This fixes some Youtube videos not loading correctly. But most importantly, the apps now load, and enable playback of Movie trailers from the trailers.apple.com RSS Feeds.
Search
The apps now feature global search enabling you to search for Feeds and Articles. You can also match for author names. In a future release, tokens will also be introduced to tokenise your search for a more precise hunt.
If you’re looking up an article and there are no feed suggestions for the app to provide, the app will suggest feeds from the articles it has found. So you can jump to the feed or the article.
Reader Bar Sizes
To ensure the app is accessible by everyone, Elytra has always supported Dynamic Type, Voice Over and the various navigation accessibility features that macOS and iOS provides. In March, a customer got in touch with a complaint about the reader bar and a potential solution. We worked on that solution and I am now happy to let you know that the reader bar now comes in three sizes: Small, Regular (default) and Large. You can toggle the size from Settings > Misc.
PS: This setting has no effect if you’re using the toolbar.
Improvements
-
Drastically improved performance and accuracy of batch marking articles as read. (In my testing, marking a batch of 2000 articles as read previously took over 8s, and now only takes 2s).
-
Counting unread articles is now literally 6 times faster. The app can now spend less time keeping these counters up to date and more time rendering articles.
-
Improved handling and logic for rotation on iPadOS. This also fixes the blank slate launch state of the app on iPads in portrait mode.
-
Sharing articles on macOS will now use the recommended approach instead of the workaround I was previously using. This will ensure a smoother experience across various macOS versions.
-
The macOS app will now correctly sync after waking up your mac from sleep.
Fixes
-
Fixed a critical and long standing issue where articles marked as read on one of your devices would not sync to your other devices.
-
Fixed a critical bug where the “Start Trial” button would have no effect or start the process and keep the button disabled preventing retries.
-
Fixed an issue where opening a Feed or a Folder and then opening the Unread list would reset the sorting preference to Unread - Latest First.
-
Fixed an issue with sync not working correctly upon a fresh signup.
-
Fixed an issue where the wrong state for the article reader would be setup: incorrectly showing next and previous articles to be available when only a single article was available in that list.
-
Fixed an crashing bug on iPadOS where the app would crash after backgrounding the app.
-
Fixed a bug in which HTML would show in the summary field.
-
Fixed a bug with Substack newsletters where the images in the posts would be really small (Substack converts the original URLs into their image proxy URLs for the Feeds which caused this issue, Elytra strips out this information and then loads the images).
-
Fixed a bug where custom feed names would not correctly sync across to your other devices.
-
The macOS app will no longer open duplicate windows. If it finds an existing window for the same activity, it’ll bring that window to the foreground.
-
Externally connected displays on iPads will now mirror the the iPad screen. This would previously display the app’s UI at native resolution with no scaling. A future release will correctly address this issue.