Fluxy

OTA Engine

Server-Driven UI and Over-The-Air updates.

OTA Engine & Server-Driven UI

Fluxy includes a powerful engine for rendering UI dynamically from JSON and applying updates over-the-air.

Server-Driven UI (SDUI)

The FxRemoteView and FluxyRenderer allow you to define full application screens or individual components in JSON and render them dynamically.

Supported Widget Types

The renderer supports a wide range of atomic and layout widgets:

  • Layouts: row, column, box (flexible container), hero.
  • Content: text, button, image.

Dynamic Data & Interpolation

Fluxy supports real-time data binding via interpolation. You can pass a dataContext to the renderer, and use the {key} syntax in your JSON.

{
  "type": "text",
  "data": "Hello, {user.name}!",
  "style": { "fontSize": 18 }
}

Action Handlers

You can trigger local app events directly from your remote JSON using the action or onTap property:

  • navigate:/route: Navigate to a specific path.
  • back: Go back to the previous screen.
  • print:message: Log a message to the console.
{
  "type": "button",
  "label": "View Profile",
  "action": "navigate:/profile"
}

CLI & Package Sync

In v0.1.4, the fluxy CLI and the fluxy Flutter package are synchronized. Ensure your CLI is up to date to support the latest OTA features.

dart pub global activate fluxy # Sync to v0.1.4

Over-The-Air Updates

Fluxy enables Over-The-Air (OTA) updates for your application's UI and logic. This is achieved via FluxyRemote which can fetch and apply remote JSON manifests.

FxRemoteView

Render dynamic UI segments from your backend.

FxRemoteView(
  url: "https://cdn.fluxy.dev/manifests/header_v2.json",
  loading: Fx.text("Syncing..."),
)

This allows you to update your app's layout, styles, and even basic logic without waiting for App Store or Google Play approval. It's the ultimate solution for A/B testing, emergency fixes, and seasonal UI changes.

On this page