iOS and Android app development · Oxarus Studio We build your iOS and Android apps end to end: apps that work offline, send notifications, use the device's camera and location, and stay solid in the stores. Breadcrumbs: Oxarus home › Oxarus Studio › Mobile NOTICES - Interface data marked as representative is illustrative; it is not a real client, result or measurement. SECTIONS - in pockets, every day. - everything the phone can do. - launch is part of the job. - keeping it running is on us. - one codebase or two apps? - let's put your app in their pockets. IN POCKETS, EVERY DAY. STUDIO · MOBILE End-to-end app development for iPhone and Android. They keep working when the connection drops and send notifications at the right moment, and we run the whole process from store review to launch. https://oxarus.com/en/studio/mobile - Tell us about your app → open_page(path="/studio/mobile", anchor="cta-heading") - What it can do → open_page(path="/studio/mobile", anchor="native") - iOS and Android at the same time - Works offline - App Store and Google Play submissions included 1. Two devices 2. Offline 3. Notification Representative interface data · Illustrative app screens. - brand: Brewline - hello: Good morning, Sophia - points: 340 points - reward: 2 more for a free coffee - menuTitle: What are we drinking today? - Filter coffee - price: ₺85 Ethiopia, V60 - Oat latte - price: ₺120 Double shot - Cold brew - price: ₺110 16 hours - order: Place order - offline: Offline - queued: Order queued - queuedBody: It'll send automatically once you're back online. - lockTime: 08:42 - lockDate: Tuesday, September 15 Your oat latte is ready - app: BREWLINE - body: Moda branch · Pick it up at the counter - ago: now Your order - eta: 2 min 1. Received 2. Preparing 3. Ready - store: Moda branch · Order A-214 - store: Moda branch · 350 m Hot · Iced · Sweets - light: Cream theme - dark: Dark theme - queueMeta: 1 order · ₺120 - retry: Waiting for connection Your points were updated - body: +12 points · Total 352 - ago: 08:15 EVERYTHING THE PHONE CAN DO. DEVICE Apps do what websites can't. Pick one and see how it works on a phone. https://oxarus.com/en/studio/mobile#native - Camera scanning Scans an invoice, ID or barcode and fills in the form for you. - Representative interface data · Illustrative screen - screen: Place the barcode inside the frame - Representative interface data · Illustrative screen - Barcode scanned - Product · Oat milk 1 L - Barcode · 8690000123457 - Stock · 24 units - Location Shows the nearest branch, the field team or a delivery on the map. - Representative interface data · Illustrative screen - screen: Nearest to you: Moda branch · 350 m - Representative interface data · Illustrative screen - Open · until 22:00 - 4 min · walk - 3 · in line - ₺120 · last order - Get directions - Face ID and fingerprint Secure sign-in and payment approval without typing a password. - Representative interface data · Illustrative screen - screen: Confirming with Face ID - Representative interface data · Illustrative screen - No password needed - Payee · Brewline Moda - Amount · ₺240 - Approved · 0.4 s - Representative interface data · Illustrative screen - screenAndroid: Confirming with fingerprint - Smart notifications To the right person, at the right time, without needless repeats. - Representative interface data · Illustrative screen - screen: Your package arrives today between 14:00–16:00 - Representative interface data · Illustrative screen - label: Delivery - Representative interface data · Illustrative screen - now - Order - Your order has shipped · 2 items - 12 min - Invoice - Your September invoice is ready - 1 h - Tuesday, September 15 - Offline mode Keeps recording in elevators, warehouses and construction sites, then syncs once the connection is back. - Representative interface data · Illustrative screen - screen: 3 records waiting to sync - Representative interface data · Illustrative screen - label: Offline - Representative interface data · Illustrative screen - Field records - Stock count · Block B · 09:12 - Delivery photo · Kadıköy · 09:20 - Fault note · Elevator 2 · 09:31 - Morning check · Synced · 08:40 - Apple Pay and Google Pay One-tap payment without entering card details. - Representative interface data · Illustrative screen - screen: ₺240 · Double-click to confirm - Representative interface data · Illustrative screen - label: Brewline - Representative interface data · Illustrative screen - Item · 2 × Oat latte - Pickup · Moda branch - Representative interface data · Illustrative screen - screenAndroid: ₺240 · Tap to confirm Interface labels: Platform LAUNCH IS PART OF THE JOB. STORES Test builds, store reviews, rejected submissions. We track all of it; you just see that the new version is live. https://oxarus.com/en/studio/mobile#release-heading Representative interface data · Representative - version: 2.4.0 - iPhone and iPad - store: App Store 1. Build 2. TestFlight 3. Apple review 4. Live - Representative interface data · Representative - 14 min - 35 min - ~24 h - next day - Phone and tablet - store: Google Play 1. Build 2. Closed testing 3. Google review 4. Live - Representative interface data · Representative - 12 min - 1 h - ~6 h - same day Small fixes reach users the same day through in-app updates, without waiting on the stores. Representative interface data · Representative - waiting: Waiting - running: In progress Live Representative interface data · Representative - rollout: Staged rollout Representative interface data · Representative release.log - 09:02 - tick: 0 - text: Building 2.4.0 (318) · iOS and Android - 09:11 - tick: 0 - text: Automated tests passed, builds signed - 09:16 - tick: 1 - text: Uploaded to the Play closed testing track - 09:18 - tick: 1 - text: Release notes added · Turkish and English - 09:51 - tick: 2 - text: TestFlight · opened to 42 testers - 10:05 - tick: 2 - text: Submitted for review on both stores - 15:20 - tick: 3 - text: Google review approved - 15:24 - tick: 4 - text: Rolled out to 10% of Play users - +1d - tick: 5 - text: Apple review approved, live on the App Store - +1d - tick: 5 - text: Crash rate normal, Play rollout raised to 100% - ota tag: 2.4.1 · same day Interface labels: Publish new version · Replay KEEPING IT RUNNING IS ON US. AFTER LAUNCH After every release we check the same dashboard: is the app crashing, are users updating, what are the ratings saying? https://oxarus.com/en/studio/mobile#health-heading Representative interface data · Illustrative values; the real dashboard is set up per project. - crash: Crash-free sessions Representative interface data · Illustrative values; the real dashboard is set up per project. - rating: Store rating Representative interface data · Illustrative values; the real dashboard is set up per project. - ratingCount: 2,184 ratings Representative interface data · Illustrative values; the real dashboard is set up per project. - adoption: Version adoption Representative interface data · Illustrative values; the real dashboard is set up per project. - 0 - v: 2.4 - p: 78 - 1 - v: 2.3 - p: 18 - 2 - v: Other - p: 4 Representative interface data · Illustrative values; the real dashboard is set up per project. - startup: Startup time Representative interface data · Illustrative values; the real dashboard is set up per project. - startupValue: 0.9 s Representative interface data · Illustrative values; the real dashboard is set up per project. - board: Brewline · live · v2.4.0 Representative interface data · Illustrative values; the real dashboard is set up per project. 7 days · 30 days Representative interface data · Illustrative values; the real dashboard is set up per project. 86 · 8 · 3 · 1 · 2 Representative interface data · Illustrative values; the real dashboard is set up per project. First 14 days after release Representative interface data · Illustrative values; the real dashboard is set up per project. - 0 - platform: iOS - p50: 0.8 - p90: 1.3 - 1 - platform: Android - p50: 1 - p90: 1.7 Representative interface data · Illustrative values; the real dashboard is set up per project. - Daily sessions: 18.4K - ANR rate: 0.21% - API errors: 0.08% Representative interface data · Illustrative values; the real dashboard is set up per project. Recent events - 09:40 - text: 2.4.0 live on the App Store - 08:12 - text: Android rollout reached 100% - yesterday - text: Slow startup on older devices, fixed in 2.4.1 - yesterday - text: Crash rate stayed below threshold Representative interface data · Illustrative values; the real dashboard is set up per project. - secondsUnit: s ONE CODEBASE OR TWO APPS? TECHNOLOGY There's no single right answer. We choose per project and tell you why up front. https://oxarus.com/en/studio/mobile#stack-heading - Single codebase - tech: React Native · Expo - source: Two apps from one source When it fits - When the app and web will evolve together - When the first release needs to ship fast - When most screens are lists, forms and content The right starting point for most business apps. - Scanner.tsx - app.json - Shared code 85–95% - First release 8–12 weeks - Device access Via modules - Workflow One workflow - Separate native apps - tech: Swift · Kotlin - source: Each platform from its own source When it fits - When camera, audio or sensors are used heavily - When widgets and watch apps matter - When interaction is graphics-heavy or game-like For projects that need the deepest device access. - ScanView.swift - ScanActivity.kt - Shared code 0–20% - First release 14–20 weeks - Device access Full - Workflow iOS and Android apart Build outputs LET'S PUT YOUR APP IN THEIR POCKETS. MOBILE Tell us what you want your users to do on their phones. Together we'll pin down which approach fits and what the first release covers. https://oxarus.com/en/studio/mobile#cta - Tell us about your app → start_project_brief(topic="studio") - info@oxarus.com → contact(subject="Mobile app") ACTIONS - Tell us about your app → open_page(path="/studio/mobile", anchor="cta-heading") - What it can do → open_page(path="/studio/mobile", anchor="native") - Tell us about your app → start_project_brief(topic="studio") - info@oxarus.com → contact(subject="Mobile app") - Türkçe → switch_locale(locale="tr", path="/studio/mobile") RELATED PAGES - Oxarus Studio