[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

[Mobile] MobileApplication

Implements the Application pattern conforming to [UI8] UI8Application.

Uploaded Image: idea.gifNote that MobileApplication implements UI8Application semantics, but it do NOT inherit from UI8Application.
Mobile framework do NOT require UI8/WI8 nor DOM framework to run e.g. it can run native.

A mobile application is instantiated in a concrete device.
Most operations at system model and UI level are mediated/customized by the device.

Most times the concrete device instance is detected when the application is instantiated or before (see Device class>>#default).

It is also frequent for mobile devices today, that all/most UI operations occurs in a screen (and that there is only one screen available, with reduced dimension).
For this reason (reduced screen size), mobile applications provides a switchable views UI, to let the user access the system from different point of views, concurrently.

Mobile applications today are designed as modal applications and using all the resources&screen of the device when "active". Actually, mobile providers do not promote the use of multiple applications at same time; they force applications to work isolated and in discrete time lapses. The user must perform UI operations to switch application focus, enabling a frozen application to activate, capturing screen/ui resources.

Implements

UI8Application semanticsSee [UI8] UI8Application
embedded/fullscreen supportThe UI can be opened embedded(w/TopPane) or fullScreen.
The embedded mode is actually used while debugging in desktop (or large screens) if implemented w/DOM.
The fullScreen mode is used in most mobile implementations, where there is no visible container; the application's UI fill all the screen and it run consuming all resources available in device.
device(private) The device where the application is running.
The device instance is detected from executing platform (See Device class>>#current)
screen(private) The screen where the application is actually open/shown.
titleused during development, as title of the container (top) window.
views(private) Support for multiple views.

Composition of an open application

The screen(s) available for application to open is provided by current device.
The mobile application can instantiate cero/one/more "top" views (for each screen) to contain a set of widgets to the user.
The first topview is considered the main view.

In case of tab-based UI each topview implement a tab container. Selecting a tab will render&activate the contained UI elements, hiding contents of other topviews.
Uploaded Image: idea.gifThe tab-based UI is used for iOS and the device send #openTabs message to open the application. In other cases it is sent the #basicOpen message-
See the MobileDevice>>#selectorToOpen: implementation.

In case of floating windows selecting inside the topview bring the window to top, activating contents.

Triggered events

#aboutToOpen, #opened, #initialized,
#aboutToClose, #closed, #needsMainView
See [UI8] UI8Application
#needsViewsTriggered when the receiver needs views. The handler must return a collection of views.