Using Ultra-Wideband (UWB) in Mobile Apps
Centimetre-precision ranging, secure car keys and AirTag-style item finders — what UWB can do, what it can't, and how to integrate it.
UWB is the newest radio in the smartphone — short-range, very high-bandwidth, and capable of measuring distance and direction down to centimetres. Apple shipped the U1 in 2019 (iPhone 11), Google followed with Android 12 UWB APIs, and the FiRa standard is gradually unifying the ecosystem. UWB powers Precision Finding, digital car keys, and a growing set of B2B trackers — but support is still uneven, and you should ship a fallback.
Key Takeaways
- UWB ranges accurately within ~30 cm and reports direction (Angle of Arrival) on supported hardware.
- iOS apps use the Nearby Interaction framework; Android apps use the UwbManager APIs (Android 12+).
- Both stacks require pairing over BLE first to exchange UWB session keys.
- Use UWB for proximity, indoor positioning and digital keys — fall back to BLE RSSI when not present.
UWB at a Glance
What It Is & How It Works
What it is. A pulse-based radio (3.1-10.6 GHz) that measures Time of Flight to ranging peers. Specialised hardware (U1/U2 on iPhone, Qorvo / NXP on Android) delivers cm-level distance and limited direction.
How it works. Devices discover each other over BLE, exchange UWB session parameters, then run a short ranging session. Each peer reports distance + AoA on a regular cadence.
Units & signal. Distance (m), azimuth (deg), elevation (deg), session ID, ranging interval (ms).
What You Can Build With It
Precision finding
Guide users to a tagged object within centimetres.
Example: A retail app helping users find a specific product on the shelf.
Digital car keys
Unlock vehicles only when the phone is at the door, not anywhere in the parking lot.
Example: BMW Digital Key Plus and similar implementations.
Indoor positioning
Track phones within a venue using fixed UWB anchors.
Example: A warehouse app routing pickers in real time.
Phone-to-phone interactions
Verified-distance file sharing and meeting check-ins.
Example: A conference app issuing badges to nearby attendees only.
Permissions & Setup
Both platforms now require an explicit runtime prompt before opening a ranging session. iOS shows a system-level Nearby Interaction permission card.
iOS · Info.plist
NSNearbyInteractionUsageDescription
Android · AndroidManifest.xml
android.permission.UWB_RANGING (Android 12+)
Code Examples
Setup
- iOS: import NearbyInteraction (iOS 14+); both peers need a U1/U2 chip
- Android: use androidx.core.uwb (Android 12+) and request UWB_RANGING
- Cross-platform: pair via BLE first to exchange session config
// Expo doesn't ship a UWB module by default; you wrap the
// native APIs in a config plugin or use a bare workflow.
// Below is a sketch using a hypothetical native module.
import { NativeModules } from 'react-native';
const { UWBRanging } = NativeModules as any;
export async function rangeTo(peer: { token: string; bleId: string }) {
await UWBRanging.requestPermission();
const sessionId = await UWBRanging.start(peer);
UWBRanging.addListener('range', ({ distance, azimuth }: any) => {
console.log(`distance=${distance.toFixed(2)} m, azimuth=${azimuth?.toFixed(0)}`);
});
return sessionId;
}Tip: With Newly, you describe the feature you want and the AI agent wires up the sensor, permissions, and UI for you. Try it free.
Best Practices
Bootstrap with BLE
UWB needs a session ID and key — exchange them over an authenticated BLE channel.
Throttle ranging cadence
Continuous ranging is power-hungry; 1-3 Hz is plenty for navigation UIs.
Always ship a BLE/RSSI fallback
Many devices still lack UWB; a graceful degradation keeps the feature usable.
Watch the FiRa profile
Cross-vendor interop hinges on FiRa profiles — pin them in your config.
Common Pitfalls
Assuming AoA on every device
Direction is only available with multiple antennas; many trackers report distance only.
Mitigation: Treat direction as optional; render distance UI when AoA is missing.
Skipping BLE bootstrapping
Without a shared session token the OS will reject ranging.
Mitigation: Pair over BLE first, exchange tokens, then start the UWB session.
Ignoring multipath in dense environments
Reflections from metal walls and shelves can spoof readings.
Mitigation: Smooth distances, drop outliers, and surface a confidence indicator.
When To Use It (And When Not To)
Good fit
- Precision finding for tags and accessories
- Phone-as-a-key for cars and offices
- Indoor positioning with fixed anchors
- Verified close-proximity interactions
Look elsewhere if…
- Long-range tracking (use BLE / Wi-Fi)
- Cross-platform without UWB hardware on both ends
- Anything requiring fast onboarding without BLE
- Outdoor large-area tracking (use GPS)
Frequently Asked Questions
Which iPhones have UWB?
iPhone 11 and later (U1 chip), with iPhone 15 Pro and later using the second-generation U2 chip.
Which Android phones have UWB?
A growing list including Pixel 6 Pro / 7 Pro / 8 Pro, Samsung Galaxy S21 Ultra+, Note20 Ultra and several flagship Xiaomi / OnePlus devices.
Is UWB safe?
Yes — transmit power is much lower than Wi-Fi or LTE, and it operates outside common consumer frequency bands.
Can iOS and Android UWB devices range against each other?
Yes, when both implement matching FiRa profiles. The CCC Digital Key Release 3 standard is the most production-ready cross-platform spec.
Build with the UWB on Newly
Ship a uwb-powered feature this week
Newly turns a description like “use the uwb to precision finding” into a real React Native app — permissions, native modules and UI included. Full source code is yours, and you can publish to the App Store and Google Play directly from the dashboard.
Want a deeper dive on the underlying APIs? See Expo Sensors, Apple Core Motion and Android sensor framework.
