Performance Factors
Uncover the key factors that influence the overall app performance
Overview
Applications that support offline functionality such as Yonder must synchronize data between a remote server and the local device, while also maintaining responsive, stable, and efficient performance on the device itself.
Performance in this context refers not only to sync speed but also to how the app behaves when interacting with large datasets, managing storage, and executing tasks locally on the iPad.
Key Factors
Below listed are key factors that influence the overall app performance as well as the sync performance.
Hardware State (Generation) and iOS Version
Device-specific characteristics such as CPU, memory, and OS version influence not just sync speed but also the responsiveness of the app during offline usage.
Key Influences
- CPU and RAM capacity: Older devices may experience slow screen rendering, app freezes, or sync delays with larger datasets.
- Free disk space: Local caching and database operations can fail or slow down when storage is low.
- iOS version: Newer versions may offer better APIs for background tasks, file handling, or system resource management.
Available System Resources
If the device is running multiple apps or has background processes consuming CPU and memory, available resources for your app may be constrained.
Key Influences
- Running multiple heavy apps in parallel: Can reduce memory available to your app.
- Background downloads or media playback: Increase CPU and network load.
- Low available storage: Impacts database writes and caching efficiency.
App Update Status and Background Priority
iOS dynamically manages background execution privileges. If an app has not been used recently, is pending an update, or has incomplete resources, its sync and background activity may be deprioritized or delayed.
Key Influences
- App not recently launched: iOS may pause or prevent background execution.
- Pending or partial app updates: May limit system resources or background refresh.
- OS memory pressure: May cause the system to suspend or kill background sync tasks.
iOS Multitasking
iOS uses an aggressive app lifecycle management system to preserve battery life and optimize performance. When multiple apps are running or when the app is sent to the background, iOS may pause, suspend, or terminate background tasks like sync or data processing. This affects both real-time responsiveness and sync reliability during multitasking.
Key Influences
- Split View or Slide Over usage: Sharing screen space and memory can reduce available resources for your app.
- App suspension: When in the background, the app may lose access to network or storage unless background modes are correctly implemented.
- App termination: iOS may kill background apps under memory pressure, stopping sync or interrupting large operations.
- Frequent context switching: Can interrupt tasks in progress, especially if the app doesn’t save state efficiently.
Library Volume and Structure
The amount, size, and structure of the data your app handles have a direct impact on both sync performance and how quickly the app responds to user actions like filtering, searching, or navigating lists.
Key Influences
- Total data size: Larger datasets consume more memory and disk space, affecting load times and rendering.
- Record count: Many individual records increase CPU and memory use, especially if all are loaded into memory.
Device Temperature and Thermal Throttling
iOS devices will automatically reduce CPU and GPU performance when the device gets too hot to prevent overheating (thermal throttling). This affects overall app speed and responsiveness.
Key Influences
- Direct sunlight or outdoor heat: Increases internal temperature rapidly.
- Prolonged processing or sync tasks: Especially when combined with poor ventilation.
- Brightness near maximum: Contributes to overheating in long sessions.
- Auto-brightness disabled: May lead to sustained high brightness in bright environments.
- Prolonged screen-on time: Especially with active visuals (e.g. maps, live updates) accelerates thermal stress.
Battery Health, Level and Power Mode
When battery drops to a low level or Low Power Mode is enabled, iOS conserves energy by limiting background activity and reducing system performance.
Key Influences
- General battery health: A degraded battery may cause the device to throttle performance even at higher charge levels, especially under load or during multitasking.
- Low battery state: May delay or prevent background sync and reduce performance.
- Low Power Mode: Background fetch, sync intervals, and animations may be throttled or disabled.
- Charger connection status: Behavior may change depending on whether the device is plugged in.
Device Configuration Profiles & Mobile Device Management (MDM)
In enterprise environments, devices may be managed via MDM solutions that impose policies on app behavior, networking, or resource usage.
Key Influences
- Background execution restrictions: MDM profiles may limit background sync or restrict APIs.
- Network filtering or VPN routing: May delay or block sync endpoints.
- Battery usage policies: Can limit CPU usage or background task duration.
Sync Strategy and Frequency
To reduce the amount of accumulated data and keep updates lightweight, Yonder performs frequent synchronization checks. This can introduce a performance impact during online use, as the app processes sync operations in the background. Users may also notice a brief screen flicker when content is refreshed as part of this process.
For more details, refer to the dedicated chapter on Synchronization.