ensemble 1.2.46 copy "ensemble: ^1.2.46" to clipboard
ensemble: ^1.2.46 copied to clipboard

Runtime for building Flutter apps from Ensemble's declarative YAML definitions.

ensemble #

ensemble is the core Flutter runtime for Ensemble's declarative app definitions.

Overview #

This is a core runtime package. It loads Ensemble configuration, initializes providers and managers, interprets Ensemble definitions, registers widgets and actions, and exposes navigation helpers used by host apps such as starter.

Features #

  • Provides the Ensemble singleton and EnsembleConfig model in lib/ensemble.dart.
  • Initializes Ensemble managers, configuration services, local assets, API providers, Firebase, and analytics providers.
  • Defines core actions such as navigation, timers, code execution, URL opening, file upload, OAuth, sockets, permissions, camera, Plaid, and authentication actions.
  • Maintains the core widget registry, including optional module extension points resolved through GetIt.

Installation / Setup #

Add the runtime to a Flutter host app:

flutter pub add ensemble

For local development inside this repository, bootstrap the Melos workspace:

melos bootstrap

Usage #

A source-verified host-app pattern is shown in starter/lib/main.dart:

await EnsembleModules().init();
runApp(EnsembleApp());

starter/lib/integrate_existing_app_with_Ensemble.dart also shows Ensemble().initialize() and Ensemble().navigateApp(context) for integrating Ensemble into an existing Flutter app.

Configuration #

Configuration is loaded through EnsembleConfigService and EnsembleConfig in lib/ensemble.dart. Host apps provide app IDs, local or remote definitions, Firebase options, providers, secrets, and module registration through the starter app or generated module files.

When definitions.from is ensemble, the runtime initializes Firebase with the bundled public Ensemble project options in lib/firebase_options.dart. Firebase API keys identify the public demo project and are not treated as secrets; production host apps should provide their own project configuration where needed.

Platform Support #

Platform Supported Notes
Android Unknown This package has no Android project; support depends on the host Flutter app.
iOS Unknown This package has no iOS project; support depends on the host Flutter app.
Web Unknown This package has no Web project; support depends on the host Flutter app.
macOS Unknown This package has no macOS project; support depends on the host Flutter app.
Windows Unknown This package has no Windows project; support depends on the host Flutter app.
Linux Unknown This package has no Linux project; support depends on the host Flutter app.

Permissions #

No package-level platform manifests were found. Runtime actions and optional modules may require host-app permissions for camera, location, contacts, files, notifications, authentication, or other native capabilities.

API Reference #

API Type Description
Ensemble Singleton class Initializes runtime services and provides navigation helpers.
EnsembleConfig Class Runtime configuration model.
EnsembleAction Base class Base for core action execution.
ActionType Enum Defines core action names parsed by the runtime.
widget_registry.dart Registry Maps Ensemble widget types to Flutter widget factories and optional module implementations.

Development #

melos bootstrap
melos exec --scope="ensemble" -- flutter analyze
melos exec --scope="ensemble" -- flutter test

Testing #

This package has a substantial test/ directory. Run package tests with melos exec --scope="ensemble" -- flutter test.

Additional technical documentation #

  • Reusable Actions — app-level and page-level Actions, executeAction, scoped Import/Global/API, and events.
  • Layout widgets (tabs, ListView scroll) — EDL layout behavior in lib/layout.
  • Runtime security and data bindings — screen id validation for definition providers, saveFile naming, multipart upload path checks, ensemble.storage.clear() behavior and binding refresh, WebView TLS/reputation settings, global script handler payloads, and device metric bindings after rotation.
  • starter: host app template that initializes EnsembleModules and EnsembleApp.
  • Optional modules under modules/ implement runtime stubs and widgets resolved by this package.
  • Packages under packages/ provide supporting UI, parser, date, and integration utilities.

Notes for Contributors #

  • Keep examples in sync with source code.
  • Update this README when public APIs, permissions, configuration, or platform support changes.
  • Do not document unverified behavior.
0
likes
30
points
40
downloads

Documentation

API reference

Publisher

verified publisherensembleui.com

Weekly Downloads

Runtime for building Flutter apps from Ensemble's declarative YAML definitions.

Topics

#low-code #runtime #yaml #flutter #ensemble

License

BSD-3-Clause (license)

Dependencies

accordion, app_links, audioplayers, brotli, cached_network_image, carousel_slider, change_case, cloud_firestore, cloud_functions, collection, connectivity_plus, cookie_jar, crypto, cupertino_icons, custom_image_crop, custom_refresh_indicator, dart_jsonwebtoken, device_info_plus, email_validator, encrypt, ensemble_app_badger, ensemble_device_preview, ensemble_dropdown, ensemble_icons, ensemble_otp, ensemble_table_calendar, ensemble_ts_interpreter, ensemble_walletconnect, event_bus, firebase_app_check, firebase_core, firebase_messaging, fl_chart, flutter, flutter_cache_manager, flutter_dotenv, flutter_html, flutter_i18n, flutter_inappwebview, flutter_layout_grid, flutter_local_notifications, flutter_localizations, flutter_localized_locales, flutter_markdown, flutter_rating_bar, flutter_secure_storage, flutter_security_checker, flutter_share_receiver, flutter_slidable, flutter_svg, flutter_svg_provider, fluttertoast, form_validator, get_it, get_storage, google_fonts, http, http_parser, input_tagger, intl, js_widget, local_auth, logger, lottie, mask_text_input_formatter, meta, mime, open_settings_plus, package_info_plus, parsejs_null_safety, path, path_provider, pointer_interceptor, provider, qr_flutter, rate_my_app, safe_device, screenshot, sensors_plus, share_plus, shared_preferences, signature, source_span, staggered_grid_view_flutter, universal_html, url_launcher, video_player, visibility_detector, wakelock_plus, web_socket_client, webview_flutter, webview_flutter_platform_interface, workmanager, yaml, youtube_player_iframe, youtube_player_iframe_web

More

Packages that depend on ensemble