FeedViewer is an HTML viewer for Android devices, optimized for offline reading of RSS feeds such as news sites, blogs and science sites.
I wrote about what it's for and my motivation for developing it in: Android tablet as an ebook/RSS reader. To some extent, it's a replacement for Plucker on PalmOS.
This is my first Android app, so be gentle.
It's free and open source (licensed under the GNU Public License version 2 or, at your option, any later version).
The first source code is here: FeedViewer-2013-10-07.tar.gz or you can download the latest binary here: FeedViewer-2013-10-07.apk
New in 2013-10-07: finally, FeedViewer remembers its position in files you've already visited, and remembers it upon restart. Thanks to Dragan Stanojevi&cgrave; - Nevidljivi, who gave me the trick to scrolling Android WebViews after I had given up.
FeedViewer is not currently available in the Android marketplace or on any other Android sites, because I've never gotten around to registering and it doesn't seem like there would be enough interest to make it worthwhile.
To scroll down, tap in the lower left or right corner of the screen, or use the volume down button if you have one. To scroll up, tap in the top corners or use volume up. Of course, normal Android fling-scrolling also works.
Dragging along the far left edge of the screen will adjust the screen brightness. (It also scrolls at the same time; I haven't figured out a way to disable that scrolling, sorry.)
<< and >> go back and forward like a browser (flinging left and right also work). On Android 1.6 it was fairly inconsistent where you'll end up, but that seems to be a bug in Android's WebView; it seems much better in Android 2.3.
Feeds shows the overview of all the feeds you have available to read; ToC goes to the table of contents for the current feed.
The Scroll menu scrolls approximately to the top, 20%, 40%, 60%, 80% or bottom of the document. This isn't very accurate yet.
To adjust font size, use the menu button to make the font smaller or larger.
FeedViewer looks for directories named "feeds" on the android's storage
and/or on its SD card.
I've only tested it on one device, my Archos 5 running Android 1.6.
I think Archos may mount the filesystem in a nonstandard place.
If you try FeedViewer and it can't see your feeds, let me know
where your device mounts them and I'll add it to the search list.
Any directory inside "feeds" is taken to be a specific site and day, and FeedViewer will look for an index page named index.html inside that.
For instance, if feeds/12-19-Sun/ contains BBC_News_Science/, Slate/ and The_Register/, FeedViewer's top-level "Feeds" page will show something like:
/storage/feeds/12-19-Sun feeds:
12-19-Sun BBC_News_Science
12-19-Sun Slate
12-19-Sun The Register
Each of those individual feeds is a link, so click on the Slate line to read today's new Slate stories.
Here's how I use FeedViewer each day. Of course, you may invent other models.
cp -r ~/feeds/12-19-Sun /androidsd/
find ~/feeds -ctime +6 -exec rm "{}" \;
Once you're in the reader, Feeds goes to the index page, ToC goes to the index page for the current feed, the << and >> buttons go back and forward (horizontal swipes do that too), a long press at the bottom or top of the screen pages down or up (or you can scroll with vertical swipes).
Android's WebView defaults to a white background and black text. They let you change the white background to something else, but you can't change the text color, so if you want light-on-dark default colors (like "Night mode" in Aldiko), you're out of luck.
But of course individual web pages can use any colors they want. So here's what I do: in FeedMe, when I download HTML pages, I add a stylesheet at the beginning of each page that looks like this:
<link rel="stylesheet" type="text/css" title="Feeds" href="../../feeds.css"/>
Then feeds.css contains something like this:
body { color: white; background: #011; } a:link { color: #ffff00; } a:visited { color: #aaffaa; } a:hover, a:active { color: #ffffaa; }Or to make them all the same color, something like
a:link, a:visited, a:hover, a:active { color: #ffff00 !important; }
These should probably have !important
at the ends,
since occasionally you hit portions of a page where the text reverts
to black and you can't read it. But even !important doesn't seem
to override that. I need to experiment more.
If you have trouble tapping on lines in the top-level feeds page because the lines are too close together, you can space them out like this:
/* Space out the feeds list page so there's space for a finger */ div.index { margin-top: 1em; margin-bottom: 1.2em; }
I found that in Android 1.6, I also needed to increase the size of preformatted/fixed-width text. In 2.3 I don't need that any more.
/* Android 1.6's default preformatted font is tiny */ tt, pre { font-size: 1.2em; }
Eventually I'll probably add controls to FeedViewer so you can change the colors interactively (by writing to feeds.css), but right now I'm the only user (as far as I know) so it hasn't been a priority.
Of course, you can add any additional CSS style you want, changing fonts or anything else.