Alienstacks Co., Ltd. — Bangkok · Tokyo · Reg. No. 0395569000469 (DBD)
EN / 日本語Contact
All services
SERVICES · MOBILE · ONE CODEBASE

Cross-platform app development — one codebase, both app stores

For most business apps, writing the same product twice is a waste of your money. We build cross-platform apps in React Native and Flutter that ship to iPhone and Android from a single codebase, sharing logic with your web platform where that makes sense. We will also tell you plainly when your app should be native instead.

React NativeExpoFlutterTypeScriptDartShared API layerOffline syncBoth app stores
iOS + AndroidBoth stores from one codebase
200+Japanese firms running systems we built
6Countries — TH · JP · DE · CN · US · BD

What you actually get

Two published apps that behave like one product, the backend they share, the accounts in your own company name, and documentation another team could work from. Specifically:

·One codebase in React Native or Flutter, released to both the App Store and Google Play
·The backend behind it — API, database, admin screens — designed so a future web app or partner integration can reuse it
·Your own Apple Developer, Google Play Console, cloud, and repository accounts, with your company as owner and us as a removable collaborator
·Both store submissions handled: metadata, screenshots at every required size, privacy and data-safety declarations, review responses and resubmissions
·Platform-specific behaviour done properly where it matters — native navigation feel, permissions prompts, push notifications, biometric login
·Offline capability and conflict-safe sync when your users need it, deliberately left out when they do not
·An admin interface so your staff can change content, prices, and users without a developer
·A written architecture note in plain language, plus a handover pack

The point of cross-platform is not that it is trendy. It is that you maintain one product instead of two, hire from one talent pool instead of two, and ship a change to all your users in one release cycle. For a business with a small budget and no in-house engineering team, that compounding saving is usually worth more than the last few percent of native performance.

How we work: architecture before features

Cross-platform projects fail in a specific, predictable way. A shop picks the framework, wires screens directly to whatever service the feature needs, adds a native module every time something is awkward, and never upgrades the dependency tree. Eighteen months later the framework has moved three major versions, half the packages are abandoned, and the app cannot be built at all — let alone changed. At that point the honest estimate for a small feature is higher than the original project cost, and you are told you need "version 2".

None of that is inherent to React Native or Flutter. It is the result of nobody designing the system. We start by drawing the boundaries: a data and API layer that knows nothing about screens, business rules that are written once and testable without a device, and a deliberately short list of dependencies we are prepared to be responsible for. Native modules are allowed but isolated, so replacing one does not ripple through the app — the same abstraction discipline behind the payment-hardware layer in the POS platform we architected for 10,000+ stores.

We also decide up front what is shared with your web system and what is not. When we build the mobile app and a web platform together in TypeScript, the validation rules, pricing logic, and API types are genuinely written once. That is the largest real saving available in cross-platform work, and it only exists if someone plans for it before the first screen.

Then we build in one-to-two-week increments you can install on your own phone, so scope changes are visible while they are still cheap. And because we run our own products in production, the cost of an architectural shortcut lands on us as well as on you — a different incentive from a vendor whose involvement ends at handover.

What drives timeline and cost

We will not print a number, because your project is not the last one we quoted. These are the four things that actually move it.

Number of user roles

A customer app plus a driver app plus a back-office console is three products sharing a backend. Cross-platform saves you the second platform, not the second role. Cutting a role from version one is the fastest way to shorten a build.

How much native work is hiding

Bluetooth devices, background location, complex camera work, or a payment SDK that only ships native bindings all mean writing code twice inside a cross-platform app. One or two are fine; a list of six means you should be building native.

Offline and sync

Working without a connection and reconciling conflicting edits afterwards is genuine engineering on any platform. Necessary for field and retail staff; pure waste for an app used in an office with WiFi.

Payments and integrations

Money means audit trails and idempotent handling so a retry cannot double charge. Connecting to your existing accounting or ERP system adds approval cycles and undocumented behaviour that have nothing to do with the app.

Roughly: a focused single-role cross-platform app on both stores is typically an 8–12 week build — a little longer than one native app, considerably shorter than two. A customer app with accounts, payments, and an admin console runs longer. Multi-role platforms with offline sync and third-party integrations are multi-month engagements, and we phase them so you get something usable well before the end.

Where cross-platform fits

Customer-facing apps for SMEs

