Mobile Development
What the Mobile Development domain tests
The Mobile domain tests mobile app packaging, the reactive mobile runtime, offline data synchronization, device capabilities, and performance choices on phones and tablets.
Core rules
- OutSystems mobile apps use Reactive Web technology and are packaged into a native shell by the Mobile Application Build Service (MABS). The app is distributed through the Apple App Store or Google Play, or internal distribution.
- Offline Data Sync lets selected entities be available offline. The platform stores a local copy, synchronizes on app start, and can be triggered manually. Reads and writes hit local data first, then sync when connectivity returns.
- Design for conflict: decide whether last-write-wins is acceptable or whether a version or timestamp attribute must be checked before applying an update.
- Device features come from plugins such as camera, geolocation, and push notifications. Add the plugin dependency, request permissions, and handle denial gracefully.
- Mobile screens follow the reactive lifecycle. The hardware back button, safe areas, and touch target sizes are part of the design.
Worked example
A field inspector must record inspections without signal. The Inspection entity is marked available offline. The screen's Data Action reads from the local entity, so it works with no network. The record is created locally and synchronized when the device reconnects. A Version attribute is compared during sync so a stale device does not overwrite a newer server record. Reasoning: online-only Data Actions would fail offline; the local entity plus sync policy is the supported mechanism. The version check moves conflict handling from guesswork to an explicit rule.
Traps
Assuming online Data Actions work offline, storing sensitive data in local storage without protection, ignoring sync conflicts, and adding a plugin without configuring permissions or platform build settings.