fognl

Get off my lawn.

Sunday, March 14, 2010

Greed 2

I've had a pretty busy couple of months working on an Android application for a big company. It's due on the Market sometime next month. It's going to be a pretty cool application, I think. I'm kind of excited about it. It uses JNI to talk to a number of C/C++ libraries, and does some fairly interesting things. I think people in its intended audience are going to have a lot of fun with it. It's probably the first project I've worked on for a paying client or employer where the design specification mentions "fun" as one of the requirements!


I've been very busy as a result of this work, and unable to devote much time to Greed. But in the last couple of weeks, I've had some time to do something I've wanted to do for a while: Rewrite Greed.

Over the last year, Greed turned into a somewhat complicated beast. It was one of the first Android applications I wrote, and one of its main underpinnings was a library I had written very early for doing asynchronous requests (e.g. pulling items from RSS feeds, etc.). It was a pretty simple library. Too simple, actually. Applications using it had to do a lot of work in order to use it, and they would end up being more complex than they need to be. A Google Reader client isn't totally simple anyway, so using this library resulted in Greed getting big and unwieldy (not to mention slow, and a memory hog). On top of that, I had piled a lot of features on in a relative hurry, continuing to build on the complicated-library approach I mentioned earlier (which didn't help matters). Finally, I had essentially copied Greed Lite's source code to a new project and diverged from it in order to make Greed Full. Any maintenance I did on Greed Lite would have to be copied to Greed Full, which tended to discourage my doing working on both of them.


I'm happy to report that all of that has changed. Once I decided to take the leap and rewrite Greed, it only took about 8 evenings to get to where I was after 2 months the first time around. I reused the UI layouts, and the underlying API. Everything in the "app" layer is brand new. That part of the code is now about 1/5 the size (or smaller) of the original Greed Lite. It's faster, a little nicer-looking, and is going to be easier to work on.

Anyway, I would like to ask for testers. If anyone is interested in giving Greed Lite, please feel free to do so, and let me know what you think. I need to know how it runs on all possible Android phones. I've tested it on a G1 running cyanogenmod, and it's running well. I hope to try it on a Droid and a Nexus One in the next couple of weeks. I've run it on a phone I'm using that's not available on the market yet (also appearing sometime soon, probably in May), and it's really quick on that.

Bear in mind, there are still plenty of things to work on. For example, the notifications right now are unconditionally notifying on all updated feeds, instead of only the ones you specify. This is the next item on the list. If you'd like to contribute items to the list, I'd be glad to hear them.

19 Comments:

  • At 8:06 AM , Blogger Hal said...

    I'd love to test the new version. My email is halr9000 at gmail.

     
  • At 8:08 AM , Blogger Kelly said...

    Hal,

    You should be able to download Greed Lite from the Market. I updated it there last night, and re-published it. I also got a look at the comments, which I hadn't seen in a while. Wow! I've been away too long...

     
  • At 8:19 AM , Blogger Dominic said...

    So glad that you have returned to this project - none of the other Google Reader / RSS readers were quite as good as Greed. After having a quick mess around with Greed 2, I like it. Seems a bit slow on loading stories however. Also, it might be me, but I can't see any "Mark as read" or "Mark all as read" functions. I am running on a HTC Magic on the UK Vodafone network.

     
  • At 8:20 AM , Blogger Kelly said...

    Dominic,

    Yes, some of those items haven't been put in yet. There are essentially no context menus, and options menus are minimal. Those should be in place by Wednesday or so. :-)

     
  • At 8:50 AM , Blogger Mark Buchmoyer said...

    The UI looks very nice. Great work! And it runs extremely nice so far on my Nexus One.

     
  • At 10:56 AM , Blogger alopecoid said...

    Hi,

    I have tried the new release. It looks promising. A few things...

    1. Is there a way to turn off notifications completely? I have the notification options disabled, but still get notifications.

    2. Could there be an option to fetch more than 10 items at a time? The feeds I follow typically have hundreds or thousands per day, and works better to be able to fetch, say 100, items at a time.

    3. While Greed had parsing problems, I had switched to the standard Google Reader mobile site. One thing I became accustomed to was clicking on an item and having it expand inline instead of navigating to a new page. This might be a nice option (or perhaps even the default behavior).

    Thanks for the app!

     
  • At 11:02 AM , Blogger Kelly said...

    Dominic,

    Currently, the only setting notifications are paying attention to now are the interval setting.

    You should be able to control notifications completely, if my evening goes as planned. :-)

     
  • At 11:04 AM , Blogger Kelly said...

    Oh, I forgot to mention the other items. I'll look into the expanding article view, probably making it an option eventually. And I'll definitely make the number of retrieved items configurable.

     
  • At 2:19 PM , Blogger schwiz said...

    I will test it out for your on my Nexus one running Cyanogenmod and also my Archos 5 tablet schwiz@gmail.com

     
  • At 2:21 PM , Blogger Kelly said...

    Thanks schwiz. Nice phone you got there, by the way. :-)

     
  • At 6:23 PM , Blogger alopecoid said...

    Hi,

    By the way, I forgot to mention that I was testing on a Nexus One. From the ~20min or so that I was using the app this morning, it seemed to run very smoothly.

    Do you still plan on maintaining two separate branches (Lite and Full)?

     
  • At 8:51 PM , Blogger Kelly said...

    I'm not going to maintain two separate branches. Greed Full will eventually be a "key" that adds features to Greed Lite. It's an approach I've used on other apps, and it works great without having to maintain two branches. Although I've become such a fan of Git lately, I have been known to branch code just for the fun of it. :-)

     
  • At 11:45 PM , Blogger Scott said...

    I was looking for this for my Motorola Backflip, which is a 1.5 device. What are the requirements for Greed Lite?

     
  • At 8:14 AM , Blogger Kelly said...

    Scott, You're the second person to ask about compatibility with 1.5. I currently have it set to require 1.6+, but at the moment I can't remember what Greed does that requires that. I'll look into dropping the requirement to 1.5+. It should be fine.

     
  • At 8:25 PM , Blogger Scott said...

    Please make a post when you re-upload to the market place. I look forward to testing out the new version.

     
  • At 4:40 PM , Blogger James said...

    Nice app. Look forward to following this thread.

     
  • At 5:01 PM , Blogger Scott said...

    I saw the update that works with 1.5. Will start playing around with it soon. BTW will the pro version of the rewrite have a widget?

     
  • At 10:08 PM , Blogger Kelly said...

    Scott,

    The Pro version will definitely have a widget. The lite version may too, but the pro version definitely will.

     
  • At 3:02 AM , Blogger Shak said...

    Excellent app! Just wanted to know if there was a way to turn off polling altogether? I'd only like the app to poll manually if that's possible...

     

Post a Comment

Subscribe to Post Comments [Atom]

<< Home