Elytra Blog

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

January 2023 Release

I wish you a healthy & safe 2023. Elytra’s Jan 2023 release is full of fixes and stability improvements.

You can download the latest Mac release from Github as well. 

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.

Improved

  • App now uses the article’s date for notification timestamps

  • Improves app responsiveness and reduces disk I/O usage.

  • Improved networking stack

  • Changed Preferences menu title to Settings on macOS 13.x

  • Marking articles read/unread is now a local operation, i.e. if the Cloud request fails for any reason, the information is persisted and will be synced with the Cloud API once your device or the service is reachable across the interwebs.

Fixes

  • Assortment of fixes from various crash reports

  • Fixed rendering and scrolling slowness on macOS 13.x

  • Ongoing fixes for filtering articles

  • Fixed feed title not being fully visible upon scrolling

  • Fixed custom feed title not being used (macOS only)

  • Fixed stuttering when image loads and scrolling in the article reader.

Scroll Performance & macOS Ventura

I recently switched to using macOS Ventura on my MacBook M1 Pro as the primary working device.

This required a change in my workflow and given how these machines work, Elytra would always be up to date and ready with new articles when I opened the lid the morning.

I quickly began noticing abysmal scorlling performance in the article view of the app. On a second passs, I noticed everything about the article view was slow: rendering, scrolling, and resizing.

I ran the AppStore build on my macOS 12 system and did not observe the same, but this Mac had 64GB of memory, a dedicated desktop-class GPU and a 14-core workstation chip, all liquid cooled. So I began to wonder if the M1 Pro chip was being “lazy”.

I still wondered if I am to blame for this, I turned to instruments to analyze the rendering performance and behold: TextKit2 bites me again.

Intruments showing rendering callstacks for Elytra's article reader view

Now that I know what’s causing the issue, I turned to the internet: Apple’s Dev Forums, StackOverflow, various macOS engineering blogs and even mailing lists (those are still very very cool).

It turns out, I’m not the only one to be bit by TextKit 2’s erractic behaviour, incomplete APIs and a lack sensible documentation apart from a few WWDC videos. To make matters worse, unlike TextKit 1, this was no “drop-in” replacement like Apple claimed it to be and is an automatic opt-in when compiling with the latest SDKs.

In a sample project, TextKit2 rendering was atleast 70% slower than TextKit1. Worse, when resizing a window.

Luckily for me, I found this post by Daniel Jalkut

The simple workaround, for the time being anyway, is to force your text view to use TextKit 1. As explained in the WWDC excerpt above, this is as simple as asking it once for its layout manager, which will cause it to rebuild its entire text architecture to suit the TextKit 1 way of functioning

and the oneliner: let _ = myTextView.layoutManager

Because of how Elytra is archictected, this patch totaled in as a +1 -0 commit. Sweet. All text-rendering is mostly handled by a single View: Paragraph which other views like Heading, List, Blockquote, etc. are subclasses of.

With that fix in place, the article view was back to rendering, scrolling, and resizing at full 120Hz (sweet sweet ProMotion goodness).

This will become available as a fix in the upcoming builds v2022.11.3 (485) which are currently waiting for review.

If you’re using the notarized releases, the latest build is immediately available for download:


If you’re also building and shipping a Catalyst app, and wondering if you’re app also may be affected by this issue: unless you are intentionally poking at the layout managers, containers of the text views, you shouldn’t have to worry. But if you are and notice similar issues, try forcing the text view to use TextKit 1 instead and see how that works out.

November 2022 Supplementary Release

I’ve just released a supplementary update for the November 2022 release.

The iOS update has been approved, the Mac update is pending review and should become available shortly. It includes some critical fixes so updating is highly recommended. 

You can download the latest Mac release from Github as well. 

Release Notes

New

  • Added support for following Mastodon accounts through their RSS feeds. Start by adding the user’s ID (eg. @nikhil) in the new feed web address field.

Fixes

  • Fixed some issues when loading images using the image proxy

  • Fixed a bug with Smart Folders auto-grouping

  • Fixed exporting log archive

  • Fixed articles list sometimes not loading immediately after sync

  • Fixed crash when opening an article with an embedded audio file which had a negative start offset (basically a file with bad metadata)

  • Fixed a bug where “Mark All Read” would still show some articles are unread in the list

  • Fixed a critical bug where internal DB connection wiring was all messy. It’s a lot cleaner now and put inside a neat little white-box imported from a Scandinavian country

November 2022 Release

Elytra’s November 2022 releases focuses purely on stability and backwards compatibility of features. 

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.

Common Fixes & Improvements 

  • Various improvements to widgets
  • Fixed a bug with updating counters after syncing completes 
  • Fixed a bug with the “Review App” prompt appearing unexpectedly 
  • Fixed a bug causing filtered articles to be visible in article lists throughout the app.
  • Fixed crash when opening an article from notifications.

iOS 

  • Improvements for find in article on iOS 15
  • Find in article now loops over results in iOS 15 similar to iOS 16
  • Fixed search results in articles appearing in reverse order on iOS 16
  • Fixed a bug with counting for the lockscreen widgets

This will be the last release of 2022, not including bug fix releases in the v2022.11.x pipeline if any are required. I’ll be starting work on the next big features of Elytra soon and will slowly start becoming available with the v2023.1 release.

In the mean time, I hope you stay safe and healthy. Happy holidays.

Elytra on Mastodon

You can now follow Elytra, for app updates and related information, on Mastodon. 

