Elytra Blog

The simple RSS Reader. This blog publishes release notes, engineering and design details.

Bug Fixes available for the Summer 2021 Release

Elytra version 2.3.2 running on a Macbook Pro in dark mode.

Since the release of the Summer 2021 builds last week, I have released two additional patch versions for Elytra.

The builds are available on the App Store and on the dedicated Releases page.

Combined Release Notes:

  • Fixed an issue where the app would crash when creating a new folder.

  • Fixed some minor visual bugs with the Subscriptions Interface.

  • Fixed a bug causing the app to always index feeds on launch for Spotlight.

  • Fixed a bug where the article reader preferences would not apply in real time.

  • Drag & Drop for feeds across folders is now enabled.

  • Drop & Drop for articles into Unread or Bookmarks is now enabled.

  • Fixed an issue with articles rendering empty audio players in the article reader.

  • Fixed an issue with the articles next / previous commands being mapped to cmd + up and down arrow. They are now correctly marked to J and K including the app menu.

  • Fixed an issue where no activity indicator would be shown on macOS when adding a new feed.

  • Fixed some minor bugs with adding new feeds.

  • Fixed loading Youtube videos.

  • Fixed an issue where audio from videos wouldn’t play if the mute switch on your iPhone is on.

Elytra – Notarized Builds Now Available

Elytra running on the M1 family of Macs

Elytra v2.3 has just been released, you can read all about here.

I’m also excited to announce that Elytra is now also available on macOS as a Notarized app. You can head over here to download the latest release.

It’s same as the Mac App Store release with two distinct differences:

  1. The app can auto-update itself (or you can manually check for updates) between the two Release and Test Build pipelines. The release line is recommended for most users, the test line is for those who like living on the edge.
  2. The app will use an external Payment Processor which enables me to offer discounts, especially for students, you can read more about it here.

Going forward, I’ll be able to release more frequent fixes directly to the Notarized builds. These builds currently do not have any kind of crash reporter built-in. So if you encounter any crashing bugs, please do take a moment to send me the crash report.

I look forward to hearing from you about this, you can always reach out to me on twitter or email me at support@elytra.app. Happy Reading.

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's new Add Feed interface shown on the M1 iPad Pro and iPhone 12.

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.

Elytra's new Add Feed UI on iPhone 12 showing feed suggestions.

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

Elytra's new Folders and Bloccs widgets running on ithe iPhone 12.

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

The new filters UI in Elytra 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

Elytra's new subscriptions UI. The prices in the screenshot are placeholders.

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

The new mini audio player playing the Core Intution podcast's Episode 462

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

Elytra now supports playing audio clips within the app.

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 results in Elytra now also match Article titles and author names.

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.

Search results in Elytra on macOS now also match Article titles and author names.

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

The two new reader bar sizes: The small size on the left and the large size on the right.

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.

Elytra Summer 2021 Public Beta

You’ve been waiting for this, haven’t you?

The Summer 2021 update isn’t quite ready yet, but I’m happy to announce the Public Beta details.

You can join the TestFlight Public Beta list here.

You should also consider joining the Slack Group for sharing feedback, screenshots, videos and the list. Head over the #iOS channel there.

If you don’t prefer Slack, the support email is always open.

I won’t be sharing the change log here. It’s available on the TestFlight log for now. You should go through it carefully before installing the new beta.

This brings the app back up to parity with v2.2.3 albeit with two features currently disabled. I will commence work on the new features and widgets later this week. 

I look forward to your feedback. Cheers.

Elytra Winter 2020 Update

The Winter 2020 update is finally ready in 2021! This is the first release of Elytra which brings local sync, local notifications and a lot of performance and stability improvements to the apps.

Similar to Elytra v2 and v2.1, this is an iOS 14 only release. The latest supported version for iOS 13 is v1.8 and will be deprecated soon.

You can download the update from the App Store. If you feel generous and have a couple of minutes, please leave a review on the App Store. It makes a huge difference for me. Thank you in advance.

Local Sync

