The Flutter embedder is the platform-specific code that starts the Flutter engine and connects it to the operating system. It is the layer that allows Flutter to run on Android, iOS, desktop systems, or custom devices.
Simply put: the embedder is the native code that launches Flutter and hosts its rendering surface.
Even if you never modify it, the embedder affects:
When Flutter behaves differently on Android and iOS, the reason is often in the embedder, not in Dart code.
For most developers, the embedder already exists in their project as native code:
android/app/src/main/.../MainActivity.ktios/Runner/AppDelegate.swift (and SceneDelegate on newer iOS versions)These files:
This is the embedder layer you interact with indirectly.
Flutter does not translate widgets into native UI components.
The embedder follows a simple rule: Input → Engine → Pixels
A Container is never converted into a LinearLayout or UIView.
You should think about the embedder when:
For typical apps, the default embedder is enough.
Do not modify the embedder when:
Most problems belong to the framework layer, not the embedder.
The Flutter Embedder API is a low-level C-based API used to create custom embedders. It allows a host app to:
Official platforms use it internally, but it is also used for custom environments.
Because the embedder is replaceable, Flutter can run on:
All that is needed is native code that opens a window, forwards input, and hosts the Flutter engine.
The embedder is where platform channels terminate on the native side. It initializes plugins and enables communication between Dart and native APIs.
15 min. • Nov 29, 2022
Flutter has taken the mobile market by storm, but not everybody knows that you don’t always have to write a Flutter app from scratch. It can be integrated into your existing application piecemeal. Read more about the Flutter add to app feature.
8 min. • Dec 5, 2022
As part of a PoC for a client from the banking sector, we had to implement a business process that required some work to be performed in the background in a Flutter module. See our case and code examples of implementing background services in Flutter add-to-app.
14 min • Sep 10, 2024
For a business looking to build a mobile app, the choice between native and cross-platform development directly impacts the entire product development process. This article is packed with insights that will help you make an informed choice between these two approaches, aligning your technical needs with your business objectives.