Mobile VR app for 360-degree video viewing

NOVASOLUTIONS.TECHNOLOGY 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 1 servicesAll 1735 services
Mobile VR app for 360-degree video viewing
Complex
from 1 week to 3 months
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Mobile VR App for 360° Video Viewing

360° video isn't ordinary video in spherical wrapper. It's equirectangular projection that must unwrap onto sphere around user, synchronize with head movement, and avoid seam artifacts — all at framerate sufficient for comfortable VR.

Technical Side: Sphere Mapping

Equirectangular video (2:1 aspect ratio, YouTube and Facebook 360 standard) maps onto inverted sphere — user views from inside. Comfortable viewing resolution: minimum 4K (3840×2160), preferably 5.7K or 8K. At 4K ~30 pixels per degree reaches each eye — threshold below which "pixel grid" is visible.

In Unity create inverted sphere with normals facing inward:

// Standard Unity Sphere + special material
// Or via com.unity.xr.management package

// Shader for 360 video
// vert: pass UV as-is
// frag: sample _MainTex with UV, horizontal flip for correct orientation

On native Android via MediaPlayer + OpenGL ES:

// Create Surface for MediaPlayer, render as texture on sphere
SurfaceTexture surfaceTexture = new SurfaceTexture(textureId);
Surface surface = new Surface(surfaceTexture);
mediaPlayer.setSurface(surface);
mediaPlayer.prepareAsync();

On iOS — AVPlayer + SCNSphere in SceneKit or RealityKit:

let sphere = SCNSphere(radius: 10)
sphere.firstMaterial?.isDoubleSided = true // or inverted normals
sphere.firstMaterial?.diffuse.contents = avPlayer
let sphereNode = SCNNode(geometry: sphere)
sphereNode.scale = SCNVector3(-1, 1, 1) // flip X for correct direction
sceneView.scene.rootNode.addChildNode(sphereNode)

Stereoscopic 360: Top-Bottom and Side-by-Side Formats

Regular 360 video is monocular. Stereoscopic 360 (true VR depth effect) encodes two ways:

  • Top-Bottom (TB): upper half frame = left eye, lower = right. 1:1 aspect ratio instead of 2:1.
  • Side-by-Side (SBS): left eye — left half, right — right half. 4:1 aspect ratio.

When rendering on sphere pass format type to shader and correctly sample UV per eye.

Streaming: HLS/DASH for 360

360 video is 2–8 GB files for 10-minute content at 4K–8K. Full download before playback unacceptable. Solution — adaptive streaming.

For 360 HLS need special segment cutting accounting for spherical projection — ideally use Google's Spatial Media spec embedding projection metadata directly in file. ffmpeg with --spherical flag when creating manifest.

Adaptive bitrate switching critical: on head rotation entire sphere visible but main load on gaze direction area. Viewport-dependent streaming (or Tile-based streaming) delivers high resolution only for current gaze direction. Reduces traffic 3–5x. Implemented via MPEG-OMAF or custom DASH server with viewport info.

Spatial Audio

360 video without positional audio is half the experience. Ambisonics (B-format or AmbiX) — spatial format where sound automatically orients to gaze direction.

On Android — AndroidMediaPlayer + Google Resonance Audio SDK (built into Google Cardboard SDK). On iOS — AVAudioEngine with AVAudioEnvironmentNode for spatial source positioning.

Unity: com.google.resonance-audio package or built-in Unity Spatial Audio with Ambisonics support from Audio Settings.

Caching and Offline

User wants to watch 360 tours without internet. Preload: background DownloadManager (Android) / URLSessionDownloadTask (iOS), store HLS segments on device. For tour catalog — SQLite with metadata (preview frame, duration, description) and paths to local files.

Workflow

Define content strategy: 360 video sources, monocular or stereoscopic, formats.

Develop player: sphere rendering, UV-mapping for file formats, head tracking sync.

Streaming: HLS/DASH integration, adaptive quality, offline caching.

Spatial audio integration.

Test on target devices in Cardboard, assess latency and motion sickness.

Timeline Estimates

Basic monocular 360 video player with local playback — 1 week. Full-featured player with streaming, spatial audio, stereoscopic format, offline — 3–6 weeks.