Elytra v2.2 running on Macbook Air, iPhone XS and iPad Air This release brings Local Sync to the apps. Local Sync caches all articles across all your feeds (just like other RSS Feed Reader Apps). This is not a “new” technique. Feed Reader apps have been doing this for as long as I can remember. Elytra now uses the same technique by leveraging its APIs to make the entire process a lot faster!

Elytra does not have to check every single feed if it has new updates. It uses a single API to check if updates are present, and if they are, sync them to your devices.

Full Change Log

New

  • Local Sync. All feeds are now synced to your device locally, so you can continue reading even when your device is offline.
  • Added a new “Title View” to individual feeds. Open a feed and tap on its title. This shows the Feed Info and two preferences at the moment: Push/Local Notifications & Safari Reader Mode. These are per feed settings. This is very similar to the design and functionality from NetNewsWire, is directly inspired by it, but with a minor difference: the layout and copy denotes which feeds support Push Notifications, while the others supporting Local Notifications.
  • Push Notifications Request Form. If you already have push notifications enabled, you won’t see this. This is per device.
  • Added support for background push notifications to keep all your devices in sync without needing manual refreshing.
  • Push Notifications for new articles now download and cache the article for immediate use.

Improvements

  • Tapping on a folder now opens the folder’s feed.
  • Tapping on the disclosure icon on a folder now toggles its expanded state.
  • Filtering is now stricter. It’ll match “sponsor” but will not match “sponsored”.
  • Added Feeds to the iOS Search Index. You can now directly open feeds by their names (or custom names if you have one set).

Fixes

  • Fixed the tint colour for the blog name when opening a micro-blog article.
  • Fixed adding feed by URL where the feed presents multiple options.
  • Fixed an issue when searching by title for 3-letter sites like CNN or BBC.
  • Fixed articles not loading for certain feeds.
  • Fixed Today View not updating when opened after an app launch.
  • Fixed an issue with the iPadOS app showing different widths for the columns in different orientations or environments (split view).
  • Fixed an issue with the apps not correctly download bookmarks from the API.
  • Fixed an issue where toggling folders in the sidebar interface would show empty folders.
  • Fixed an issue with certain CJK paragraph blocks rendering incorrectly when certain linebreak characters are used in the paragraph text.
  • Fixed an issue with filters incorrectly hiding articles when matching against CJK based filters.
  • Fixed an issue with line-heights in the articles list for multi-lined article titles with favicons.
  • Fixed an issue where the “no articles” label would appear over the articles.
  • Fixed an issue for adding Streaming Video Channel feeds. They recently changed their format which was causing issues.
  • Fixed a crash when writing the widgets data to disk when the app has just been sent to the background.
  • Fixed Navigation Bar buttons not appearing in some contexts.

Thank you for reading.

Elytra is now available for macOS Big Sur

Elytra is now available on the Mac App Store.

It’s finally happened. It took 3 years and I hope it was worth the wait.

Elytra running on a Macbook in Dark Mode

Elytra for macOS brings the same native rendering performance you have come to know and love on iOS and iPad OS.

All of this has been possible because of Apple’s Mac Catalyst system which has been significantly improved on Big Sur, since its debut on macOS Catalina.

Your subscription will carry forward to the macOS App as well, no separate purchase or subscription will be necessary. (You can also take this opportunity to take advantage of the special pricing I have going on for Diwali)

I’ll be sharing a deep-dive into the design decisions for Elytra, but for now, I hope you enjoy the release.

As always, Happy Reading!

PS: A small update for iOS and iPadOS has also been released, so be sure to grab that from the App Store as well. 

Diwali 2020 Discounted Pricing

This year for Diwali 2020, a few of us developers have decided to offer discounted pricing in our apps. Elytra is a part of that list and starting today (30th Oct, 2020) Elytra’s Monthly and Yearly pricing is discounted up to the 27th of November. 

The Monthly subscription is currently discounted to $0.49 and the yearly subscription to $4.99 during the offer period. 

If you’re on the 14-Day trial, now is a perfect time to upgrade to the subscription. 