Loyalty and ordering apps for retail and food chains, booking apps for clinics and services, marketplaces. Your customers are split across iPhone and Android and you cannot afford to ignore either — exactly the situation our cross-border marketplace app was built for.

Staff apps across mixed devices

Approvals, timesheets, job sheets, stock lookups, and internal dashboards where staff bring their own phones. One release covers the whole company instead of two.

The mobile face of an existing platform

You already have a web system and need it in a pocket. Built in TypeScript alongside the web app, the rules and API types are shared rather than reimplemented — often paired with an AI layer that handles the document reading.

Proof, not adjectives

We have shipped React Native to both stores for a real cross-border business, and we have built the heavy native systems that tell us when cross-platform is the wrong answer — which is what makes the recommendation worth something. You can also open our own products without registering, including the Virtual Office 3D AI agent workspace. The two most relevant case studies:

What we don't do

Where we are the wrong choice, stated up front:

·We do not sell developer-hours or staff augmentation. We are accountable for a working product, not for a name on your standup.
·We do not build cross-platform apps that are bolted to payment terminals, industrial scanners, or kiosk hardware — those should be native, and we will say so and point you at our Android page.
·We do not wrap your website in a shell and call it an app. Stores reject those, and your customers uninstall them.
·We do not take projects with no single decision-maker on your side.
·We do not build consumer social apps or anything whose business case depends on going viral.
·We are not the cheapest bid, and if hourly rate is the deciding factor you should take the other quote.
·We do not do app store growth marketing, ASO, or paid user acquisition — different specialist, and we will tell you so.

Related services

Questions buyers actually ask

Is a cross-platform app really cheaper than building two native apps?

Cheaper than two, yes — but not half the price, and anyone promising that is selling. Expect to save a meaningful share of the build compared with two separate native apps, because the business logic, screens, and API layer are written once. What does not halve is the testing, the two store submissions, the platform-specific behaviour, and any native module you need. Budget for roughly one-and-a-bit apps, not one.

React Native or Flutter — which should we use?

Both are mature enough for production business apps, so the choice is mostly about your surroundings rather than benchmarks. React Native fits when you already have a web platform in React or Next.js, because types, validation, and business rules can genuinely be shared. Flutter fits when the app is highly visual, needs identical pixel-level design on both platforms, or when your team has Dart experience. We recommend one on the first call and explain why in your terms.

When should we NOT build cross-platform?

When the app is bolted to hardware — payment terminals, industrial scanners, RFID readers, kiosk-locked devices — go native, usually Android. Also go native when you need heavy background processing, deep OS integration, or maximum performance on cheap low-memory phones. We will tell you this rather than take the easier sale; roughly one in three enquiries that arrives asking for cross-platform leaves with a native recommendation.

Do we own the source code, and can another team maintain it?

Yes to both. The repository is created under your company from the first commit, and the App Store, Play Console, and cloud accounts are in your company name with you as owner. React Native and Flutter also widen your hiring pool later — you are not looking for two separate specialists — which is part of the commercial argument for them.

Can you take over an existing React Native or Flutter app?

Often, and this is a common request because cross-platform projects age badly when nobody upgrades them. We do a paid review of one to two weeks: build it, read it, and report honestly on what is salvageable. The usual finding is an outdated framework version and a pile of abandoned dependencies — a targeted rescue rather than a rewrite, which is cheaper for you and we would rather say so.

Do you handle both App Store and Play Store submission?

Yes, both, end to end — signing, metadata, screenshots for every required size, privacy and data-safety declarations, and the review correspondence including rejections. The two stores reject for different reasons and on different timescales, and Apple is the stricter of the two. We design for both sets of rules during the build rather than meeting them at submission.

What happens after launch?

Cross-platform apps need more disciplined maintenance than native ones, not less: iOS and Android both ship annual releases, and the framework plus its dependency tree moves underneath you. We offer an ongoing arrangement covering framework upgrades, OS compatibility, store policy changes, crash monitoring, and a defined response time on defects. Skipping it is how a two-year-old React Native app becomes one that will not build at all.

Not sure whether you need one app or two?

That is exactly the right question to bring to a 30-minute call. Tell us who uses the app and on what, and we will give you a straight recommendation — including when cross-platform is the wrong answer.

Request a consultation Open Virtual Office demo