app library
Stable app-shell and runner entrypoint for terminal widget apps.
Prefer this library when you want the supported hosting surface without pulling in the full widget namespace:
WidgetAppArtisanalApp- local runners such as
runWidgetApp(...)andrunArtisanalApp(...) - reload helpers and watched/browser/socket host wrappers
Classes
- ArtisanalApp
- A high-level root shell for artisanal widget applications.
- ReloadController
- Controller for development-time subtree reloads.
- ReloadFileWatcher
- Watches one or more filesystem roots and forwards changes into a ReloadController.
- ReloadHost
- Rebuildable host for development-time reloads.
- ReloadScope
- Exposes a ReloadController to descendant widgets.
- ReloadSignal
- One reload signal emitted by ReloadController.
- WatchedBrowserArtisanalAppHost
- Browser host wrapper that owns the reload controller and optional watcher.
- WatchedSocketArtisanalAppHost
- Socket host wrapper that owns the reload controller and optional watcher.
- WidgetApp
- Runs a widget tree using an element hierarchy.
Enums
- ReloadMode
- The kind of reload requested through ReloadController.
- ThemeMode
- Controls how ArtisanalApp resolves its shell theme.
Constants
- defaultWidgetProgramOptions → const ProgramOptions
- Widget-friendly runtime defaults for runWidgetApp and runArtisanalApp.
Functions
-
runArtisanalApp(
ArtisanalApp app, {ProgramOptions? options, ProgramHost? host, ImageAutoMode? imageAutoMode}) → Future< void> - Runs an ArtisanalApp with widget-oriented runtime defaults.
-
runReloadableArtisanalApp(
{required ReloadWidgetBuilder homeBuilder, required ReloadController controller, String? title, Theme? theme, Theme? darkTheme, ThemeMode themeMode = ThemeMode.system, Theme themeBuilder()?, ProgramOptions? options, ProgramHost? host, ImageAutoMode? imageAutoMode}) → Future< void> -
Runs an ArtisanalApp with a reloadable
homewidget. -
runReloadableWidgetApp(
ReloadWidgetBuilder builder, {required ReloadController controller, ProgramOptions? options, ProgramHost? host, ImageAutoMode? imageAutoMode}) → Future< void> - Runs a reloadable WidgetApp backed by ReloadHost.
-
runWatchedArtisanalApp(
{required ReloadWidgetBuilder homeBuilder, required Iterable< String> watchRoots, String? title, Theme? theme, Theme? darkTheme, ThemeMode themeMode = ThemeMode.system, Theme themeBuilder()?, ReloadController? controller, ReloadMode watchMode = ReloadMode.reload, Duration watchDebounce = const Duration(milliseconds: 150), bool watchRecursive = true, bool watchIgnoreHidden = true, Iterable<String> watchExtensions = const <String>['.dart'], ProgramOptions? options, ProgramHost? host, ImageAutoMode? imageAutoMode}) → Future<void> -
Runs an ArtisanalApp with a watched, reloadable
homewidget. -
runWatchedWidgetApp(
ReloadWidgetBuilder builder, {required Iterable< String> watchRoots, ReloadController? controller, ReloadMode watchMode = ReloadMode.reload, Duration watchDebounce = const Duration(milliseconds: 150), bool watchRecursive = true, bool watchIgnoreHidden = true, Iterable<String> watchExtensions = const <String>['.dart'], ProgramOptions? options, ProgramHost? host, ImageAutoMode? imageAutoMode}) → Future<void> - Runs a reloadable WidgetApp and watches filesystem roots for changes.
-
runWidgetApp(
WidgetApp app, {ProgramOptions? options, ProgramHost? host, ImageAutoMode? imageAutoMode}) → Future< void> - Runs a WidgetApp with widget-oriented runtime defaults.
-
serveArtisanalAppInBrowser(
{required ArtisanalApp appBuilder(), InternetAddress? address, int port = 8080, String pagePath = '/', String webSocketPath = '/ws', String browserTitle = 'Artisanal Widget Host', String? pageHtml, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future< BrowserTerminalHostServer> - Serves an ArtisanalApp in the browser through the shared websocket host.
-
serveArtisanalAppOnSocket(
{required ArtisanalApp appBuilder(), InternetAddress? address, int port = 2323, bool v6Only = false, TerminalDimensions initialSize = (width: 80, height: 24), bool supportsAnsi = true, ColorProfile colorProfile = ColorProfile.trueColor, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future< SocketTerminalHostServer> - Serves an ArtisanalApp on the reusable raw TCP socket host.
-
serveReloadableArtisanalAppInBrowser(
{required ReloadWidgetBuilder homeBuilder, required ReloadController controller, InternetAddress? address, int port = 8080, String pagePath = '/', String webSocketPath = '/ws', String browserTitle = 'Artisanal Widget Host', String? pageHtml, String? title, Theme? theme, Theme? darkTheme, ThemeMode themeMode = ThemeMode.system, Theme themeBuilder()?, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future< BrowserTerminalHostServer> - Serves a reloadable ArtisanalApp in the browser.
-
serveReloadableArtisanalAppOnSocket(
{required ReloadWidgetBuilder homeBuilder, required ReloadController controller, InternetAddress? address, int port = 2323, bool v6Only = false, TerminalDimensions initialSize = (width: 80, height: 24), bool supportsAnsi = true, ColorProfile colorProfile = ColorProfile.trueColor, String? title, Theme? theme, Theme? darkTheme, ThemeMode themeMode = ThemeMode.system, Theme themeBuilder()?, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future< SocketTerminalHostServer> - Serves a reloadable ArtisanalApp on the raw socket host.
-
serveWatchedArtisanalAppInBrowser(
{required ReloadWidgetBuilder homeBuilder, required Iterable< String> watchRoots, ReloadController? controller, ReloadMode watchMode = ReloadMode.reload, Duration watchDebounce = const Duration(milliseconds: 150), bool watchRecursive = true, bool watchIgnoreHidden = true, Iterable<String> watchExtensions = const <String>['.dart'], InternetAddress? address, int port = 8080, String pagePath = '/', String webSocketPath = '/ws', String browserTitle = 'Artisanal Widget Host', String? pageHtml, String? title, Theme? theme, Theme? darkTheme, ThemeMode themeMode = ThemeMode.system, Theme themeBuilder()?, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future<WatchedBrowserArtisanalAppHost> - Serves a watched, reloadable ArtisanalApp in the browser.
-
serveWatchedArtisanalAppOnSocket(
{required ReloadWidgetBuilder homeBuilder, required Iterable< String> watchRoots, ReloadController? controller, ReloadMode watchMode = ReloadMode.reload, Duration watchDebounce = const Duration(milliseconds: 150), bool watchRecursive = true, bool watchIgnoreHidden = true, Iterable<String> watchExtensions = const <String>['.dart'], InternetAddress? address, int port = 2323, bool v6Only = false, TerminalDimensions initialSize = (width: 80, height: 24), bool supportsAnsi = true, ColorProfile colorProfile = ColorProfile.trueColor, String? title, Theme? theme, Theme? darkTheme, ThemeMode themeMode = ThemeMode.system, Theme themeBuilder()?, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future<WatchedSocketArtisanalAppHost> - Serves a watched, reloadable ArtisanalApp on the raw socket host.
-
serveWidgetAppInBrowser(
{required WidgetApp appBuilder(), InternetAddress? address, int port = 8080, String pagePath = '/', String webSocketPath = '/ws', String browserTitle = 'Artisanal Widget Host', String? pageHtml, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future< BrowserTerminalHostServer> - Serves a WidgetApp in the browser through the shared websocket host.
-
serveWidgetAppOnSocket(
{required WidgetApp appBuilder(), InternetAddress? address, int port = 2323, bool v6Only = false, TerminalDimensions initialSize = (width: 80, height: 24), bool supportsAnsi = true, ColorProfile colorProfile = ColorProfile.trueColor, ImageAutoMode imageAutoMode = ImageAutoMode.sessionCapabilities, ProgramOptions? options}) → Future< SocketTerminalHostServer> - Serves a WidgetApp on the reusable raw TCP socket host.
Typedefs
- ReloadWidgetBuilder = Widget Function(BuildContext context, int revision)
- Builder used by ReloadHost.