appplayer_ui_view

Read-only Flutter viewer for target-native UI outputs. No abstract IR — each target registers a UiRuntimePort that interprets its own native snapshot shape and renders a Flutter Widget. Device frame, viewport zoom/pan, validation overlay, multi-target layout, and status strip are all composed internally.

Features

  • Pluggable targets — register a UiRuntimePort per UI target (Flutter, LVGL, Qt, …); each renders its own native snapshot.
  • Device frameDeviceFrame / BezelConfig with a registry of common device bezels.
  • Viewport — zoom / pan around the rendered target.
  • Validation overlay — surface ValidationIssues over the view.
  • Multi-target layout — show several targets side by side.
  • Status strip — render state / target metadata.

Usage

import 'package:appplayer_ui_view/appplayer_ui_view.dart';

final registry = UiRuntimeRegistry()
  ..register(MyFlutterRuntime())
  ..register(MyLvglRuntime());

Widget build(BuildContext ctx) => UiView(
      adapter: MyHostAdapter(),
      target: 'ui-lvgl:home',
      registry: registry,
      frame: DeviceFrameRegistry.standard.bySlug('phone.iphone15'),
    );

Multi-target layouts use UiViewMulti(targets: [...], layout: MultiLayout.row).

Platform

Flutter — all platforms (macOS / Windows / Linux / iOS / Android / web).

Libraries

appplayer_ui_view
Read-only Flutter viewer for target-native UI outputs.
viewer
Minimal barrel — widget + adapter/port interfaces only. Prefer package:appplayer_ui_view/appplayer_ui_view.dart when you need the full type surface.