ScreenShot
Overview
The OpenIntents Shopping list lets you keep track of
your shopping items. You can also use it for other kinds of check lists, for
example for ToDo lists or party guest lists.
Currently, the Open Intents Shopping List for iPhone
and iPod supports the following functions:
=>Add items, mark items, clean up
list.
=>Create new lists, delete lists.
=>Change font size and sort order through
settings
Development
Data structure
All the data structure related file are placed in the DataModel group in the project. The structure of the Core Data data model was extremely similar to the OI Shopping List for Android.
There were 5 entities in the data model and they
are:
- Contains
- Items
- Itemsstores
- Lists
- Stores
- Units
In each of the entries, the table columns are also
similar to the SQLite data base structure in OI Shopping LIst for Android.
Except that the cells that stores ids, were replaced by bidirectional
relationships, which makes referencing easier and faster.
As the data model subclasses were all generated by
Xcode, and regeneration might be needed in future. All methods were written
using categories.
The overall relationship between all the entries can
be summarized as follows:
- Lists is the main entries and are always created first;
- Items can belongs to several lists at the same time and are always linked up with list by Contains.
- Contains serves as a note between Lists and Items and stores additional information for a item and associates with a list. A contain is always one-to-one. In the case where a item belongs to several lists simultaneously, different contains links the item to different lists.
- Stores belongs to a list.(I do think it would be better if the store and price information could be shared among different lists, as that would make more sense. However, it is left this way to maintain consistency with the version for Android)
- Items contains links up Lists and Stores, and store the price information.
- Units are associated with Items.
User Interface
The user interface mainly makes use of table view
controllers and were embedded in navigation controllers.
Controller classes were also divided into blocks.
The blocks are namely:
- Main Shopping List Interface
- User interface for settings and options
- Filter related user interface
Each of the above group achieves functionality as
follows:
Main Shopping List Interface
This group of files consists of the code to define
the view controllers for creating, selecting and displaying shopping list,
content of shopping list and detailed infomation of a product entry that is in
the list.
These controllers interacts with user and handles
events like creating a new list, adding a product into a list, editing
information for a product and management of store-wise price information for a
product.
User interface for settings and
options
These block of code are located in the “Options”
group with in the OIShoppingList folder. The files in this group are mainly view
controllers as well as setting managers.
The view contorllers in the “Options” group
interacts with user to adjust the preferences for font size, sorting order and
auto hide. The app also allows user to revert the setting to factory setting.
The table view controllers in this class are mainly static table view
controllers, therefore, the codes are pretty straight forward.
The “ShoppingListSettingManager” class check and stores user preferences and
generate the appropriate output string or predicates according to user
preference.
Filter Related user interface
This group of code are placed in the “filter” group
within the OISHoppingList. As the name imply it let user choose the filter to be
applied and filter the list entries according to the chosen filter.


No comments:
Post a Comment