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.
| Feature | Nativeblocks | EAS Update | Shorebird |
|---|---|---|---|
| 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.
// 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.
❯ 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.
❯ 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