Skip to content

Theta Tokyo 0.5

Compare
Choose a tag to compare
@andreabuttarelli andreabuttarelli released this 31 Jul 08:54
· 229 commits to main since this release
69db039

ようこそ! Introducing pre-loading without internet connection and reactive state changes in Theta Tokyo (0.5)

Introducing pre-loading without the need for an Internet connection, for instant loadings

Everyone's most requested feature has arrived! From now on, it will be possible to use Theta even without an Internet connection, thanks to a pre-loading in the development phase of the app.

Preloading works by locally loading the components and styles of a project.
To make DX as good as possible, we have created for the occasion Theta CLI, which will allow us to save pre-load the styles of a project and its components.
You will still be able to pass a custom file in case you do not want to use the /assets folder

Do you want to know how preload works?

Theta CLI

Theta finally has its own CLI! You can preload components and styles with it. But this is only the first version: projects and account management are coming soon.

Do you want to know how Theta CLI works?

Overrides are now reactive to state changes

Overrides can now be responsive to state changes, creating dynamic interfaces using any state management library.

You can see examples where we combine Theta's remote UI with Bloc, Riverpod and Stacked libraries.

Fetch components from different branches / versions

Looking for true versioning of your components? Don't want to touch old versions of the application?
Now you can use different versions of components using branches.

  • Open the Branches to see all your project branches.
  • Write a branch name inside UIBox(‘component name’, branch: “YOUR_BRANCH_NAME”)

Use case?

You already have a published version of your application on the stores.
You want to update the UI with a new button, adding a new workflow.
Since to add a workflow you have to reload the app on the stores, and the user has to update the version to use it (and that doesn't always happen), to avoid having a non-interactive button on previous versions, you can leave the previous version in one branch and add the new UI in another branch, referring to the ids of the different versions of the app.

⚡️ From the community


Minor improvements

Connection Modes

We made an improvement to the syntax by introducing the ConnectionModes enum to choose how Theta should connect with the remote UI.
Declare it in initialize() as follows: Theta.initialize(connectionMode: ConnectionModes.preloaded, anonKey: '...').

Allowed values:

  • continuous
  • cached
  • preload

Read component properties from UIBoxController for custom analytics

The UIBoxController exposes additional information about the loaded component, such as the name, id, or branch name. These are useful for tracking which component is being viewed by users.

controller.onLoaded(() async {
   await analytics.logEvent(
      name: controller.componentName,
      parameters: {
        'component_id': controller.componentID,
        'branch': controller.branch,
      },
    );
});

UIBox(
   ‘component name’,
   controller: controller,
)

New Flutter app examples using Theta [with source-code]

Support us

私たちをサポートするには、スターを付けてください。 To support us, star us. 🌟