Platform localization

Android localization SDK for native app text updates.

ReRune Android SDK 1.0.1 provides Compose and Views integrations for approved OTA text while native string resources remain the fallback.

ReRune dashboard showing localization workspace activity and project status
ReRune projects list showing real localization projects in a workspace
ReRune project keys view for managing software translation keys
ReRune OTA demo mobile app landing screen with live localization status
ReRune OTA demo mobile app story screen showing runtime translation content

Common challenge

XML string resources remain the safe baseline, but they cannot address every approved copy change or new language after an app ships.

Best fit

Native Android teams using Compose or Views that need the public 1.0.1 modules, OTA-backed strings, dashboard review, and developer-controlled sync.

How ReRune helps

ReRune keeps Android runtime updates connected to the same workspace that manages keys, language coverage, dictionaries, and platform sync.

Workflow

From app copy to release-ready localization.

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.

1

Install the SDK

Connect the supported app runtime to a ReRune publish ID while keeping native or framework localization behavior in place.

2

Publish approved text

Approve translation changes in the workspace, then publish runtime updates without turning every text fix into a full store release.

3

Refresh visible copy

Let supported SDK hooks check for updates and refresh text when new approved localization payloads are available.

4

Keep fallbacks intact

When runtime updates are unavailable, the app keeps reading bundled resources so localization failures do not break the product.

Coverage

App-first does not mean mobile-only.

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

Sync through the CLI. Publish through OTA SDKs.

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

Install the ReRune 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/rerune
  • Downloadable builds for macOS, Linux, and Windows
  • Uses the API keys you generate in the dashboard
  • Fits scripted CI/CD workflows through CLI and API access
rerune

Connect the project

Create the project config and connect the repository to its ReRune workspace.

rerune --pull

Pull approved updates

Bring current dashboard translations into the app or its build workflow.

rerune --push

Push local changes

Send local translation updates back to ReRune for the team to manage and publish.

ReRune for Android

Ship OTA localization updates in native Android apps while keeping strict fallback to your bundled resources.

  • Install from Maven Central and initialize ReRune in Application.onCreate()
  • Wrap each activity base context once to enable native string lookups
  • Supports classic Views, XML inflation, and Jetpack Compose refreshes
  • Keeps bundled strings as the expected fallback when OTA is unavailable
AndroidKotlinJavaJetpack ComposeViews
Quick StartView on GitHub

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

Questions teams ask before choosing a localization platform.

How does ReRune handle Android fallback?

When OTA data is unavailable, Android can keep reading bundled resources, so existing string behavior remains the baseline.

Does ReRune support Compose and classic Android views?

Yes. Use io.rerune:rerune-android-compose:1.0.1 for Compose or io.rerune:rerune-android-views:1.0.1 for platform Views.

What happens if an OTA localization update is unavailable?

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.

One workspace

Start with one product workflow and expand from there.

Create 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.