Skip to content

hotwired/strada-android

Repository files navigation

Strada Android

Strada lets you create fully native controls, driven by your web app. It's a set of libraries that work across your web, iOS, and Android apps to help you build features that make your Turbo Native hybrid apps stand out. Turn HTML elements that exist in the WebView into native components and communicate messages across your native and web code.

Strada Android enables you to create native components that receive and reply to messages from web components that are present on the page. Native components receive messages to run native code, whether it's to build high fidelity native UI or call platform APIs.

Features

  • Level up your Turbo Native hybrid apps with high-fidelity native components, driven by web components.
  • Reuse web components for your iOS and Android apps.
  • Communicate with the WebView and its web components without writing any JavaScript in your app.

Requirements

  1. Android SDK 26+ is required as the minSdk in your build.gradle.kts file.
  2. This library is written entirely in Kotlin, and your app should use Kotlin as well. Compatibility with Java is not provided or supported.
  3. This library supports Turbo Native hybrid apps.
  4. Your web app must be running strada-web. The window.Strada object is automatically exposed on the loaded WebView page, which enables strada-android to work.

Note: You should understand how Strada works in the browser before attempting to use Strada Android. See the Strada documentation for details.

Getting Started

The best way to get started with Strada Android is to try out the Turbo Android demo app first to get familiar with the framework and what it offers. The demo app provides several Strada component examples. To run the demo, clone the turbo-android repo, and read the instructions.

Documentation

  1. Installation
  2. Overview
  3. Quick Start
  4. Build Components
  5. Advanced Options

Contributing

Strada Android is open-source software, freely distributable under the terms of an MIT-style license. The source code is hosted on GitHub. Development is sponsored by 37signals.

We welcome contributions in the form of bug reports, pull requests, or thoughtful discussions in the GitHub issue tracker.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.


© 2024 37signals LLC