Paperdroid beta out

UPDATE: as of November 2009 Paperdroid Release Candidate is available to the public. Thanks to all the betatesters for their invaluable help!
After lots of unnecessary sweating reinventing the wheel of sending debug logfiles, Paperdroid beta is finally out!

If you want to join the betatesting group let me know at m@latedroid.com - hurry up while there are available slots!


Known bugs:
  • full HTML fetch of pages containing form password fields will crash Paperdroid - as for why, it's beyond me
  • a (minor) bug is preventing pending sync to go trough
  • tags are misbehaving
    (will automagically fix by itself - yeah, right)
  • sometimes the service will just stop responding when losing connectivity
  • offline cache doesn't use the correct content encoding (thanks Laki!)
  • login details aren't requested at first run
  • login details are requested twice at first run :)
  • offline reading screen won't allow to follow (online) links
  • offline reading links won't spawn a new browser instance
  • login dialog UI is misbehaving too
    some residual irkness, we'll have to live with it
Todo:
  • some more icons
  • article details screen
  • (make sure) background syncing (works)
  • purge old cache
  • day/night color schemes
  • full HTML offline caching
  • gestures, maybe, one day
  • in-app and device search
  • tags for Reader
  • fix the inevitable bugs
  • suggestions?

22 comments:

L | October 11, 2009 at 8:03 PM

I'm trying to install the new beta (0.1.1), but I always get the following error: Application not installed - Paperdroid could not be installed on this phone. I've got Cupcake (not Donut) on HTC Hero. Any thoughts?

L | October 11, 2009 at 8:09 PM

Sorry about spamming, I've figured out the problem and just in case someone would experience the same problem, here's the solution: you need to uninstall the old version first, then install the new one, upgrade doesn't work.

lowne | October 11, 2009 at 8:23 PM

Yea, sorry for that, the same thing happened to me for no apparent reason and I thought it was just a glitch on my phone.

A quick way to uninstall the old version, from a shell:

adb uninstall com.latedroid.paperdroid

Unfortunately this will erase all your preferences. I'll dig into why it happened as soon as I have some time - deleting user preferences is not something that I want to happen on every upgrade :(

PS: it just occurred to me that it *might* be due to upgrading the SDK to the latest version.

lowne | October 11, 2009 at 8:36 PM

@Laki:
I'll answer here to your comments.
- Day/night is supposed to change color scheme for optimal reading in daylight vs night time. But it's not yet implemented (and not really a priority now) and I'll probably move the option to the main (article list) screen - it seems more logical there. What's your opinion?
- UTF8 encoding: I didn't really look into that yet, but it was supposed to work correctly. Can you send me some misbehaving urls so I can give it a nice debug run?
- HTML fetch is not yet implemented, and will probably stay so for quite some time...
- 'bookmarking' how far you've gone on each article is a *great* idea, will add that to the todo.
- the Sync button now should sync your article list AND fetch all unfetched articles, it was a bug in the previous release
- again, very good idea on fetching articles directly from the article reading screen.
- search will definitely be implemented, but it's not a priority now
- the UI overall is still in a very fluid state, so keep the suggestions coming :)

Thanks *a ton* for the awesome feedback! I really appreciate it.

L | October 11, 2009 at 11:03 PM

I'm glad I helped ;)

ad Day/night - thought so, good idea, but I don't think putting the option to the main screen would be more suitable, the brightness might feel too strong only after reading for a longer time (let's say when reading a very long article), therefore I think that the option inside the article view is alright as it is now.

Some sites that don't show properly because of encoding:
http://tr.im/BsV4
http://tr.im/BsVJ
http://tr.im/BsWf

And more thing: the app's icon is awesome!

Damien | October 12, 2009 at 11:07 AM

Great start! One thing I noticed, though, is that I get the Empty/Invalid credentials message in the settings menu even though when I sync I get all my webpages.

TechieBird: | October 15, 2009 at 6:05 PM

A stupid cosmetic thing, but you wanted feedback so here it is...

