So I made it to 1.0.
The Headlines app is my approach to feed readers for iOS.
Many popular reader apps depend on the aggregation services such as FeedWrangler or Feedly. Using those has its advantages, of course. For one, there’s less burden on the device, since the client app downloads exactly the data that changed since the last check. In contrast, a stand-alone client negotiates on content with each site’s servers individually, first by providing previous content header values (such as
If-Modified-Since) so that the server can indicate whether the file client downloaded earlier has any changes, and if that’s the case, downloads complete XML content and tries to figure out the changes. And believe me, it’s not an easy task, given the freedom to implement RSS/Atom feeds various people and platforms take.
Despite some technical disadvantages of direct approach, my understanding of the RSS/Atom platform is that it should be completely open and independent of any third party service, so that it is your software on your device that consumes the feeds directly from the content provider. An aggregation service is essentially a single point of failure, both in technical and political/freedom-of-speech-wise terms. That’s completely opposite to the decentralized nature of the Internet. Recently Jason Gullickson ranted on that very topic and I think there’s not much to add there.
My app, although it reached 1.0, is just at the beginning. Currently I’m working on a way to import feeds from other services through OPML files, so onboarding soon should get a little easier.
The next stages – though I’m still figuring this stuff out – is to be able to provide syncing through Dropbox and/or other services, so your night phone can stay up to date with your day’s reading activities.
The app assigns a more or less unique (and pastel ;) ) color to each feed so that when you’re skimming through story lists you can visually connect the story with the feed to quickly evaluate whether it might be worth reading or at least starring, or not. Soon there will be a way to adjust the color. This will allow for another level of categorization, since all those with associated shades of red might be more important than others, for instance.
Also other stuff is on the plate, such as more control of feed categories and list options (e.g. sorting). The idea to sort stories from least recent at the top was that you could easily track the stories as they unfold. However I’m sure people might want more control of that part of experience.
The story reading experience is tweaked for full-content feeds, such as NSHipster, so I made sure that the typography, though Georgia-boring, is nicely set up for different parts of articles, be that lists, tables or headers and paragraphs. One thing missing here might be some kind of a night mode, so that reading experience is easier on the eyes in dark surroundings.
I’m barely only touching the surface here. One thing RSS readers or any other reading apps aren’t is that they are easy.
In App Store terms, the price is outrageous, especially for the feature set it provides. I know. The approach I took was that if someone sees potential in such an app, they’ll be able to support it simply by throwing money at it up front. As the app is focused on the reading experience, the last thing anyone needs is to see ads randomly popping up. Because an upfront payment is not what a usual App Store customer is used to these days, I could at least eliminate those who precisely evaluate everything by the length of the feature checklist.
I spent a lot of time on removing as many obviously visible features as possible and forcing myself not to succumb to temptation of “one more feature and I’m done” mantra during march towards 1.0. Instead, I focused on the experience most of all. For one - the app is extremely simple and discoverable. The reading experience includes nicely set up justified and hyphenated text. Wording in areas that need some explanation is as to the point as possible (e.g. the feed adding steps). Gestures are a secondary, quick way to do things. Not the only way.
Those things require a lot of effort to polish and I preferred working on those to banging up yet another thing I’d think someone would need. Starting with a minimal set of features will allow me to listen to feedback of customers (if they come eventually) and pick out the essentials for which there is an actual demand. I’m using the app daily and ideas pop up every now and then as well, so if I have any feedback, I’ll be able to correlate my experiences with those of others and push app’s development forward in the right direction.