However, this is not the new pricing. The pricing is only valid for your first (or upcoming) renewal cycle. If you are already subscribed and your renewal window falls between these two dates, you will be charged the discounted pricing. 

In the following renewal cycle, you will be charged the regular amount. Now this whole thing might sound a little confusing so here’s a quick chart to explain things visually using the Monthly subscription as an example: 

Diwali 2020 Promotional Pricing Chart

If you have any questions regarding the promotional pricing or how future cycles will be billed, please feel free to email me at support@elytra.app and I’ll be happy to answer them.

I wish you all a very Happy Diwali, happy reading!

Elytra 2.1.0 is now available

Elytra running on the iPhone 12 - Mutliple Screens

Version 2.1 brings a lot of stability and Quality of Life improvements to Elytra before the final Winter release of this year. This also brings the iOS App up to parity with its macOS app to be released soon.

This build also brings support the the newly released iPhone 12 lineup as well as the iPad Air 4th Gen.

Link: https://apps.apple.com/us/app/elytra/id1433266971

New Font: Atkinson Hyperlegible

Atkinson Hyperlegible font displayed on the iPad Pro Gen 4 and iPhone 12

Designed by the Braille Institute of America, and offered for free, Atkinson Hyperlegible is a great new font choice for greater visibility and legibility for low vision readers. Paired with an Accessibility focused app like Elytra, I hope this improves the reading experience for you. 

You can read more about the Atkinson Hyperlegible font here

Improvements

  • If you have a URL copied, the app will automatically detect it when attempting to add a new feed.

  •  Tapping an article now dismisses the sidebar on iPads in portrait mode.
  • The sidebar items are now correctly highlighted. They no longer use the tint colour when selected.

  • Search in the sidebar now uses Alpha sorting like the rest of the view.

  • Multiple improvements throughout the app for Voice Control (VC) and Voice Over (VO) a11y options.

    • The app now correctly shows titles for icon only buttons when VC is activated.
    • The app now correctly updates states for icon only buttons when VC is activated.
    • Simplified Article labels for VC to make it easier to select articles. They will now be presented as “Article 1”, “Article 2” and so on… Previously, the article title’s was used which could be difficult to command with long titles.
    • VO will now read the article index followed by its title.
  • Improves formatting for CJK Text. CJK text should no longer appear as one big blob of text. It may still happen if the source provides it that way.

  • Unreads Widget intents now work as expected. You can now toggle between loading favicons and cover images in the widgets.

  • The article viewer will now draw horizontal rules. (<hr /> element equivalent.)

  • During first launch, if your account already has a subscription, the trial interface is no longer shown. You are directly taken to the Feeds Interface.

  • Added support for dragging and dropping articles into the Unread or Bookmark rows in the Sidebar to perform respective actions.

  • Added support for dragging feeds between folders or outside folders.

  • Added support for dragging feeds to external applications. This action will drag with the RSS Feed URL. (iPadOS only)

  • Updated images for GIF loading and playback controls.

  • Tapping a gallery image now opens it in full view.

Fixes

  • Fixed a rare bug that would prevent the bookmarks counter from updating when adding or removing bookmarks.

  • Fixed an issue where unread counters would not update when you have 0 unread articles.

  • Fixed loading of GIF favicons.
  • Removing a bookmark while in the bookmarks feed now removes the article after a small delay.

  • Fixed a rare crashing bug that would occur when initiating a Refresh in the Feeds Interface. (Thank you for Lee.)

  • Fixed an issue with the Today Count always reporting as 1.

  • Fixed rotation behaviour on iPads.

  • Fixed an issue where the unread/today counts would change when reading an article from a feed you’re not subscribed to.

  • Fixed an issue where the selected feed would remain selected after opening recommendations.

  • Fixed an issue with the Unreads widget not updating in a timely manner.

  • Fixed a background crash that would occur when syncing and downloading new data.

  • The app now saves restoration data properly so launching the app from a saved state is now faster.

  • Fixed an issue where images in the article viewer would fail to load (network issues, invalid URL or for whatever other reason) and would show a large placeholder image.

  • Twitter apps selection now works again when tapping tweets.

  • Matched the keyboard navigation to the macOS App.

  • Images in Widgets should now load reliably. I’ve discarded the older method of loading images in favour of a more standard approach as recommended by Apple Engineering.

  • Fixed the app using a semi-bold font for headings on iOS 14.0.1 and higher.

  • Image Loading options now correctly apply to favicons inside the Articles List Interface.

  • Title Font preference now correctly applies to headings inside the article as well.

