theta 0.1.0-dev.4 theta: ^0.1.0-dev.4 copied to clipboard
Build remote, dynamic and responsive user interfaces with the Theta Flutter library.
Theta #
Theta Flutter library.
What is Theta? #
Theta is a platform designed for rendering dynamic user interfaces seamlessly within your Flutter applications.
- Effortless dynamic UI rendering: Display no-code UIs by eliminating the need to deploy or rebuild the app for each change.
- Custom code directly from within your app, mixing no-code and code.
- Test the user interface against various conditions and user properties in real time to help you find the best user experience.
- Lightweight and secure.
How it works? #
- Design interfaces on Theta (Figma import and AI generative generation support are planned in the future).
- Add the user interface elements within the app.
- Update the UI without rebuilding the app.
Getting started #
Initialize Theta #
Initialize Theta by calling Theta.initialize
with your anonymous key.
Be sure to call this method at the root of your app.
import 'package:theta/theta.dart';
Future<void> main() async {
await Theta.initialize(anonKey: 'thetaKey');
// ...
}
Wrap your app with ThetaProvider #
Wrap your app with ThetaProvider
to enable any UIBox to receive the theme and project styles.
ThetaProvider(
theme: ThemeMode.light,
child: MaterialApp(
home: // ...
),
)
Render remote UI #
Everything you need to do is to add a UIBox
widget to your app and pass the component name as a parameter.
return Scaffold(
body: Center(
child: UIBox('Component name'),
),
);
Loading placeholder and error handling #
You can display a placeholder widget during loading and an error widget.
UIBox(
'Homepage',
placeholder: CircularProgressIndicator(),
errorWidget: (error) => Text(error),
)
Add custom code for actions #
Want a dynamic UI with gesture support (onTap, doubleTap, etc.)? You can add functions, called 'workflows', based on gesture triggers.
- Select a single UI element based on its id or name.
- Choose the trigger for which the action will start.
- Add a method.
UIBox(
'AppBar',
workflows: [
Workflow('Container s4l3s', Trigger.onTap, () {
// Do something
}),
],
)
Status #
- ✅ Alpha: experimental. Expect breaking changes.
- ✅ Closed Beta: ready for testing. Expect bugs and missing features.
Contributing #
See CONTRIBUTING.md for details.
License #
Build with Theta packages are licensed under the Apache License 2.0. See LICENSE for details.