Rather than start with "Your reading list is empty!" it would be good to have the accounts settings popup on first run.

lowne | October 15, 2009 at 6:53 PM

@all: is the 'article position bookmarking' (e.g. read half an article, exit the screen and do something else, come back to the article where you left it) working as it should? I didn't have a chance to stress-test it.

@Laki: that encoding thing is driving me crazy! I'll have to issue a fix consisting in 'Only pre-approved webpages written in plain English can be cached. Fàncÿ açcêñtß are banned forever' :)

Thanks a lot about the icon! I smiled out of pure happiness when I read that :)

@Damien: that should be fixed now.

@TechieBird: agreed, scheduled for the next beta.

TechieBird: | October 15, 2009 at 7:46 PM

Ok, I'm past the stupid cosmetic stuff. Sorry to say, it's not going well though :o(

First, it wouldn't log me in. I tried a few times, including restarting the service through the Troubleshooting options. (UI note... the 'main' screen was showing that it was still logging on in the top bar, although the settings screen was showing empty/invalid credentials.) A handset reset got me past that.

Now the first article I looked at is having encoding problems - the URL is http://blogs.technet.com/jamesone/archive/2009/09/20/story-of-a-photo.aspx.

I tried to reload it as just text (from View menu item), but that caused the service to get stuck again. (Top bar was showing "fetching articles..." for an age.) Restarting the service didn't help. I haven't tried rebooting yet.

For info, Handset=HTC Magic, OS=Cupcake, connection=WiFi

lowne | October 15, 2009 at 8:27 PM

Issues, issues everywhere, and all the boards did shrink.

I'm about to rewrite completely the network stack stuff; the stuck service thing is not something that users should deal with anyway, right?
Hopefully this should also help in getting the charset thing working - as I tried countless combinations and nothing worked with the current network implementation.

It seems there's also another bug that will wipe your reading list. I couldn't replicate it yet; if that happens, please use the troubleshooting/send debug log option. Speaking of which, @TechieBird could you do that? I want to make sure that it's just the connection that doesn't get through and not something more serious.

Lastly: anyone on Donut yet? If so, let me know how badly it breaks Paperdroid.

TechieBird: | October 15, 2009 at 9:12 PM

Just posted the log file.

I read somewhere that Vodafone should be pushing Donut in the next couple of weeks...

L | October 18, 2009 at 3:12 PM

Installed the new beta (0.1.4), despite what you wrote in the e-mail, reinstalling works, but the app does not. Syncing is okay, but fetching doesn't work, I always get a “Timeout waiting for connection” error. I tried it on WiFi and on EDGE as well, the result is the same.

lowne | October 20, 2009 at 11:27 AM

Ok, so I was way too optimistic in setting the timeouts. Sorry everybody, and thanks for reporting the problem.
In the latest beta - which I'll send right away - I rewrote the communication object, set a much more generous (30 seconds) timeout and removed the hook to force abort on a non-responding socket - basically this means that the old 'service stuck' behaviour might resurface, and perhaps (this would actually be a good thing) 0.1.4-style-timeouts too. Whatever happens, *please* let me know and send logs. Together, we shalt prevail over Apache HttpComponents! :)

Also: from now on the .apk will be signed properly. This one beta *should* still require uninstall - not sure about that.

Unknown | October 21, 2009 at 6:50 AM

The last build seems to be working pretty nicely. A request, though: is there a reference for what all the icons mean? The red and blue and green disc icons?

Also, it would be really nice to have a setting for it to just download everything automatically. Or maybe it does that already?

lowne | October 22, 2009 at 1:34 PM

@Joe: The background syncing service got a lot of loving care with the last release. Set it up in the preferences.
I also changed the reading list icon to standard ones - they should be self-explanatory, let me know what you think and how the automatic syncing works for you.

lowne | October 22, 2009 at 1:42 PM

Important announcement: I'm planning of doing at most two or three more betas before releasing Paperdroid on the Android Market.

Your feedback has never been more needed.

I also need you to ping me if you're interested in staying in the loop and keep receiving the latest, bleeding edge releases (perhaps including hypothetical-Paperdroid-Pro features) for early testing.

Unknown | October 24, 2009 at 6:50 AM

Hey, the new automatic sync works great!

Some UI nitpicks:

1. On loading an article to read, the semi-transparent title bar obscures the beginning of the article. I think putting a little extra padding (enough to clear the title bar) at the top of the article page would solve this.

2. An option for white text on black background would be fantastic.

3. It would be nice if after switching to a different text view, it would automatically refresh. Currently, I have to go out to the list, and select the article again.

4. It would be really nice to be able to choose a typeface. The default Android typeface is ok, but it could be better, especially for an application like this, in which you stare at text for a long time. I think this would go a long way to delivering a better experience.

Bugs:

1. The mark as read and go to the next article ("Read & next") button seems to skip the next one and go the the one after that.

2. When returning to the reading list from an article or the preferences menu, the list shifts up one entry.

Feature requests:

1. Share in Google Reader would really do a lot for me.

2. The favicons are nice, but I think it'd be nicer to have the option. Also, I feel like the favicons would look better if they took up the full height of the list item, instead of just the title text.

3. Maybe further down the road, I think some nice subtle UI touches would be conducive to a pleasant experience. For example, arrows pointing to the right at the end of each list item in the reading list and a transition animation going to and from an article would connect the articles to the list in an intuitive spatial way.

I realize some of these are pretty pie-in-the-sky, but I'm really impressed with your work, it's really made Read It Later a usable service for me.

lowne | October 24, 2009 at 3:35 PM

@Joe: man, that's *fantastic* feedback!
1. I agree wholeheartedly, and, believe me, it's not as trivial as it sounds due to the way the screen is laid out and the article is cached. Days ago (back in 0.1.4 times I think) I even wasted a couple hours on trying to find a decent way to do that. In the end, I just thought it wasn't worth the hassle. But it's still in the 'low priority' todo.

(@everybody HINT: just tap the screen after the article loads and the title will go away)

2. In the todo as well. I just promoted it from 'low' to 'medium' priority :)

