1. Dyvertex
  2. Services
  3. Mobile development
  4. Native modules

Native modules

Native modules, for when there is no library for it.

A Swift or Kotlin SDK on one side, your JavaScript on the other, and nothing in between. We write the part in the middle: Turbo Modules, Fabric components, and Expo modules.

  1. commit
  2. native build
  3. test build
  4. store review
  5. staged rollout
  6. someone's phone

A missing native module is a build problem long before it is a product problem.

You are probably here because

If none of these sound like your app, the free call is still the fastest way to find out what does.

both

The hardware vendor ships an iOS SDK and an Android SDK and no React Native wrapper.

both

The community package you depend on has not been touched since the New Architecture landed.

ios

You need a real native view inside the React tree, not a WebView pretending to be one.

android

A bridged call sits on the hot path and the list drops frames because of it.

What we write

Fixed scope, fixed price, agreed before anyone writes code. If something outside this turns out to matter more, we re-scope in the open instead of quietly billing for it.

Turbo Modules
Codegen-backed modules with a typed spec, so the JavaScript side fails at build time instead of at runtime on a device you do not own.
Fabric components
Native views rendered inside the React tree with real props and events. Maps, players, scanners, and camera surfaces that behave like the platform, because they are the platform.
Expo modules
Expo Modules API when the app is managed, packaged so npx expo prebuild stays clean and CI does not need a manual step.
Vendor SDK integration
Payments, BLE, MDM, document scanning, telematics, and media SDKs wrapped behind an API the rest of your team can read without opening Xcode.
Performance
JSI where the bridge is genuinely the bottleneck, measured with a trace before and after. If the trace says the bottleneck is elsewhere, we fix that instead.
Tests and handoff
The module lives in your repo or a private package, with a test app, build instructions, and notes on what to do when the vendor ships a breaking SDK update.
Turbo ModulesFabricJSICodegenSwiftKotlinObjective-CExpo Modules API

Price

One number, agreed before we start.

One module against a documented SDK usually fits here. A module set, or an SDK with no documentation, is scoped on the call.

We have shipped our own products to real users: Mira on the iOS App Store and ariex.fit in public beta. There are no rescue case studies in the portfolio yet, and we are not going to claim there are some under NDA.

Questions we get asked first.

Anything not answered here is worth twenty minutes on a call.

What is a Turbo Module?

The New Architecture replacement for the old bridge module. The native interface is declared once in TypeScript, code is generated for both platforms from that spec, and calls happen through JSI instead of an asynchronous JSON bridge. In practice: type errors surface at build time, and synchronous native calls become possible.

Do we need the New Architecture?

For new work, yes. It is the default in current React Native and the ecosystem has moved. For an existing app on the old architecture, the migration is worth planning but not worth panicking about, and we will tell you which of your dependencies are the actual blockers.

Can you wrap an SDK we cannot share publicly?

Yes. We sign an NDA before you send anything, and the module ships into your repo or your private registry, not ours.

Will you maintain the module after handoff?

Optionally, on a monthly retainer. Without one, you get the source, the build instructions, and notes on the parts of the vendor SDK most likely to change. It is written to be maintainable by someone who is not us.

How long does one module take?

A well-documented SDK with a small surface usually fits the five-day window. An undocumented SDK, or one that needs a Fabric view with gesture handling, takes longer and we scope it before starting rather than after.

Book the audit

Want a straight answer on this one?

Send the repo, the rejection notice, or just the idea. Twenty minutes is enough to tell you whether a rescue, a rebuild, or a clean no is the right next step.

Prefer email? [email protected]

We read every message and reply within one business day.