Elytra 2.0.3 is now available

Hot off the tracks of v2.0.2 comes v2.0.3 with a couple of more fixes. All known issues in Elytra’s v2 are now fixed and patched. If any additional issues are reported, those will be addressed in v2.1.0 unless they prevent the app from functioning.

Improvements

Improved Swift and SwiftUI Syntax Highlighting
Improved Swift and SwiftUI Syntax Highlighting

Improved Swift & SwiftUI syntax highlighting in code blocks.

Fixes

  • Fixed an issue where selecting the “Only load on Wi-Fi” image bandwidth setting did not persist correctly.

  • Fixed an issue where selecting the “Low Res” image resolution setting did not persist correctly.

  • Fixed a bug where toggling dark mode (or already present) did not correctly set the colours for the filters’ input.

  • Fixed an issue where the Image Viewer would not display the image at full resolution once it is loaded.

  • Fixed an issue where the OPML Interface would launch with the base tint on the button backgrounds and then update to your preferred tint.

  • Fixed an issue where semantic colours would not load correctly on iOS 14.0.1 for your selected tint colour.

  • Fixed a crash that would occur when bootstrapping the local cache database.

  • Fixed a crash that would occur when saving restoration data.

  • Fixed an issue where images in articles would be scaled incorrectly when using the image proxy.

  • Fixed a bug where tapping on the Attributions item in the Settings interface would crash the app.

  • Fixed a crash that would occur when decoding certain HTML encodings. (16-bit decoding is hard, y’all!)

Link: https://apps.apple.com/us/app/elytra/id1433266971

New Elytra Landing Page

Elytra’s first website was made in the fall of 2017. It was extremely basic, gave the requiste information to the reader and a link to sign up for the TestFlight beta ( TestFlight Links were not a thing back then).

With the release of v1.0, I updated to an improved layout, more details and screenshots. I kept updating the screenshots up to the release of v1.4 and then completely forgot about it (this did lead to some confusion).

New Website

With the release of v2.0, it was time to update it, however, with the rushed release of iOS 14, I didn’t get enough time to complete it.

Today, I just launched the updated website. Check it out here.

Elytra's New Landing Page - Hero
Elytra's New Landing Page - Design

I have simplified the website by much, reduced as many interaction points as possible to ensure the reader can quickly get an idea of the app, and proceed to viewing further details on the App Store.

For the main navigation in the header, I used a simple <details> block with <nav> as its detail block. Accessible, simple, and known interaction.

Almost all images are optimised for retina screens as well as for various breakpoints at varying sizes.

One critical section I thought I must add was about Privacy.

Elytra's New Landing Page - Privacy

With Apple’s strong focus on Privacy, and a wonderful marketing page to go with it, I thought it would only compliment their message and my committment towards ensuring the same as a 3rd party developer on their platform.

Additional Enhancements

Some additional enhancements I’d like to make sooner than later:

  • I would like to make some tweaks to the font sizes of headers based on the device width metric, but I found it not to be a blocker, and release it as is.

  • Add sRGB and P3 specific images to the sources. When viewing the website on my Macbook Pro, the colours are evidently faded. Since I do have source images in the P3 format, I should be able easily do this.

  • Additional hints for a11y.

Noticeably Missing

Dark/Light mode. The previous website support this, however, for this time around I decided to go with a static colour scheme to suite the various bands I am using on the page as decorative backgrounds for the device images.

This darker colour scheme also strongly compliments the beautiful imagery one experiences when using Elytra with various Photography and Art & Design blogs.

If you have any suggestions for improvements or noticed a bug, do let me know.

As always, happy reading.