When developing the user interface for a mobile application in Agentry, the first consideration should be given to the screen flow, i.e. how the user should navigate through the information presented in the screens. In general it is a good starting point to look to the data within the module. In any real-world application there is likely to be multiple collection properties with a structure or hierarchy of their own. For example, Customers may contain Orders, which in turn contain Products. Likewise, Work Orders may contain Job Plan Steps.
When designing the screen flow, then, it can be useful to start with a basic drill-down approach. First, present the user with a list of the top level collection in the module. Then, allow them to select a object in this list to view details about that object. These details can include the property values of the selected object displayed in fields, as well as the collection properties it may contain, displayed in their own lists. If further nesting of object collections exist, this can be repeated for level of data within the module’s data structure.
Note that this is a beginning point within the design. This structure need not be a part of the final implementation, and in fact may never be implemented exactly in this manner at all during development. However, it can be used as the foundation for the final UI design and implementation.
Once the basic drill down structure has been designed it should be further refined to match the needs of the application, and to reduce the amount of interaction required by the user, that is, to reduce the number of clicks required to get to the information or functionality needed.
Next, the portion of the user interface for transactions should be considered. If users can add instances of an object, consider the best point or points within the UI flow to expose this ability. Similarly, edits to the objects, and also deletes, should be exposed at points where it makes sense to the users. Again, when making these determinations, begin with the basics. If allowing users to add a given object type, expose this action on the screen where this collection is listed. Also, deleting objects is functionality typically exposed in the list for the collection.
Edits can be expose in lists as well, but may also be exposed in detail screens for the object. In many applications there are numerous edit transactions for the same object, with the different edits affecting different property values within the object definition. If these values are displayed in detail screens for the object grouped together in a manner similar to how they are organized in the different transactions, it makes sense to expose those transactions in those detail screens where the values the transaction affects are displayed.