Future development of the ChopinLiszt application
I originally wrote this program for my own personal use,
and I have been using it for personal shopping since February 2009.
The original design had four modes,
with the additional mode being an archive mode,
where items could be preserved but not displayed in the stocktaking list.
The idea was to preserve metadata for items that are only occasionally used.
There were also two location fields in each item,
one for the location in the store,
the other for the location in the stockroom.
There was a selector for the sort order of items,
items could be sorted by stockroom order, shopping order,
alphabetical order, or a manually-specfied order
manipulated by the built-in reordering mechanism.
But the version I actually implemented was a minimal subset,
preserving only the store location, as passive metadata.
It is expected that future enhancements will be driven by customer input.
Everybody I've talked to has had suggestions for how to extend this application.
Some people might like to have rotation to landscape mode for long item names.
Shake gesture to undo last action?
All those insert buttons are an eyesore.
What about using a "reverse pinch" gesture to "open up" room for a new item?
How do we animate this?
Two TableViews, one for above and one for below, being positioned?
Would it be easier to do a "new item" button floating above everything,
to insert someplace near the "middle" of the displayed items?
What about double tapping in edit mode?
Can we distinguish a double tap as an insert and not a request to edit an item?
One extension would be to have multiple stores, but the question then is,
do we mix the items into one large pool or do we have a separate pool for each store?
I think the answer is both, so there should be some design that respects both approaches.
A tie-in with a recipe program is an interesting idea,
it could automatically mark the things which are needed for a particular recipe as needed.
Is there a business use for an industrial-strength version of this program,
and what do we have to add to it to make it useful in such an application?
Current list of fixes for the next version
Renamed LisztItem's newItemNamed:needed: to itemFromName:needed: to conform to Apple's convention
Memory leak: added autorelease in LisztItem's itemFromName:needed:
Memory leak: added release in LisztController's tableView:cellForIndexPath:
Memory leak: added release in LisztController's tableView:moveRowAtIndexPath:toIndexPath:
Return to Chopin Liszt