runTvApp function

void runTvApp(
  1. Widget app
)

Entry point equivalent to runApp with RCU initialization on tvOS. On iOS / Android / other platforms this is a straight passthrough.

void main() => runTvApp(const MyApp());

Custom WidgetsBinding subclasses. runTvApp force-installs the concrete WidgetsFlutterBinding. If your app uses a custom binding subclass (e.g. for analytics observers), initialize it first and then wire up RCU manually:

void main() {
  MyCustomBinding.ensureInitialized();
  if (FlutterTvosPlatform.isTvos) {
    TvRemoteController.instance.init();
  }
  runApp(const MyApp());
}

Hot restart. On hot restart the Dart VM re-initializes static state: TvRemoteController.instance._initialized resets to false and its channel handlers disappear. runTvApp is not re-invoked — only cold restart re-registers the RCU listeners. If the Remote appears dead after a hot restart, do a cold restart.

Implementation

void runTvApp(Widget app) {
  WidgetsFlutterBinding.ensureInitialized();
  if (FlutterTvosPlatform.isTvos) {
    TvRemoteController.instance.init();
  }
  runApp(app);
}