3. Yet another not-really-trivial thing to implement (and in the todo), anyway you don't need to go back to the list: as soon as 'article fetched' comes up, just select menu/view again, 'fetch xyz' will now read 'view xyz'.

4. Already done a couple days ago - you'll find it in the next beta. However the only options are Android's sans and serif (the latter is quite ugly IMHO, which is unfortunate, as I myself prefer a nice serif font for long reading sessions). I'll look into inserting more fonts and related licensing issues.

1. Thanks, will look into that.

2. It should just adjust slightly in order to make the first item fully visible. Yes, it's annoying sometimes, and yes, I tried and tried - it seems there's no way, or I couldn't find one so far.

1. Wholeheartedly agreed again. A slew of new integration features is in design stage - but I want to get the thing to a decent degree of stability and polish and publish it on the Market first.

2. Another on/off preference would be easy to implement; on the other hand I don't want to overload the app with options. I'll think about it and hope in further feedback (ping @everybody)

3. Screen transitions should already obey the global user preference - I, for one, don't particularly like them. I'll look into trying to customize them in order to make them more meaningful (on the standard Cupcake emulator they are pretty slick, while on my Magic with Hero rom there's just the standard zoom-in/zoom-out one, which is kind of lame when switching from the list to the reading scren and back).

OTOH I *definitely* want to put into Paperdroid that kind of polish you refer to. I do think it's those little things that make an app a great one - so feel free - or encouraged - to elaborate more on any UI ideas you might have.

Thanks for the terrific feedback, and keep it coming!

PS: next beta coming really truly very much soon!

L | October 25, 2009 at 12:12 PM

Hi again, 0.1.8 works very well, but there seems to be a bug somewhere: When I try to wipe the whole database, or only the fetched items, I get a crash error. The app remains working, but the settings screen force-closes.

Moreover, I got an idea for a feature: what if swiping your finger across the screen from left to right and vice versa would navigate you through articles? Then it wouldn't be necessary to go back to the app's main screen.

lowne | October 29, 2009 at 12:38 AM

@Laki: uh, your comment slipped through my mail, a thousand apologies!
But - where's the debug log? :)
If that happens again, send it! Then try the new beta, and send it again.

Unknown | November 6, 2009 at 2:04 AM

Really enjoying the latest build, man. Eagerly awaiting the paid version so I can get at some of those premium features. And, as I tweeted, I'm rreeeeeeally looking forward to 'share in Google reader.'

UI issue: the zoom bar that's always visible when i scroll with the touchscreen is really annoying. How about a global type size instead?

Also, I like the swipe gesture functionality for next and previous article, but the directions seem backward to me. I feel like it should be drag left to go to the next article, so it's more consistent with the direct manipulation paradigm. Scrolling up and down for example; to scroll up you drag down. To go right (next article) you should drag left.

lowne | November 6, 2009 at 3:08 AM

@Joe: swipe gesture, agreed. I made it backwards because it doesn't provide the direct manipulation feedback (i.e. scroll the old article out of the way under your finger and scroll in the new one). But yea, it makes more sense. Of course this means I'll have to eventually implement that kind of visual feedback; which means more headaches (I had already thought about it, but the platform won't allow it so easily - read on).

Zoom bar: it's *super* annoying, yes. It's the lameness of the default WebView/Android browser.
Luckily I got BetterBrowser (via Cyanogenmod) and I can just double/triple-tap to zoom in/out (not to mention pinch, but it's not that useful); but no such luck possible with in-app WebViews (short of reimplementing all those things by hand - yes, it's doable, and tedious).
I can't get rid of the zoom controls, though, as zooming is (sometimes) useful with Full HTML view. I guess that means more preferences to set up (set a font size and have zoomers disappear from text view). I'll see what I can do; in the meantime, *precisely* for that reason I implemented a nice feature called "tap top/bottom of the screen to scroll up/down one page". After a little getting used to it, I find it's better than dragging - easier on the thumb (as 95% of the times it's scroll down anyway). Give it a try and let me know if it works for you.

[rant type="ranty" length="looooong" summary="@$%#@ Android"]
Paid version: ZOMG. I had three major features to implement, and the first one (HTML caching) turned out to be an immense PITA - for something that the ^%$#%$ WebView does already.. but no! it's not configurable in *any* way, so no luck that way. *All* other ways to do it just got very charmingly deprecated by Google - meaning they won't work in Android 2.0 - and the best part is that they just *forgot* to put some other mechanism in place. At any rate, no options, so I had to take the loooong (and deprecated - more headaches soon!) detour around the problem.
[heath]
Which by the way is so full of inexplicable bugs that I've basically spent the last four days WTFing happily all along. In order to make the thing work, I had to rewrite the whole Sync Service logic not once, not twice. Four times. This is there's-no-frigging-reason-it-shouldn't-work-nonetheless-it-doesn't-so-let's-just-keep-trying-until-it-does development at its best.
As an added bonus, Paperdroid went from being basically two-threaded (UI and sync) to a jungle of worker threads. It's, dare I say, fascinating that it works. It also adds an order of magnitude to debug-related-headaches.
On top of it all, the second major feature will require a full rewrite of the database logic.
[fireworks]
What's the lesson? Maybe it's better late than never, but for sure later is better than late. Having to babysit 1.5, 1.6 and 2.0's crisscrossed "deprecations" and reinvent features that are *already* there (gestures is another example) is just a sucker's game.
[/fireworks][/heath][/rant] Then again, that's the price for freedom.
The line that hides beneath the bottom line: I'm afraid Paperdroid Pro won't be ready for at least another week.
Ok, sorry for the lame rant - well, thanks for allowing me to let some steam out.

Post a Comment

Note: Only a member of this blog may post a comment.