Some time ago there was a DailyKos mobile app for iOS. Early this year, I decided to try to write a new DK4 mobile app (note: not for iOS) as a way to become more familiar with mobile programming. My first attempt was quite limited, but pretty good. Since then, I've run into obstacle after obstacle (i.e., my day job) and haven't done much. I'm now interested in moving this forward again.
Updated with screen snapshots at the end.
First, I'd like to see if anyone is interested in having a mobile app that supports reading diaries and comments. That is, a fast, read-only DK4 that supports offline use. (I use the offline mode before boarding flights to grab copies of front page, recommended, recent, and followed stories to read in-flight.)
There are some challenges to bringing this project to fruition and I'd like to ask programmers and other dk4 insiders for help in overcoming them. Read on for the details, a pre-release offer, and the poll of interest.
In late 2009, ct told us that dk4 content would be returnable in json format. A mobile app that used json to interact with the DK servers would both minimize data usage and maximize speed. It sounded like a good way to streamline mobile DK4 access.
Since I was working on a Windows Phone 7 project at work, I wrote the first version of DK4 TO GO for WP7. It works pretty well, but the code is messy and needs to be rewritten before I have something that's worth publishing for all. Before I do that, I want to simplify some things, if possible. That's where I need your help.
The json implementation that ct wrote of was designed for supporting the needs of the DK4 website and it does that very well. However, because it wasn't meant to be a general purpose interface, the json implementation is incomplete as far as a mobile app's use of it is concerned. Addressing those shortcomings is where the app needs help from anyone who has ideas on how to overcome these challenges.
SIDEBARS and LISTS
Stories, users, groups, and tags on dk4 are nicely json-ified and handling them is easy in the app. However, sidebars and lists are not. The sidebars on most pages and the lists on the Diaries, People, Groups, and Tags pages come back in "pseudo-json" format. The guts of the json is a property called "html_response" which contains HTML markup rather than json data. I can parse around this, but it adds extra code, lots of extra error checking, and makes the returned data bigger than it needs to be for our mobile purposes.
Is there a way to get "proper" json-only data for lists and sidebars rather than combo json/html markup?
RECOMMENDED RANKING
There are two ways to get lists of recommended diaries: the Recommended sidebar and the lists on the Diaries page. The Diaries page offers four choices: most recommended today, this week, this month, or across all time; it doesn't offer the same list in the same order as the sidebar shows. Further, the sidebar and the lists show different information (the sidebar lacks the date and time of the diary and used to lack the mouseover short description). Having only one format to parse and having all of the data fields would be better than having two formats with differing data.
Does anyone know how to use the Diaries "list table" format to get the same set of diaries as seen in the Recommended sidebar?
STORYONLY or COMMENTSONLY
In DK3, a diary could be retrieved without the comments; DK4 seems to disallow this. Having a "story only" view would be advantageous in a "quick" mobile setting. As an analog, having a "comments only" view would let the user request comments as needed without taking the time (or bandwidth) to re-download the story itself.
Is there a way to get the story only?
Is there a way to get the comments only?
BETA OFFER
As I said at the top, I already have a version of this app working on Windows Phone 7. I can make it available for beta testing for up to 99 people. (Since the platform is Windows Phone 7, it seems unlikely that we'll exceed that limit. ;) To get on the beta list, contact me with the email address that you phone uses in the Windows Phone Marketplace. You can put the address in a comment here or send me a private message. Either way, do not send your password. As I add addresses to the beta list, I'll contact you by the same means (comment or private message) to let you know how to get the app.
If you are a programmer of mobile apps on iOS, Android, or another platform and are interested in the C# source code to this app, I'm interested in providing it, provided that your app will be both free (no charge to the users) and without ads (i.e., really free). Contact me and we'll talk.
SCREEN SNAPSHOTS
These are snapshots of the beta version that I'm currently running. Enjoy.
The main page showing the content of the front page and allowing the user to swipes sideways to get to other navigational pages such as My Page, More Stuff, and Controls.
The listing of stories on the front page. The list scrolls up/down, tapping a story opens it, swiping sideways goes to the Recommended, Recent, and Featured lists.
Here's a diary itself. The control scrolls up/down; swiping sideways moves to the next or previous diary in the list. The "..." at the bottom is Windows Phone's equivalent of Android's Menu key. The menu lets you control font size, see the tags used (to quickly jump to a list of stories based on that tag), scroll to the top, or switch to comments view.
Here are the comments.
And here are the controls. Normally, lists are downloaded at startup and diaries upon demand, however, you can pick which diaries are pre-loaded for later offline use. You can also tell the app to skip photo-heavy diaries like those shown here (to reduce bandwidth) and to throw away comments (to save space on the device).
Cheers,
Ken