Common challenge
XML string resources remain the safe baseline, but they cannot address every approved copy change or new language after an app ships.
Platform localization
ReRune Android SDK 1.0.1 provides Compose and Views integrations for approved OTA text while native string resources remain the fallback.





XML string resources remain the safe baseline, but they cannot address every approved copy change or new language after an app ships.
Native Android teams using Compose or Views that need the public 1.0.1 modules, OTA-backed strings, dashboard review, and developer-controlled sync.
ReRune keeps Android runtime updates connected to the same workspace that manages keys, language coverage, dictionaries, and platform sync.
Workflow
ReRune connects translation management to the delivery path developers already use: dashboard work, AI assistance, CLI/API sync, and OTA updates where a supported SDK is installed.
Connect the supported app runtime to a ReRune publish ID while keeping native or framework localization behavior in place.
Approve translation changes in the workspace, then publish runtime updates without turning every text fix into a full store release.
Let supported SDK hooks check for updates and refresh text when new approved localization payloads are available.
When runtime updates are unavailable, the app keeps reading bundled resources so localization failures do not break the product.
Coverage
Start where localization creates release friction, then keep web, mobile, and cross-platform products in one shared workspace as your surface area grows.
Developer delivery
Use the ReRune CLI locally or in CI/CD to manage project translations, then deliver approved runtime updates through the SDK built for your app.
Companion CLI
Use the ReRune CLI to sync, validate, and manage translations right from your terminal. Run syncs in CI/CD or locally whenever you need to push a new language.
Homebrew (macOS/Linux):
brew install BasalBit/tap/rerunereruneConnect the project
Create the project config and connect the repository to its ReRune workspace.
rerune --pullPull approved updates
Bring current dashboard translations into the app or its build workflow.
rerune --pushPush local changes
Send local translation updates back to ReRune for the team to manage and publish.
Ship OTA localization updates in native Android apps while keeping strict fallback to your bundled resources.
UI stack
Compose quick start
dependencies {
implementation("io.rerune:rerune-android-compose:1.0.1")
}
class App : Application() {
override fun onCreate() {
super.onCreate()
ReRune.setup(
app = this,
otaPublishId = BuildConfig.RERUNE_OTA_PUBLISH_ID,
)
}
}
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(newBase.reRune())
}
@Composable
fun ExampleScreen() {
reRuneObserveRevision {
Text(text = stringResource(R.string.title))
}
}Declarative refresh
Compose screens wrap visible text with reRuneObserveRevision { ... }, while stringResource(...) keeps reading through the normal Android resource flow.
What still matters
Keep ReRune.setup(...) in Application.onCreate() and wrap each activity with newBase.reRune() so Compose and platform resources read OTA updates.
Questions
When OTA data is unavailable, Android can keep reading bundled resources, so existing string behavior remains the baseline.
Yes. Use io.rerune:rerune-android-compose:1.0.1 for Compose or io.rerune:rerune-android-views:1.0.1 for platform Views.
Supported SDK flows keep bundled resources as the fallback. Runtime updates add approved text delivery on top of the app's existing localization path instead of replacing the safe baseline.
Explore next
Go deeper into the developer, platform, and delivery workflows connected to this page.
Publish approved OTA localization updates through ReRune SDKs for Flutter, Android, iOS, React, and React Native with bundled fallbacks.
Read moreUse ReRune Flutter SDK 1.0.0 for OTA localization updates while keeping generated delegates, bundled resources, CLI sync, and AI assistance.
Read moreUse ReRune iOS SDK 1.0.0 for OTA localization through native Bundle.main lookups, SwiftUI or UIKit refresh hooks, and bundled fallback.
Read moreCreate projects, manage keys, use AI assistance with context, sync through CLI/API, and publish approved runtime updates when your app uses a supported ReRune SDK.