AL+

Language: RO (română) EN (English)

Email us: paul@alplustech.com

Looking back at the week of 31 July–6 August 2024

Flutter 3.24 makes a smaller web migration possible

Flutter 3.24 added multi-view web embedding. Assess one reusable feature against loading, accessibility and state boundaries before replacing a website.

Citiți articolul în română

If a business already has a working website and a useful Flutter feature, replacing the whole frontend is an unnecessarily large starting assumption. Evaluate embedding the feature within a bounded part of the existing site. Flutter 3.24 made that option more flexible through multi-view web embedding. The case depends on having something worth reusing and a boundary that remains understandable after integration.

This is a retrospective on the release of 6 August 2024, within the editorial week beginning 31 July. It argues for evaluating a smaller change. It does not claim that embedding is always cheaper, that Flutter is the best choice for a new website, or that an unmeasured integration will load quickly.

What the release actually enabled

The Flutter 3.24 technical announcement describes rendering into multiple HTML elements simultaneously. In multi-view mode, the Flutter application waits for the host to add its first view. The host can add and remove views dynamically, and each view can receive initialization data.

The companion Flutter 3.24 and Dart 3.5 announcement, also dated 6 August, places web embedding among the release's improvements. These are two posts from the originating project, rather than independent proof of business savings or performance. Their useful evidence is that the integration mechanism was part of the announced release.

That mechanism changes the scope of a possible migration. A host page can keep responsibility for the surrounding site while Flutter handles designated views. It does not follow that every option in today's embedding documentation existed in 3.24. Implementation work needs the documentation and dependencies appropriate to the version actually selected.

Choose the feature before the framework boundary

Consider an illustrative business with an existing public catalogue and a Flutter configuration tool already used elsewhere. The configuration tool might be a candidate for embedding, while product descriptions, navigation and contact information stay in the host website. The proposed value is reuse of a meaningful interaction without making every page part of the same migration.

The example depends on the tool being reusable. A screen tightly coupled to mobile-only assumptions may require substantial work before it is a web feature. A feature whose data and navigation are inseparable from the rest of the application may have no useful small boundary. Existing Dart code alone is weak evidence that reuse will be economical.

Write down the handoff in business terms before choosing API details. The host supplies the current product and user context; the embedded feature returns an agreed configuration or an explicit cancellation. Which side submits the final order should be unambiguous. This is an illustrative contract, not tested integration code or a description of an AL+ delivery.

If both sides can independently change the same selection, define which value wins and how the other side learns of it. Initialization data is a starting point, not an explanation of every later state change. An integration that leaves this unclear can duplicate rules even while it reuses interface code.

The surrounding website still has obligations

A small visible view can carry a larger loading requirement. Measure the actual time until the feature is usable under the network and device conditions that matter to its users. Compare that with the existing page and a plausible simpler implementation. The announcement establishes no universal loading budget, and this article supplies no benchmark.

Navigation deserves an equally concrete decision. If a user changes the configuration and presses Back, determine whether the host restores an earlier page, the feature restores an earlier step, or the change is discarded. Direct links and refreshes also need an agreed meaning. The browser should not become the place where two navigation systems argue over ownership.

Accessibility belongs in the acceptance criteria. Check keyboard entry into and out of the view, focus after the view is removed, and whether relevant assistive technology exposes the intended controls and messages. Those are proposed checks for an implementation; they are not claims that Flutter 3.24 automatically passes or fails them.

Keep the host useful when the embedded feature is unavailable. For a public catalogue, an explanatory message and a real alternative may be more appropriate than an empty rectangle. The right fallback depends on the business action, especially if the feature is required to complete a purchase. Agree that behaviour before treating the migration as finished.

The best case for ordinary HTML

If the proposed feature is a short form, an article or a simple product selector with no valuable existing Flutter implementation, ordinary HTML may be the more economical choice. Embedding adds a second interface environment and an integration boundary. Reuse must pay for those costs.

A full replacement can also be rational when the existing frontend is already due for retirement and a narrow embed would preserve expensive dependencies. Incremental change is useful because it can limit the affected surface, but keeping both systems alive indefinitely is not automatically a saving. Define what will remain and who will maintain it.

This differs from choosing a shared mobile business-logic layer. The decision here concerns a browser page, its host and one or more embedded views. Sharing rules between native apps does not settle loading behaviour, browser navigation or accessibility across this web boundary.

For custom software development, ask first for a bounded integration assessment: the reusable feature, the host contract and the user actions that must continue to work. Proceed if the evidence supports that scope. Flutter 3.24 made the smaller migration an available option; the business still has to establish that the smaller migration is worth owning.