{"id":11590,"date":"2025-01-27T10:08:49","date_gmt":"2025-01-27T09:08:49","guid":{"rendered":"https:\/\/www.basyskom.de\/?p=11590"},"modified":"2025-02-06T08:06:12","modified_gmt":"2025-02-06T07:06:12","slug":"how-does-flutter-work-on-embedded","status":"publish","type":"post","link":"https:\/\/www.basyskom.de\/en\/how-does-flutter-work-on-embedded\/","title":{"rendered":"How does Flutter work on Embedded"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"11590\" class=\"elementor elementor-11590\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-01f1e6a e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"01f1e6a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9f5f23b elementor-widget elementor-widget-text-editor\" data-id=\"9f5f23b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>After you&#8217;ve read the <a href=\"https:\/\/www.basyskom.de\/en\/state-of-flutter-on-embedded-linux\/\" target=\"_blank\" rel=\"noopener\">first part<\/a> and recognize the benefits of Flutter on embedded hardware, especially in terms of mobile application reuse and avoiding licensing challenges, let&#8217;s see what it takes to run your Flutter app on an embedded device.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27d57de elementor-widget elementor-widget-heading\" data-id=\"27d57de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Running Flutter on Embedded Devices<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-366ba11 elementor-widget elementor-widget-text-editor\" data-id=\"366ba11\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIn general, Flutter requires an Embedder, which acts as an abstraction layer between Flutter\/Dart and system resources such as graphics surfaces, file systems, touch input, and other hardware components. The Embedder allows Flutter to draw UI elements, respond to user interactions, and manage system-level resources.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8feacda elementor-widget elementor-widget-image\" data-id=\"8feacda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/docs.flutter.dev\/resources\/architectural-overview\" target=\"_blank\" rel=\"nofollow noopener\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1836\" height=\"1506\" src=\"https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram.png\" class=\"attachment-full size-full wp-image-11592\" alt=\"Flutter Architecture\" srcset=\"https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram.png 1836w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram-300x246.png 300w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram-1024x840.png 1024w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram-768x630.png 768w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram-1536x1260.png 1536w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram-15x12.png 15w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2025\/01\/archdiagram-560x459.png 560w\" sizes=\"(max-width: 1836px) 100vw, 1836px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82dda41 elementor-widget elementor-widget-heading\" data-id=\"82dda41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Building an Embedder<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1892e7d elementor-widget elementor-widget-text-editor\" data-id=\"1892e7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Creating an Embedder is a complex task that involves connecting Flutter to low-level hardware or OS features of the target platform.<\/p><p>This includes:<\/p><ul><li>Configuring graphics interfaces like <strong>OpenGL<\/strong> or <strong>Vulkan<\/strong><\/li><li>Managing event loops<\/li><li>Handling input\/output interfaces<\/li><\/ul><p>Linux on the Desktop relies on windowing systems such as X11 or Wayland. On embedded devices it can make sense to avoid a windowing system altogether (DRM\/EGL) to minimize resource usage. This means there cannot be one standard Embedder for Linux.<\/p><p>While Google actually recognize the usecase of running Flutter on Embedded Devices as a <a href=\"https:\/\/flutter.dev\/multi-platform\/embedded.\" target=\"_blank\" rel=\"nofollow noopener\">valid possibility<\/a>. There is no official embedder for embedded plattforms. To our luck, this gap is filled by several open-source projects, such as:<\/p><ul><li>Flutter-Pi<\/li><li>Sony Embedder<\/li><li>Toyota IVI Homescreen<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-124fea4 elementor-widget elementor-widget-heading\" data-id=\"124fea4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Comparison of Popular Flutter Embedders for Embedded Systems<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dc07297 wpr-data-table-type-custom wpr-table-align-items-left elementor-widget elementor-widget-wpr-data-table\" data-id=\"dc07297\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wpr-data-table.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\t\t\n\t\t<div class=\"wpr-table-container\">\n\t\t<div class=\"wpr-table-inner-container\" data-table-sorting=\"no\" data-custom-pagination=\"no\" data-row-pagination=\"\" data-entry-info=\"no\" data-rows-per-page=\"\">\n\n\t\t\n\t\t\t\t\t\t<table class=\"wpr-data-table\" id=\"wpr-data-table\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t<thead>\n\t\t\t\t\t<tr class=\"wpr-table-head-row wpr-table-row\">\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"wpr-table-th elementor-repeater-item-8fde228\" colspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">EMBEDDER<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/th>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"wpr-table-th elementor-repeater-item-8220505\" colspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">SUPPORTED ARCHITECTURE<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/th>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"wpr-table-th elementor-repeater-item-b31d6a9\" colspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">GRAPHICS BACKEND<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/th>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"wpr-table-th elementor-repeater-item-79badb2\" colspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">KEY FEATURES<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/th>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"wpr-table-th elementor-repeater-item-5931cf0\" colspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">TARGET USECASES<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/th>\n\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t<\/thead>\n\n\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t<tr class=\"wpr-table-body-row wpr-table-row elementor-repeater-item-07c1b0a wpr-odd\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-73928d9 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tFlutter-Pi\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-83f698e wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t32-bit and 64-bit CPUs\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-3de23dc wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tDRM\/EGL\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-456ed93 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tLightweight, supports low-cost hardware\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-d7caa94 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tBudget-sensitive embedded projects\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t        \t\t\t\t\t<tr class=\"wpr-table-body-row wpr-table-row elementor-repeater-item-12ed849 wpr-odd\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-f5493fd wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tSony Embedder\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-713a0a6 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t64-bit CPUs\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-6a63884 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tWayland\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-c1119de wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tComplex GUIs, multi-application setups\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-71d46d1 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tConsumer electronics, industrial use\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t        \t\t\t\t\t<tr class=\"wpr-table-body-row wpr-table-row elementor-repeater-item-ae25e45 wpr-odd\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-768c6ba wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tToyota IVI Homescreen\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-b070425 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t64-bit CPUs\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-07ee365 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tWayland<br>with EGL and Vulkan<br>as backend\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-2544f8a wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tAutomotive-focused, multi-window IVI systems\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"elementor-repeater-item-c882048 wpr-table-td\">\n\n\t\t\t\t\t\t\t\t<div class=\"wpr-td-content-wrapper\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t<span class=\"wpr-table-text\">\n\t\t\t\t\t\t\t\t\t\t\t\tIn-vehicle infotainment systems\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t        \t\t\t\t<\/tbody>\n\t\t\t<\/table>\n\t\t<\/div>\n\t\t<\/div>\n    \t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6d3fe5 elementor-widget elementor-widget-text-editor\" data-id=\"c6d3fe5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li><strong>Flutter-Pi<\/strong> is the only option that supports both 32-bit and 64-bit CPUs, making it suitable for a wide range of hardware (not only Raspberry Pi), especially budget-friendly options. It is ideal for simpler use cases where lightweight performance is key.<\/li><li><strong>Sony Embedder<\/strong> is geared towards 64-bit systems with robust support for Wayland, enabling complex GUIs that can run multiple applications. This makes it suitable for consumer electronics or industrial embedded environments.<\/li><li><strong>Toyota IVI Homescreen\u00a0<\/strong>is specifically built with in-vehicle infotainment systems in mind, supporting advanced multi-window setups via Wayland with EGL or Vulkan backends. There is a wide range of plugins to cover various usecases such as cloud login, web view, etc. For a list, take a look at their GitHub page.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92b607e elementor-widget elementor-widget-text-editor\" data-id=\"92b607e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tFor more information on building an Embedder and using these existing implementations, refer to:\n<ol>\n \t<li><a class=\"external-link\" href=\"https:\/\/github.com\/flutter\/engine\/blob\/main\/docs\/Custom-Flutter-Engine-Embedding-in-AOT-Mode.md\" rel=\"nofollow noopener\" target=\"_blank\">Flutter Embedder Documentation<\/a><\/li>\n \t<li><a class=\"external-link\" href=\"https:\/\/github.com\/ardera\/flutter-pi\" rel=\"nofollow noopener\" target=\"_blank\">Flutter Community &#8211; Flutter-Pi Project<\/a><\/li>\n \t<li><a class=\"external-link\" href=\"https:\/\/github.com\/Sony\/flutter-embedded-linux\" rel=\"nofollow noopener\" target=\"_blank\">Sony Embedder &#8211; GitHub<\/a><\/li>\n \t<li><a class=\"external-link\" href=\"https:\/\/github.com\/toyota-connected\/ivi-homescreen\" rel=\"nofollow noopener\" target=\"_blank\">Toyota IVI Homescreen Embedder &#8211; GitHub<\/a><\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d736117 elementor-widget elementor-widget-heading\" data-id=\"d736117\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Choosing the Right Flutter Embedder for Your Embedded Project<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fd3bde elementor-widget elementor-widget-text-editor\" data-id=\"4fd3bde\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThe <strong>Sony Embedder<\/strong> and <strong>Toyota IVI Homescreen\u00a0<\/strong>have distinct advantages, such as support for Wayland, which allows for more complex multi-application setups. However, these two embedders are limited to 64-bit CPUs. While both provide the capability to create advanced, multi-window GUIs, they also tend to use more system resources, potentially leading to slower performance in some cases. This trade-off can be worthwhile if your project requires high complexity or advanced features.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26d27b4 elementor-widget elementor-widget-text-editor\" data-id=\"26d27b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Flutter-Pi<\/strong> is, because of its versatility in supporting both 32-bit and 64-bit CPUs, a good choice for many embedded devices (and not only for Raspberry Pi). The support for 32-bit makes it ideal for projects that need cost-effective hardware. Its lightweight nature and broader hardware compatibility makes it a strong choice for HMIs where minimizing costs is important.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26ec60d elementor-widget elementor-widget-heading\" data-id=\"26ec60d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce1f035 elementor-widget elementor-widget-text-editor\" data-id=\"ce1f035\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIn this part, we focused on key considerations for selecting the right Flutter Embedder for your embedded project. In the upcoming part three of this blog series, we will explore a potential software architecture for a cross-platform scenario.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-56afef6 elementor-widget elementor-widget-text-editor\" data-id=\"56afef6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Concluding part two, you may take with you that the choice of Embedder should align with your project goals\u2014whether it&#8217;s prioritizing hardware efficiency with\u00a0<strong>Flutter-Pi<\/strong>, or harnessing advanced GUI capabilities with <strong>Sony<\/strong> and <strong>Toyota<\/strong> solutions. If you&#8217;re uncertain about which Embedder is best for you, feel free to reach out to us for an initial assessment by our experts.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-455f5a0 elementor-widget elementor-widget-text-editor\" data-id=\"455f5a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"https:\/\/www.basyskom.de\/en\/flutter-on-embedded-hmi-mobile-apps-and-middleware\/\">Continue Reading with Part 3.<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Learn about the different Flutter Embedders for embedded Linux! What choices do you have and which aligns best to your project goals?<\/p>","protected":false},"author":1,"featured_media":4020,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2,803,802],"tags":[223],"class_list":["post-11590","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-flutter","category-newsletter-2025-01","tag-flutter"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts\/11590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/comments?post=11590"}],"version-history":[{"count":25,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts\/11590\/revisions"}],"predecessor-version":[{"id":11643,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts\/11590\/revisions\/11643"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/media\/4020"}],"wp:attachment":[{"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/media?parent=11590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/categories?post=11590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/tags?post=11590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}