The Mobile Framework includes a generic abstract widget hierarchy. Widgets for specific plafforms are subclassed from each abstract widget. In the application, to instantiate UI elements, we use generic templates. Such templates specify generic UI elements. For instantiation of Android or iOS platform widget, MobileDevice and MobileApplication classes are used.
Defining your Coordinator
ToDo
Link your Coordinator to an UI specification
You do not need to subclass MobileCoordinator to define your coordinators, but we will assume an MyMobileCoordinator example class.
You specify the link between your UI and your application Mobile Coordinator in a method, for example #uiDefinition
Method selector could have any name.
You can define as many coordinators as you want.
Each coordinator must have a name, a link to a Coordinator class (MyMobileCoordinator) and a configuration
Coordinator Structure
Inside an UI specification method (#uiDefinition), a Coordinator is defined as an Association
You define the mapping to the Coordinator class associating: #class -> a class name (#MyMobileCoordinator)
MyMobileCoordinator should exists as class in the System.
You should define the configuration as an Association: #configuration -> properties (Collection)
Configurations can contain
#title
#widgets
#listeners
#navigationBar
They are defined following the pattern #name -> properties (Collection) until you define the whole structure.
Defining your Mobile Threads
The threads are defined in the same method used for defining the Mobile Coordinators (#uiDefinition)
You define your application Mobile Threads in a method
You do not need to subclass MobileThread to define your threads.
Threads Structure
Each thread is defined as an Association: (#threads -> anArray)
anArray includes at least:
An Association with the tool name: (#tool -> #MyTool)
An Association with key #coordinator and value as your Coordinator class (#coordinator -> #MyMobileCoordinator)
Defining Callbacks
ToDo
Opening
Continuing with the example of #uiDefinition method, define an #open method in class side with the following template: