Measure the moments your users wait for. From the first screen to a completed checkout, see how long real operations take and which paths need your attention.
iOS, tvOS & Android · PRO & ENTERPRISE · Hosted in Switzerland
Illustrative data · not an automatic alert
A healthy backend does not guarantee a responsive app. Time the work that matters, on the devices doing it.
Measure from process creation until the first screen is shown. Enable performance traces and launch timing is collected automatically, without adding your own stopwatch.
Follow duration percentiles, a histogram and trace counts. See whether a change affects the typical operation or the slow tail, with release markers for context.
A screen load and a video export should not share one budget. Set a target for each trace and track satisfying, tolerable and frustrating durations with Appdex.
For the request-level picture, explore network timing and error-rate alerts.
The operation name tells you what is slow. A little context helps you decide where to look next.
Compare performance across releases, then use rollout health for a separate, confidence-based view of crash stability.
paymentMethod| Attribute value | Appdex | Median |
|---|---|---|
card18.2k traces | 0.93 | 384 ms |
wallet4.6k traces | 0.97 | 296 ms |
bank_transfer2.0k traces | 0.58 | 1.28 s |
Bank transfers stand out in this example. Investigate that path instead of treating every checkout as equally slow.
Illustrative data · not a performance benchmark
Enable performance traces in the SDK configuration, then add a start and a stop around your operation. App Start comes with it.
let trace = AppeliumFeedback.startPerformanceTrace(
name: "checkout"
)
trace?.setValue("card", forAttribute: "paymentMethod")
// Perform the checkout operation
trace?.stop()val trace = AppeliumFeedback.startPerformanceTrace(
name = "checkout"
)
trace?.setValue(
value = "card",
attribute = "paymentMethod"
)
// Perform the checkout operation
trace?.stop()Performance traces are off by default. Choose non-sensitive attribute values, not names, emails or account identifiers. Data is hosted and processed in Zürich, Switzerland.
Time a named operation in your app, such as checkout, registration, image processing or loading a screen. Start a trace before the work and stop it when the operation completes. Traces measure elapsed duration; they are not a CPU profiler or a distributed tracing waterfall.
Once performance traces are enabled, App Start measures the time from process creation until the first screen is shown. iOS and tvOS skip background pre-warming; Android excludes excessively long startup measurements that can arise when a process was started earlier for background work. Custom operations need explicit instrumentation.
Set a target duration T for each named trace in the Dashboard. Durations up to T are satisfying, above T and up to 4T are tolerable, and above 4T are frustrating. Appdex gives full credit to satisfying traces and half credit to tolerable ones. Compare it with duration percentiles and trace counts; a target is not an automatic latency alert.
Performance traces are off by default and available on PRO and ENTERPRISE for iOS, tvOS and Android. Enable performanceTraces when starting AppeliumFeedback, then use startPerformanceTrace and stop for custom operations. Attach up to 5 custom attributes per trace, using non-sensitive categories rather than personal data. On iOS and tvOS, traces are disabled in the Simulator and while a debugger is attached to avoid unrepresentative timings.
Measure the operations that matter. Find the paths worth making faster.
Strongly typed bidirectional communication channel between UIApplication and XCUIApplication with powerful APIs and super fast performance.
Robust and scaleable pattern for structuring UI tests. Highly reusable screen verification code with human readable test case code. All flows and interactions statically typed 🙌.
Learn about SnapshotQuery - our latest addition to AppeliumTests which radically improves the performance of your XCUITests while making them more stable and reliable at the same time.
Be the fist one to know about all the exciting engineering posts and product announcements.