https://social.dezinezync.com/@elytra

If you’re new there, or would like to say hi, feel free to send a toot or a direct message. 

Sunsetting the Web App

The Web App for Elytra has been a work-in-progress since its initial public release three years ago.It’s been hard to maintain and develop due to the minimal interest from me, and declining interest from users.


Over the last few releases of Elytra on iOS & macOS, native technologies on the respective platforms has enabled powerful features like Find in Article and, the in the latest release, Smart Folders amongst others.

These are features which would not have been possible with technologies and frameworks Apple provides on iOS and macOS.Replicating these on the web would involve a lot of work from my end and as a solo independent developer, that’s a huge undertaking for minimal returns. It does not make any business sense.


For reasons outlined above, I will be sunsetting the Web App on 1st December, 2022. This does not affect your accounts or registered feeds, folders and other such information.

This change will also yield me more time to spend on improving the native apps and bringing new features to them.If you have any questions about this, feel free to get in touch with me at support@elytra.app.

Elytra October 2022 Release

The October release of Elytra focuses on bringing new features and improving performance & reliability of the app. It also brings supports for the newly released iPads.

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.

Smart Folders

Elytra's Smart Folder Editor on macOS and iPhone 14 Pro Introducing Smart Folders

  • Create smart folders using a combination of title keywords and folders
  • Automatically curated and ready to go when you need them
  • Notifications when new unread articles are available in smart folders

Improved

  • Massively optimised rendering of the Articles list for consistent 120fps scrolling (on supported devices)
  • Spotlight indexing now always runs in the background when your device is connected to power and has a reachable internet connection.

Fixes

  • Fixed bugs crashing the app in background
  • Fixed deleting folders
  • Fixed crash when renaming a feed
  • Fixed hang on reset app

Elytra September 2022 Release

The September release of Elytra focuses on bringing new features and improving performance & reliability of the app. It also brings support for iOS 16 and the newly released iPhone 14 and 14 Pro family of devices.

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.

Banner: Elytra running on iPhone 14 Pro

New

Banner: Elytra running on iPad Air with two articles in separate windows
  • Support for the latest OS releases.
  • Added section under Settings > Account to transition from a private ID to an Apple ID
  • Elytra now uses the common internal logging framework for fetching, displaying and archiving logs
  • You can now open independant multiple windows of Elytra on iPads
  • Searching in articles now uses the new Apple framework for a seamless system-UI experience.
  • Added multi-selection in the articles list
  • Added multi-selection context menus for bulk updating articles
  • Multi-selection support now enables dragging and dropping multiple articles
  • Two New Widgets for the Lockscreen:
  1. Unreads: Shows the unread articles from the last two weeks. The gauge counts up all the articles in the last two weeks.
  2. Today: Shows the number of unread articles from today. The gauge counts up all articles from today.

Both widgets open the respective section in the app for quick access.

  • Keyboard focus mode now enabled throughout the app

Improved

  • Improved performance of loading feeds, articles and processing filters
  • Improved performance of pulling new articles from Elytra Cloud
  • Improved article rendering performance by nearly 2x
  • Improved internal caching mechanisms
  • Reduced power usage signficantly when scrolling through long lists of articles
  • Tap anywhere on the empty view to display the sidebar if it is not visible
  • Improvements to the networking library used to communicate with the Elytra API
  • Improved sync performance for new installations of an existing account

Fixes

  • Fixed search crashing on iOS
  • Fixed crash on sign up (after a fresh installation)
  • Fixed a critical bug causing older articles to be marked as filtered even when no filters were applicable.
  • Fixed a critical bug causing Re-sync to crash sometimes
  • Fixed importing OPML and Feed Settings files
  • Fixed onboarding getting stuck when signing-in with a Private ID
  • Fixed an bug with the Folder’s widget always showing no articles
  • Fixed an bug with the Folder’s widget not correctly displaying micro.blog style posts
  • Fixed opening articles from widgets when the app isn’t running
  • Fixed reset account hanging after launching app
  • Fixed wrong icon displayed for the Share sheet extension

Changes to the Support Matrix: iOS 15 and macOS 12 minimums

iOS 16 and macOS 13 (Ventura) have been available in Public Beta for a couple of weeks now.

They will be generally available in the coming weeks.

With on-going efforts to modernise Elytra’s codebase, and keep things lean & fast, the next release of Elytra (v2022.8) will be dropping support for older OSes. The new support matrix is as follows:

  • iOS:
    • iOS 15
    • iOS 16
  • macOS:
    • macOS 12 (Monterey)
    • macOS 13 (Ventura)

With 96% of active users already on one of these supported releases, the migration will be seamless for you. If you are using devices on older releases, the current version available on the App Store (v2022.7) will continue to work. As no API deprecations are planned, this will not affect usability of the current release in any way.

I’m excited for the v2022.8 release and new features planned for upcoming releases, some of which you can see in the Public Issue Tracker.

Independence Sale 2022

India will celebrate its 75 years of Independence on August 15, 2022. 

On this occasion, and as a yearly tradition, Elytra’s subscriptions are available at a discounted pricing for all new & existing users. 

This discount will be available from the 11th of August to the 17th of August.

The monthly subscription comes at a discounted price for the first 3 months, and the yearly subscription at a discounted price for the first year. 

The yearly subscription is a great deal at the moment, so if you’ve been on the fence about switching to a fast RSS feeds service, now is great time.