Skip to content

v1 Requirements (Android) #4

@JanCizmar

Description

@JanCizmar

Functional requirements

  • The developer can use the same API they are used to without changing the imports (the views @strings/ references and getString() method in code)
  • “Just-works” resource mapping – the SDK must automatically connect Android’s numeric resource IDs with Tolgee key names so every existing @string/... reference and getString() call resolves to the correct over-the-air value.
    What the developer gains: they drop in the SDK and keep using all current APIs untouched.
  • Offline-first fallback – if no bundle is available (first run, airplane mode), the app must gracefully show the strings baked into the APK/AAB.
  • Make it consistent between offline bundled data (plurals, strings arrays) and data fetched from the CDN.
    Benefit: OTA is an enhancement, never a single point of failure.
  • Instant language switch – expose a simple helper that reloads the chosen locale throughout the UI without manual plumbing.
    Benefit: parity with Lokalise’s runtime language switcher.
    • Implement it without adding special code to handle the locale changes

Testing

  • Unit coverage for plural rules, arrays, fallback logic, and the resource-ID mapping.
  • Instrumentation checks that verify:
    • texts refresh in already-inflated views,
    • switching locales recreates visible screens correctly,
    • OTA still works after code shrinking and Play-Store language splits, and
    • behaviour is correct when the device is offline or the CDN is unreachable.

Documentation

  • Getting-started walkthrough containing these steps
    • Creating a project in Tolgee
    • Pushing strings to Tolgee
    • Creating new content delivery
    • Setting up the OTA
    • Switching the language
    • Modifying the data in Tolgee to verify the OTA works
  • API reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions