bitquill - Spiros Papadimitriou

Delicious app for Android

DISCLAIMER: This application is in no way affiliated with or endorsed by either Yahoo! or Del.icio.us.

Project on Google Code
App on Cyrket

This is my first app for Android. Simple enough to complete as a "weekend hack", but still not completely trivial (e.g., has network I/O on separate threads, multiple intents including a search provider, and basic use of a local database for tag caching).

The app is does not sync bookmarks locally and is unlikely to support this (see to do below). It is primarily meant to be called through the "Share page" menu option in the browser (see figures), although it does support some basic tag search and visualization functionality.

Download

Binary release

The app is available on Android Market, under the name 'Beelicious'.

Source release

The source is available on Google Code, and distributed under the terms of GPLv3. Please grab source tarballs from there, attachments on this page are outdated.

Known issues

  • Activity restart on orientation changes has a known race condition that may lose UI updates. All activities that fetch data are, in theory, affected by this (but, in practice, onDestroy/onCreate seems to be an atomic sequence?)
  • Query for tag cache cursor potentially susceptible to SQL injection; not accessible programmatically, string has to be manually typed as a tag while entering a bookmark, with suggestions turned on.
  • Database cursor objects may leak?
  • Tag sync (for suggestions) must be triggered manually by user.
  • HTTPS is a bit(?) slow
  • Although API calls to posts/all are limited to 20 results, Del.icio.us may still throttle them.

ChangeLog?

  • v0.2 10/28/2009
    • Submit bookmarks in background (less user wait)
    • Background service for periodic tag list refresh
    • Basic bookmark editing
    • Configurable API endpoint (Delicious, Gnolia, or user-defined)
    • Smarter URL extraction from text payload (when invoked via "Share" menu from other apps)
    • Fix bug in HTML title fetch (would cause crash if URL was malformed)
    • Simple tag list view (now default) with type-to-search

To Do

  • Check that text payload is a URL, when BookmarkActivity is called with ACTION_SEND [v0.2]
  • Background sync of tags (via service) [v0.2]
  • Tag list view [v0.2]
  • Submission in background (service) [v0.2]
  • Bookmark editing / deletion [v0.2]
  • Fast mode (submit directly, without editing)
  • Remove (or improve?) tag cloud
  • Code cleanup

The app is unlikely to ever support full sync in the background. First, doing it properly is non-trivial. Second and more important, the only reason for this app's existence is that, last I checked, Delicious didn't have a decent (HTML5) mobile web interface. Other than that, I see no reason for a native app. I may do some minor tweaks when/if I find time, but I have no major plans for further development of this app.

Attachments