iOS vs. Android

Practical differences between iOS and Android for QA: environments, navigation, lifecycle, permissions, browsers, and comparing defects.

Updated:

Contents

iOS and Android may deliver the same business feature through different system mechanisms. Product consistency means an equally correct user outcome, without necessarily matching every dialog and gesture. QA needs to distinguish intended platform differences from requirement violations.

Building a strategy around stereotypes is risky: "iOS is all the same," "Android is always unstable," or "shared code guarantees identical behavior." Actual results depend on the device, OS version, client build, and integrations in use.

Compare environments precisely

For each platform, record supported versions and models, installation methods, and settings. On Android, account for the manufacturer, system variant, and, where relevant, WebView version. On iOS and iPadOS, check supported device families, dimensions, system versions, and features used by the product.

The matrix should reflect the audience and risks. Android's diversity usually calls for several representative combinations; a smaller iOS device range does not eliminate differences in memory, screens, or OS versions. User share matters, but a customer's contractually supported device may remain mandatory regardless of popularity.

On Android, users may invoke system Back through a gesture or button. On iOS, navigation buttons and back gestures are common in appropriate interfaces. Specific behavior depends on the app architecture and current screen.

Check action priority: whether the keyboard, dialog, or nested screen should close first according to the requirements and platform context. Going back must not silently confirm deletion or discard unsaved data. Following the same scenario through both system navigation and app controls is useful.

Lifecycle and configuration changes

On both platforms, an app can become inactive and later return. Preserving user context, session validity, and consistency of unfinished operations matters. An app must not assume its process will live indefinitely.

On Android, a configuration change can recreate an Activity, the component hosting a screen. This makes rotation, resizing, and system setting changes important recovery checks. However, rotation does not necessarily recreate every screen; behavior depends on app configuration. Verify the user-visible outcome rather than deriving it from a single technical assumption.

Permissions and privacy

Permission prompts and available choices differ by OS, version, and resource. A single "location enabled" permission does not describe accuracy, background access, or time restrictions. Similarly, access to selected photos differs from full library access.

Check the initial request, denial, limited access, and changes through settings where supported. On return, the app must reassess actual permissions. Avoid copying expected system dialog text between platforms: the available choices and feature outcome matter more.

Background behavior, notifications, and power saving

Operating systems control background execution and event delivery. Manufacturer settings may have an additional effect on Android; user restrictions and device state matter on either platform. A test passing on a charging phone does not justify promising unconditional background operation.

For products with important notifications, test the active app, background state, notification-driven opening, and restrictive settings. Distinguish server receipt of an event, device delivery, and user-visible display: these are separate stages. Test force-closed conditions separately using the documentation for the mechanism in use.

Installation, versions, and data

The same release number can have different internal build numbers. Record them precisely along with the distribution channel. A debug build with network protection bypasses may behave differently from a store build.

Check updates from an older version, session and local data preservation, account switching, and backend compatibility. Reinstallation is not equivalent to a user's first encounter with the product: data restoration and system-retained information depend on platform and settings. Define the initial state explicitly for each scenario.

Browsers and embedded web content

The same browser brand on desktop and mobile does not guarantee the same engine. It is not universally correct to say every iOS browser always uses WebKit: Apple permits alternative engines under certain regional conditions, including in the EU. Establish the actual build, OS, and region.

An embedded WebView is also different from an ordinary browser tab: cookie settings, navigation, and app integration may differ. If sign-in or payment opens in an external browser, test the return through that exact route on each platform.

Practical example: changing a profile photo

The business rule is shared: select an allowed image, save it, and see the new avatar after retrieving the profile again. Platform-specific steps may differ.

  1. 1.Start the change on iOS and Android with access initially ungranted. Expect the correct system selection flow and a clear explanation of its purpose.
  2. 2.If the mechanism requests permission, deny it or select limited access; in a system photo picker, cancel selection. Expect the specified behavior without crashing or blocking other profile features.
  3. 3.Select a photo, background the app before completion, and return. Expect a consistent upload or recovery state.
  4. 4.Complete the operation and reopen the profile. Expect the new avatar to be saved on the server, beyond a temporary local image.
  5. 5.Cancel selection through system controls. The previous avatar should remain, with no false success message.

Comparing defects across platforms

First describe the violated rule, then compare equivalent conditions: account, data, permission state, and backend version. If the server returns the same response but one client shows an error, that identifies a useful investigation boundary.

Avoid closing a defect with "that's Android behavior" without verifying the requirement. Equally, avoid demanding complete visual identity between system components. A useful platform comparison establishes the shared business outcome, correct system controls, and precisely documented differences.

Further reading