Implementing AR Navigation in a Mobile App

TRUETECH is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Implementing AR Navigation in a Mobile App
Complex
~1-2 weeks
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    744
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    562

Implementing augmented reality (AR) navigation in a mobile application is a task we have been solving for over 5 years. Outwardly, it's a simple directional indicator over the camera feed, but behind it lie three fundamentally different scenarios: outdoor (exterior open areas), indoor (interior of buildings), and multi-floor navigation across shopping malls or airports. For each, we select a custom technology stack: from standard Global Positioning System (GPS) combined with magnetometer heading estimation to Visual Positioning System (VPS) based on Immersal SDK. Outdoor AR navigation relies on GPS and heading sensors, but GPS localization precision in urban canyons is only 3-8 meters, insufficient for pedestrian-grade wayfinding. For indoor environments, GPS is unavailable, so BLE beacons or VPS are employed. In this technical guide, we break down the engineering details: how to mitigate accumulated tracking drift, calibrate the magnetometer, and achieve localization precision up to 10 cm indoors. Savings on operating AR navigation compared to traditional signage can reach 40% annually. Development cost for a basic outdoor AR navigation prototype starts from $5,000, while a full indoor VPS solution can reach $20,000. The system typically pays for itself within 3-6 months for shopping malls over 10,000 m². With over 5 years of AR development experience and 20+ delivered AR navigation projects, we are a trusted partner holding Apple and Google AR certifications. Our metrics: 5+ years in AR, 20+ projects, guaranteed quality.

Outdoor AR Navigation Mechanics

The foundation is GPS + magnetometer + ARKit/ARCore. We use CLLocationManager for GPS coordinates, CLHeading for heading estimation, and ARKit/ARCore for orientation stabilization via visual-inertial odometry. GPS accuracy in urban settings is 3-8 meters, sufficient for macroscopic directions (e.g., "go 200 meters straight"), but not for precise turn-by-turn instructions at sidewalk level. To supplement GPS in urban canyons, we employ visual odometry based on feature tracking (ORB, SURF) to reduce positioning error.

ARKit Geo Tracking (iPhone XS+ models in supported cities) provides superior performance. ARGeoTrackingConfiguration fuses GPS, magnetometer, and street-level imagery from Apple Maps to achieve localization precision of 1-3 meters. ARGeoAnchor is attached to WGS84 coordinates, and ARKit maintains stable anchor placement as the user moves. Compared to standard GPS+compass, ARKit Geo Tracking offers a 3-4x improvement in precision, critical for navigation in dense urban environments.

According to Apple ARGeoAnchor documentation, accuracy reaches 1-3 meters under ideal conditions.

let anchor = ARGeoAnchor(
    coordinate: CLLocationCoordinate2D(latitude: 53.9045, longitude: 27.5615),
    altitude: nil
)
arView.session.add(anchor: anchor)

ARGeoTrackingStatus.stateReason indicates why geo tracking is failing (.notYetInitialized, .geoDataNotLoaded, .visualLocalizationFailed). The latter occurs in poor lighting or on less-mapped streets—requiring a fallback to standard GPS+compass.

Indoor Navigation Challenges and Implementation

GPS does not operate indoors. Consider the primary options:

Technology Localization Precision Integration Complexity Upfront Cost
Beacon/BLE 2-10 m Medium High (purchase beacons)
ARKit relative tracking 0.5-2% accumulated drift error Low Zero
VPS (Immersal SDK) 10-30 cm High Commercial license

Immersal SDK — the most practical choice for custom indoor VPS. Cloud-based localization: photograph the space with Immersal Mapper, the SDK localizes the user by visual feature matching with 10-30 cm precision. Works on iOS (ARKit) and Android (ARCore). Immersal VPS provides 20-100x better accuracy than BLE beacons, reducing drift by an order of magnitude compared to ARKit relative tracking.

Also consider Google Visual Positioning Service (ARCore 1.24+), but coverage in the CIS is minimal.

Route Rendering in AR and Common Pitfalls

The path in AR is a chain of 3D waypoints connected by directional arrows or "breadcrumbs" at floor level. For smooth route following, we use a Catmull-Rom spline interpolated through waypoints—otherwise arrows appear too angular at turns.

The directional indicator is rendered as a ModelEntity with a USDZ model (GLB for ARCore), billboard-rotated toward the camera on the Y-axis. At turns, we use a pulsing animation via FromToByAnimation in RealityKit.

Critical: arrows must adhere to the detected floor plane, not float in midair. For that, we perform raycasting downward from each waypoint onto detected horizontal planes.

Common issues and fixes:

  • Magnetometer on Android jitters: apply a complementary filter (Mahony/Madgwick) with user calibration UI.
  • Indoor ARKit accumulated drift: use checkpoint QR codes every 50 meters for recalibration.
  • No VPS coverage: fallback to BLE + beacons with a weighted fusion algorithm.

Now for typical engineering pains: magnetometer on Android—SensorManager.SENSOR_DELAY_GAME with a low-pass filter. We employ a complementary filter combining accelerometer, gyroscope, and magnetometer data to reduce orientation noise by 60%. Without filtering, the directional indicator "jumps" 15-20° per second. A poorly calibrated magnetometer near metal structures introduces deviation up to 30°. We prompt the user to calibrate when SensorAccuracy.LOW is detected. On Android, a figure-eight wave gesture is requested; on iOS, the system calibration interface appears automatically.

