Sunday, September 6, 2009

aList -- The Lists You're Using vs The Archive

In aList is it possible, even desirable to keep lists and list items around even when your not actively using them.  This allows you to hide lists you're not using and to quickly retrieve entries or whole lists of things you used in the past.  For example, you can archive your weekend TODO list from the active list display until the weekend rolls around.  Then you can shove everything else off to the archive and pull up the weekend TODO list to see what you have planned to accomplish in the garden or workshop.

Any aList list will always have an entry visible in the Archive.  The archive entry might not have any list items displayed below it if all of the items are being used (or the list is empty), but if the list exists then there is an entry for it in the Archive display.  This is illustrated by the two images above.  The "Weekend" list appears empty in the archive (the image on the right shows the list open with no items showing).  And it's only in the Archive and not in the active lists (shown above to the left).  Any items that were active at the time you archived the list won't be visible from the Archive.  To see them select the context menu (long press) and select "Use List" and the list and the active items magically appear.  The image above show the long press activating the context menu, and the image at right here shows selecting the "Use List" menu item.

There it is.  Your weekend list is now active and your list item which has not yet been checked off reminding you to weed the back beds is there unchecked and ready for you to take care of this weekend.  This might seem a little confusing when you're reading about it, but I think (I hope) most folks will quickly get the hang of it and find that it's very easy and convenient to shuttle lists and list items in and out of the archive.

Wednesday, September 2, 2009

aList -- Add items to a list via voice recognition.

One of the coolest features (I think) is the ability to quickly enter a bunch of items into a list using the voice recognition.  I use this feature for making grocery lists every week.  My spouse loves it.  Not because she likes the app, but because she likes that I volunteer to do the grocery shopping so I can do some "real world" tests (if you call a trip to Kroger the real world).  We keep a paper list on the fridge and when it's time to shop I pull it down and enter everything into aList using the voice recognition.  For this example I wrote down a bunch of produce items on a piece of paper (cucumbers, lettuce, apples, grapes, onions, limes, sweet potatoes and oranges).

The first thing I did was import the grocery list that comes with the app.  Even if you don't use many of the items in the list it has a bunch of obvious grocery store categories you can use to get started.  The first screen shot is what the grocery list looks like after the import.  All of the categories and items have been imported into the archive and the list is being displayed as categories.
To add items, I tap the "Voice" button and start reading my list. When I'm quiet for a couple of seconds at the end, the voice recognizer kicks off a request to the cloud and after a tiny bit more aList shows the result of the voice recognition processing.  This time the voice recognition worked perfectly.  It's not that way every time.  If you end up using the app, send me some of the funny voice recognition misunderstanding you get and I'll post them.  When I process the list I get back from the voice recognizer, I present each individual word in the list.  If you say "ice" "cream" those two words will be listed separately.  I don't know if you want a bag of ice and a pint of cream or some Chunky Monkey. In this example, I said "sweet" "potatoes".  So in order to add "sweet potatoes" to my list I need to check these two entires and tap the Combine button.

If you get something weird from the voice recognizer and you don't want to correct it, just check the box and tap the Delete button or leave it uncheck when you tap Ok.  If you get something close, but not quite what you want, tap the entry and an edit interface will pop up.  Finally, check all the items you want to add to your list (in this case they're all good to go so I tap the All button) and click Ok.  aList now asks me if I want to add this to the list without a category.  I say no and go back and select Produce on the spinner.

After I tap Ok, these items are added to the list.  The process of adding them to the list checks the archive to see if they already exist.  If they do, the items get moved from the archive to the active list if they don't they get added to the database to be used by the list. Switching over to the Lists I'm currently using (by tapping the yellow Archive on the control bar) I see my items in my list.  Actually, in this case I would see the Produce category so I brought up the context menu for the list and tapped Display as Items.  Now I repeat the process for other categories.  The result is a list that's conveniently sorted into categories that correspond to sections of the store.  If you don't want to bother with that, just say the things you want to buy add them to the None category and you're ready to shop with a long alphabetical list of items.

Tuesday, September 1, 2009

aList -- 3 ways to make a new list

The help window explains how to add a new list either by selecting the green plus sign button or the microphone button along the top navigation bar of the app.  Tapping the plus sign will bring up the obvious text based interface with all the necessary controls to enter a new list.  The name of the list is the only required information.  Everything can be added later in the "Edit List" interface.  In this example I type "Day Job" for the name and assigned it a category of "Tasks". I'll also be adding a list called "Night Job" (you're looking at me doing that job right now).  I will also assign it the "Tasks" category.  Lists in the same category are grouped together in the active list and archive display.

These two images show a little bit of the text entry process.  By selecting the "New Category" on the spinner you can add a new category name as shown in the next image.

If you're like me, typing on the little keyboard is not ideal.  It's spectacular for what it is, but for somebody that is a fast a touch typist it's a bit fussy.  So aList allows you to enter the name of a new list using the Android voice recognition service.

Tap the microphone image button and you can say the name of the list you want to add and the category you want it to be in.  For enter a list name, I arbitrarily process the voice recognition results into two groups.  The first group is every word spoken expect the last word.  The first group is the used as the name of the list. The last word spoken when adding a new list is used as the category.  If you have a bunch of two word or three word categories, you'll have to fix things up by typing.  (This is the first place I'll readily admit where the app could use some tweaks and improvements -- like making all the combinations of the words searching through the existing categories.  However, entering the list name is not the most useful and fun part of the voice recognition in aList.  Adding items is the best part of voice recognition and I'll explain that in a subsequent post).  In this example I said "Night" "Job" "Tasks" and sure enough, that's what pops up on the edit interface and all I have to do is click OK.

Unfortunately, in the last minute rush to submit the app to the ADC, I overlooked a couple of things.  There is a bug that causes a "force close" if you cancel the speech recognition when adding a list (but not when adding list items).  A stupid bug, but there's nothing I can do about it now.  Less egregious, but a bug none the less is the processing of the category text entry fails to detect when you type in the name of a category you already have so you can get duplicate categories.  A bug or a feature.  I think it's a bug, but I did deliberately allow duplicate list names.

The third and final way to start a new list is to import one.  The app includes ready-made lists you can import.  You can import lists from the SD Card.  A list on your SD Card can be one you create yourself in a text editor and add to your SD Card, one you get via email or download from a site or one you previously exported from the app. We'll get to all those things in due time.  For now, let's pull in the example grocery list that is included with the app.  (The movie list is fun to play with and it was a good list for testing since is has so many entries.  I don't know how useful it will be in the end.  Let me know what you think about it).  To get the grocery list do the obvious (I hope).  Bring up the options menu by tapping the menu button on your device.  Tap the import menu item and tap the plus sign next to the Groceries entry.  The list will not have any active entries.  All of the entries start out in the Archive.  Tap the green "Lists" button in the control bar at the top and switch to the Archive and start planning your shopping trip by selecting items to use them in the active list.

PS.  The more astute among you will notice that the time stamp on the phone through this sequence of screen snaps is not monotonic.  And there is a minute increment between the speech and the returned values.  That's just a coincidence.  As for the others, I had to stop and fix bugs in between don't you know.  Too bad I didn't notice the problem canceling the speech recognition.