8grams8grams.
BlogCasesEbook
ENID
Start a Project
ENID
Start a Project
8grams8grams.

AI-powered software studio taking your web apps, mobile apps, and cloud infrastructure from idea to production.

Get in touch

  • [email protected]
  • WhatsAppWhatsApp: +62 811-3143-975
Read 8grams on MediumLike 8grams on FacebookFollow 8grams on InstagramFollow 8grams on LinkedInFollow 8grams on X

Pages

  • Cloud Migration
  • Cost Optimization
  • Cybersecurity
  • Kubernetes Migration
  • Cloud Cost
  • Kubernetes Ops
  • CI/CD Pipeline
  • Cases
  • Blog
  • Contact

Services

  • DevOps & Cloud Infrastructure

    Reliable, scalable infrastructure engineered for growth.

  • Web Application Development

    Custom web apps built for real business outcomes.

  • Mobile App Development

    iOS and Android apps users actually want to use.

  • Web Company Profile

    Fast, search-friendly company sites with measured SEO, GEO, and AEO.

  • Cybersecurity

    Find and fix security issues before they become incidents.

Start a Project

We reply within one business day.

© 2026 8grams Technology. Surabaya, Indonesia.

Built for teams with something to ship.

Chat with us
Mobile Development/Cross-Platform Engineering
Cross-Platform Engineering

One codebase, no shortcuts on either platform.

With React Native or Flutter you ship one codebase to two stores, and neither store has to settle for a second-rate version. The platform details that cross-platform builds usually fumble are handled for you: navigation patterns, native modules, push notifications, biometrics, and in-app purchases.

  • React Native or Flutter, chosen for your project rather than habit
  • Platform behaviours handled correctly on iOS and Android each
  • Native modules for camera, biometrics, payments, and on-device ML
  • On-device AI with Core ML, TensorFlow Lite, and MediaPipe for offline use
Get a quoteWhy this matters

The cross-platform tools we build with.

FlutterReact NativeTypeScriptExpoFirebaseAndroidApple
Why

Cross-platform shouldn't mean the lowest common denominator.

Cross-platform promises one codebase serving two stores. The danger is a product that feels native to neither. Your app avoids that through deliberate decisions about exactly where shared code stops and platform-specific code takes over.

An app that feels at home on neither platform

It runs on iOS and Android, but the navigation ignores iOS conventions and the back button is missing on Android. Users on both sides can tell something is off.

Performance that falls apart on mid-range Android

It runs well on the developer's flagship phone. Then frame rates drop and scrolling stutters on the mid-range Androids that most of the Indonesian market actually uses.

Native features that don't quite work

The camera runs into memory issues on some devices. Push notifications quietly fail on iOS 17. Background location behaves differently on Android 14. None of it surfaced until real users started reporting it.

A framework choice nobody can explain

The team picked React Native because someone already knew React. Three months in, they're fighting the framework on a use case it was never meant for.

The Process

How the work actually runs.

Each step has a clear deliverable and a written handoff, and we get your sign-off before moving to the next one.

01

Framework selection

We look at your team's skills, how complex the UI is, which integrations you need, and your performance budget. Then we recommend React Native or Flutter and put the reasoning in writing, rather than going on a hunch.

02

Architecture design

We work out the navigation structure, state management, module boundaries, and the platform abstraction layer before a single line of code gets written.

03

Core application build

Shared business logic and UI components are built against the design system, with automated tests on the shared layer from the first day.

04

Platform-specific integration

We build the native modules for camera, biometrics such as Face ID and fingerprint, push notifications, background processing, and in-app purchases, then test them on real iOS and Android devices.

05

Device testing and QA

We test on a matrix of real Android and iOS devices, not just simulators, spanning a range of OS versions, screen sizes, and performance tiers. The matrix is agreed at the start, and we report against it at the end.

The Result

What you walk away with.

Real deliverables you can point to and outcomes you can measure. Not a slide deck.

Onecodebase

Shared logic with platform-correct behaviour

Business logic and UI components are shared, while navigation, native integrations, and platform conventions are handled correctly on each OS.

Real-deviceperformance tested

Performance checked on the phones your users own

We test on mid-range Androids that reflect the Indonesian market, rather than the flagship phones sitting on the development team's desks.

Justifiedframework choice

The right framework for your project

We recommend React Native or Flutter based on your specific constraints, not on whichever one a developer happens to prefer this month.

Native integrations that hold up

Push notifications, biometrics, camera, and payments are all tested across OS versions and device models before the app goes to the stores.

FAQ

Common questions.

When do you choose React Native over Flutter?

React Native is a good fit when your team already knows JavaScript or TypeScript, you're sharing logic with a web app, or the UI is fairly standard. Flutter tends to win for custom UI, animation-heavy apps, and cases where startup speed on older Android matters. We'll tell you which one fits before you sign anything.

How do you handle the spread of Android OS versions?

We agree a minimum supported Android version at the start of the project, test against it throughout, and flag anything that would need a newer version. Our default target is Android 10 and up, which covers more than 95% of active Indonesian Android devices.

Do you also do native Kotlin or Swift development?

For most cross-platform work we use React Native or Flutter, because the cost difference is meaningful and the result is hard to tell apart from native. When a project genuinely needs native performance, for example real-time audio, complex AR, or heavy GPU work, we'll say so and scope the native parts properly.

When should we just go fully native instead of cross-platform?

Go native when the app is built around something the platform does uniquely well: heavy real-time audio or video processing, advanced AR with ARKit or ARCore, sustained GPU or game-engine work, or deep system integration like custom keyboards or widgets. For most business apps, content apps, and commerce apps, React Native or Flutter gives you the same feel at a lower cost.

How much code is actually shared between iOS and Android?

It depends on the app, but typically 85 to 95% of the code is shared: business logic, networking, state management, and most of the UI. The remaining slice is platform-specific work like native modules, store-specific behaviour, and the handful of places where iOS and Android conventions genuinely differ.

Is cross-platform performance good enough for our app?

For the vast majority of apps, yes. Both React Native (with the new architecture and Hermes) and Flutter render smoothly on mid-range hardware when built properly. We set a performance budget up front and test on real mid-range Android devices, so we catch any heavy screens early rather than after launch.

How do you handle platform-specific features like Face ID or in-app purchases?

We use well-maintained native modules where they exist and write custom native modules in Swift or Kotlin where they do not. Face ID and fingerprint, in-app purchases, camera, biometrics, and push are all wired to the real platform APIs and tested on physical iOS and Android devices, not just simulators.

Can we add native code later if we need to?

Yes. Both React Native and Flutter let you drop down to native Swift or Kotlin through native modules or platform channels. We design the architecture with a clear boundary for this, so adding a native feature later does not mean rewriting the app.

Will the app work with the latest iOS and Android features?

Yes. We keep the framework and native toolchains current and support new OS releases, including new APIs, permission models, and design changes. We agree a minimum supported OS version at the start and test against both the oldest supported and the newest releases.

Does Expo lock us in, and can we eject if needed?

Expo speeds up React Native development and we use it where it fits, but it does not trap you. You can use custom native code through development builds and config plugins, and you can move to a bare workflow if the project ever needs it. We choose the setup based on your feature list, not on convenience.

Contact Us

Have a project in mind? Let's build it.

Tell us where the project stands right now. Within one working day we'll come back with a straight read on scope, timeline, and cost. There's no commitment in asking.

Email

[email protected]

Office

Surabaya, Indonesia

Starting price

From USD 4,000

Typical projects: USD 4,000–25,000

Tell us about your project

We'll reply within one business day, and we won't put you through a sales pitch.

Prefer to chat? WhatsApp us