I have been working on documentation of the project as well as pushing through the review of the app on app store.
The documentation is as follow:
OI Shopping List for iPhone and iPod
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