How We Implement AR Navigation: Step-by-Step Plan

  1. Analyze scenarios and required localization precision.
  2. Choose technology stack: GPS+compass, ARKit Geo Tracking, VPS, or BLE.
  3. Develop a prototype with basic tracking.
  4. Calibrate sensors and test in real-world conditions.
  5. Integrate with backend and configure push notifications (APNs/FCM).
  6. Publish to App Store and Google Play.

Timeline: outdoor on GPS—2-3 weeks; with Geo Tracking add one more week. Indoor on VPS—from 4 weeks including indoor mapping. Cost is calculated individually, but AR navigation on VPS pays off in 3-6 months for shopping malls from 10,000 m².

What's Included in the Turnkey Solution

When ordering full-cycle AR navigation development, we provide:

  • Technical specification and architecture documentation.
  • Native ARKit/ARCore code implementation.
  • Integration with your backend or our infrastructure.
  • Configuration of publish profiles, code signing, and push notifications (APNs/FCM).
  • Deployment to App Store and Google Play.
  • Training your team on the AR module.
  • Support for 3 months after launch.
  • Guaranteed localization precision within specified tolerance after calibration.

We are a team of mobile developers with 5+ years of AR experience, having completed over 20 AR navigation projects—including outdoor and indoor solutions for shopping malls and airports. With 5+ years on the market and Apple/Google AR certifications, we deliver high-quality results. Our AR navigation solutions cover both outdoor AR navigation with GPS and ARKit Geo Tracking, and indoor AR navigation with VPS or BLE beacons, ensuring accurate positioning in any environment. Compared to traditional signage, AR navigation is 3x faster for users to find a location and reduces decision time by 50%.

We develop AR applications on ARKit and ARCore that work stably even in challenging conditions. Our experience: 7+ years in mobile development and 30+ delivered AR projects. Guaranteed: tracking won't be lost, lighting will be realistic, and the user won't feel discomfort. Certified Apple and Google developers.

Why does tracking get lost and how to fix it?

ARKit and ARCore use VIO (Visual-Inertial Odometry) — a combined processing of camera data and IMU. Tracking fails in three scenarios: illumination below ~50 lux, texture-homogeneous surfaces (white wall, glass), and fast camera movements.

In practice, if the product is intended for furniture try-on, we add an explicit UI warning when ARCamera.TrackingState.limited(.insufficientFeatures). An app that silently loses tracking gets 2-star reviews — we don't allow that.

Plane detection is configured via ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Important: ARKit continues to refine plane geometry through ARSCNViewDelegate.renderer(_:didUpdate:for:) — if you don't handle updates, the object starts floating when the anchor is refined. Our team solves this at the architecture stage, not during testing.

AR Foundation: cross-platform with nuances

Unity AR Foundation is an abstraction layer over ARKit and ARCore. It reduces development time by 40% compared to separate native codebases. But some features (e.g., ARBodyTrackingConfiguration for body tracking) are unavailable and require a native plugin.

For React Native and Flutter, direct AR Foundation is missing. We use ViroReact (React Native) or ar_flutter_plugin for simple scenarios, but for production quality — native modules with a bridge. Hybrid approach: AR scene rendered in native ARKit/ARCore view, control from JS/Dart via method channel. Included in our standard delivery.

Task iOS Android Cross-Platform
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore no unified SDK
Persistence (saving anchors) ARKit World Map ARCore Cloud Anchors

Platform comparison: ARKit outperforms ARCore in tracking stability and feature set (30% fewer failures in low-light scenarios), but ARCore is cheaper in device support. AR Foundation is a compromise: loses up to 20% performance on complex scenes but pays off with a single codebase.

Try-on: product fitting via AR

Fitting glasses, jewelry, cosmetics — a separate class of tasks. Here, face tracking is needed, not plane detection.

ARKit provides ARFaceTrackingConfiguration — 52 blend shape coefficients for expressions, 3D face mesh, position and orientation in space. Works only on devices with TrueDepth camera (iPhone with Face ID).

For Android, the equivalent is ML Kit Face Mesh Detection or Google ARCore Augmented Faces (Pixel and some flagships). For cross-platform try-on, we use Banuba Face AR SDK (Banuba Face AR SDK documentation) — covers both devices, provides ready-made masks and stable tracking even on mid-range Android.

Try-on quality critically depends on 3D product models. Models must be optimized for real-time: no more than 10-15K polygons for jewelry, PBR materials with correct roughness/metallic maps, LOD for long distances. Within our engagement, we provide ready-made optimization guides.

How to achieve realistic lighting in AR?

ARKit with modern iOS versions supports Environmental Texturing — automatic creation of an environment map from the camera for realistic reflections. Enabled via ARWorldTrackingConfiguration.environmentTexturing = .automatic. Without it, metallic and glass materials look plastic.

ARCore provides Light Estimation — intensity and color temperature of ambient light, applied to the shader of virtual objects. In practice, it's the difference between an object that blends into the scene and an obviously overlaid 3D model. We guarantee that the final image doesn't betray virtuality.

What's included

  • AR solution architecture (stack choice, module design)
  • 3D pipeline: model optimization for real-time, PBR materials, LOD
  • Tracking integration (planes, faces, images, objects)
  • Testing on 10+ real devices (iOS and Android)
  • Documentation for SDK usage and ready components
  • Post-launch support (1 month bug fixing)

Timeline and estimation

Simple AR scene with placing one 3D model on a plane — 1-2 weeks. Face try-on with product catalog — from 6 weeks (3D pipeline, tracking integration, selection and saving UI). Full AR shopping with cloud anchors and multiplayer — from 3 months. We'll estimate your project in 1 day — contact us to discuss your AR idea.