NOTE: REQUIRES PALM 2.0 OR HIGHER.
Table of Contents
What's New -- [Updated]
Freeware
What is HandyShopper?
Quick Start: How to Shop with HandyShopper
HandyShopper's Features and How to Use Them
Many people have responded to HandyShopper over E-mail, and the response has been overwhelmingly favorable (also, there were several good suggestions for v2.0, many of which I will probably implement). I received several offers to go commercial: HandyShopper will remain FREEWARE, since I am not interested in receiving any remuneration for it other than postcards (my wife says my office is too bare, so I'm going to hang up in my office the postcards I receive <grin>).
More information on the bugs and their respective fixes can be found near the beginning of the Shop.C source file.
HandyShopper is free for anyone to use. No one may sell it, lease it, rent it, or otherwise charge or collect fees for it.
Please feel free to send a postcard to:
Disclaimer: By using HandyShopper, you agree that in no way can I be held responsible for anything bad (or good) that happens as a result of using (or abusing) HandyShopper. When you use it, you do so at your own risk. It works great for me, but your mileage may vary.
HandyShopper helps keep track of your shopping list(s) for you.
You can add into HandyShopper all the things you commonly shop for, and just check off which ones you need to buy, then go shopping and check them off your list as you buy them. Couldn't be simpler!
First, make sure the "Need" tab at the top is highlighted in black.
Tap the New button to add new items to your list. You'll notice a checkbox appears on the left, with a dotted underline next to it (this is where you enter a description of the item, for instance "Batteries - AAA").
Add as many items as you wish. When you go shopping, HandyShopper shows your list of items you need (notice the tab at the top which says Need; this tab should be selected, or black).
As you purchase items on your list, check them off. They will disappear from your list. The item is not necessarily deleted from your list, though; if an item is marked as One Time Only then it is deleted when you check it off, otherwise it is merely filtered from the Need view, since it is no longer needed.
Next time you need to go shopping, select the All tab and the items you've gone shopping for before will be listed. Just mark which items you need this time (tap the box to the left of the item so it gets a checkmark in it). Now select the Need tab to show your shopping list, and you're ready to go!
For more information, and to make use of HandyShopper's other useful features, see HandyShopper's Features and How to Use Them.
For instance, you can have up to 15 stores, and mark an item as being available in any or all of those stores. As you might expect, you can see your entire shopping list, or you can limit it to one store at a time. You can categorize items, too (for instance, I have a Wife Gift Ideas category, and a Groceries category). Just like the PalmPilot's To Do List and Memo List, you can see all items at once, or just one category at a time. And much more!
![]() |
Figure 1 |
"i" You can tap the "i" in the top left corner to display some quick reminders on how to use HandyShopper.
All / Need / C These three tabs filter which items are displayed. When All is selected, all items are listed. When Need is selected, only items that are marked as needed are displayed (this is your list of needed items that you intend to purchase). When C is selected, only items that are needed and for which you have coupons are listed. To mark down that you need to buy a particular item, select All and find the item in the list (you can use the lookup feature, described below). Once you've found the item, check the box to the left of the item. This puts the item on your shopping list. When the Need tab is selected and you use the New button (described below) to add a new item to the list, the new item is automatically marked as needed.
Categories in the top right corner is a dropdown list where you can select a category to show. This works just like the category dropdown in the PalmPilot's built-in Address Book, Memo Pad, and To Do List.
Stores Just below the All/Need/C tabs is the Stores dropdown. Many items on a shopping list may be available at more than one store. HandyShopper therefore allows you to have up to 15 stores, and you can check off the stores at which each item is available. To see all the items on your shopping list, select All Stores from the Stores dropdown. Or, you can select a specific store; then only the items which are available at that store are listed. If a store has one or more items which you currently need, the store's name is shown in bold in the list of stores. Any store which doesn't have items you need is shown in normal type.
![]() |
Figure 2 |
New Tap the New button to add items to your list. When the All tab is selected, new items are added to your master list, but are not marked as currently needed (this is the best way to enter a store's stock into HandyShopper for future use). When the All tab is selected, you can put an item on your "current shopping list" by checking the box to the its left. When the Need or C tab is selected, new items are automatically marked as needed (the checkbox to the left will be empty when the Need tab is selected; check the box when you've purchased the item and the item will disappear from the list).
Details This button pops up the Details dialog, where you can mark at which stores the item is available, set the category, and mark the item as One Time Only, or Private.
Lookup (L: ...........) Tap here and enter text to look up. The first item that matches what you enter here will be highlighted.
Setting up Stores [Sorry, I got tired of writing documentation; v2.0 will have instructions for this. It's pretty straightforward.]
Other Preferences [Sorry, I got tired of writing documentation; v2.0 will have instructions for this. The preferences are fairly self-explanatory.]
[Sorry, I got tired of writing documentation; v2.0 will have instructions for this. Look at the menus. They are fairly self-explanatory.]
HandyShopper 1.x is basically a JShopper clone. However, after using HandyShopper myself for a while, I've decided it's a silly way to organize a shopping list. So v2 is being redesigned from scratch.
Here's an incomplete list of several features I have planned for v2 (there are more that I haven't listed). Also, I've gotten several requests to keep HS simple to use. That has been my intent from the beginning, and has not changed. I am also making it as efficient as possible, in speed, in database size, and in code size. For instance, many users have requested prices and aisles to be recorded per store. This would make the database significantly larger. Many other users have requested that the database be kept very small and efficient, because they don't care about prices or aisles. So, I have carefully designed the database format to be flexible. For instance, if you choose to use the per-store price feature, your database will get bigger. But those who don't want that feature will not be wasting memory.
Why not, you ask? Because the Conduit SDK costs a few hundred dollars, and HS is free. Therefore I am a few hundred short of buying the Conduit SDK. If I personally had need of a conduit, I might spring for the SDK out of my own pocket. But I don't, so I won't. Sorry! If someone donates a Conduit SDK, I'll write a simple one that can generate a CSV file (which can be imported into all kinds of apps, such as Microsoft Excel, Microsoft Access, and most non-Microsoft apps). Or maybe someone will volunteer to write such a simple Conduit.
HandyShopper is a few thousand bytes smaller than JShopper, each record uses less space, and has the same set of features as JShopper, plus more. By the way, HandyShopper works with the PalmPilot's Find command (JShopper does not).
I have lots of ideas for v2.0. If you find HandyShopper useful (or if you find the source code useful), remember to send me a postcard.
For what it's worth, I apologize to Land-J for making HandyShopper available for free. My reasons are (1) I've been in the shareware business before and decided it's more work than it's worth, (2) I wanted to make HandyShopper's source code publically available to serve as sample code for a relatively sophisticated use of tables on a PalmPilot, and (3) since HandyShopper is free, I don't have to offer user support!
When I was starting to program for the PalmPilot, it seemed the big question on the newsgroups was "how do I program tables?". It's very hard to find good source code for programming tables. I've done lots of interesting stuff with tables, and my code is not entirely uncommented.
The HandyShopper source also contains examples of "creating a hidden Field and using it to manipulate text". Several useful debugging aids are also included (a collection of Assert and Panic macros, plus a makefile that conditionally links the alert resource for the asserts, so it's only built/linked in your debug build). Also, some simple memory leak detection (note: it only tracks MemPtrNew and MemPtrFree).
HandyShopper was created using the Win32 GCC 0.50 PalmPilot SDK.
If you find the source code helpful, I'd like to know! Please mail me a postcard. Alternatively you can email me, but remember to send that postcard!