⌘K
Native Android & iOS

Code Push for Android and iOS

Update screens on users' devices without a new build or App Store review. Change layout, logic, and behavior from the server. Nativeblocks works with Jetpack Compose and SwiftUI.


What is code push for mobile?

Code push is the ability to update your mobile app's UI or behavior on users' devices without shipping a new binary to the App Store or Google Play. Instead of waiting days for store review, you push the change from a server and users see it on their next app open.

Most code push tools (Expo EAS Update, Shorebird) work by pushing JavaScript or Dart bytecode, which means they only work with React Native or Flutter. Native teams using Kotlin and Swift have had no equivalent option.

Nativeblocks takes a different approach. Instead of pushing a language runtime bundle, it deploys frames: typed screen definitions that include layout, variables, and logic (button handlers, lifecycle events, navigation, state updates). The native SDK on the device interprets the frame using components already in your binary, with no external runtime required.


Why Nativeblocks is different from other code push tools

Other tools ship language runtime bundles. Nativeblocks deploys typed frames that your existing Kotlin and Swift components interpret natively.

Runs with your native stack

EAS Update and Shorebird ship JavaScript or Dart bytecode that runs inside a language runtime. Nativeblocks deploys typed frames that the native Kotlin or Swift SDK interprets directly, using your existing Compose and SwiftUI components.

Your design system, unchanged

React Native OTA updates swap out JS components you don't control. With Nativeblocks, the components in the frame are the same ones already in your app — same tokens, same animations, same accessibility behavior.

Within App Store guidelines

Nativeblocks does not download arbitrary executable code. Frames are interpreted by a controlled native SDK that only calls components already in your binary. Apple's guidelines (section 3.3.2) permit this approach.


Nativeblocks vs EAS Update vs Shorebird

The main OTA update tools available in 2025, compared by what they actually support.

FeatureNativeblocksEAS UpdateShorebird
Works with native Kotlin / Swift
Works with Jetpack Compose
Works with SwiftUI
Works without a JavaScript runtime
Push UI changes without a new build
Built-in A/B testing
Visual editor
Offline layout caching
Open-source SDK
Free tier available

Expo EAS Update targets React Native apps. Shorebird targets Flutter/Dart apps. Nativeblocks targets native Kotlin and Swift apps.


How to deploy code push with Nativeblocks

From your terminal to every user's phone, in three steps.

Annotate your components

Add @NativeBlock to any existing Compose or SwiftUI component. The compiler generates a typed DSL wrapper.

HeroBanner.kt

// Mark a component for SDUI

@NativeBlock(

name = "Hero Banner",

keyType = "HERO_BANNER"

)

@Composable

fun HeroBanner(

title: String,

ctaLabel: String

) { ... }

Generate the DSL

Run nativeblocks code-gen once. It reads your annotations and outputs the typed Kotlin or Swift DSL.

terminal

nativeblocks code-gen

Reading integrations...

✓ DSL generated for 12 components

✓ HeroBannerBlock.kt created

Deploy the frame

Push the frame with one command. Users pick it up on their next app open, without a new build.

terminal

nativeblocks frame deploy

--file home --tag v2.1

Bundling frame...

✓ Frame validated

✓ v2.1 live for 100% of users


Frequently asked questions

Is Nativeblocks a replacement for AppCenter code push?

For native Kotlin and Swift teams, yes. Microsoft AppCenter (which hosted CodePush) is deprecated. Nativeblocks works with Jetpack Compose and SwiftUI and deploys typed frames instead of JavaScript bundles. If you want OTA updates for native apps, Nativeblocks is built for that.

Does code push violate Apple App Store guidelines?

Nativeblocks does not push executable code. It pushes layout data. Your Kotlin or Swift components are already in the binary and passed App Store review. Nativeblocks changes which components appear on screen and what data they display — comparable to a content update from a backend API. Apple's guidelines (section 3.3.2) prohibit downloading new native code; they do not prohibit updating UI via server-controlled data.

What happens if a user is offline?

Nativeblocks caches the last-known-good layout on the device. If the app opens without network access, it renders the cached layout. When connectivity returns, it fetches any pending updates in the background.

Can I roll back a bad code push deployment?

Yes. Nativeblocks Studio shows all deployed frame versions. You can roll back to any previous version in one click. You can also set a rollout percentage: deploy to 1% of users first, watch metrics, then gradually ramp to 100%.

Code push built for native Android and iOS

Change layout, logic, and behavior from the server. Users pick it up on their next app open. Your Kotlin and Swift components do the rendering.

Open-source SDK · Free tier available · No credit card required