{"id":11474,"date":"2024-11-26T09:36:17","date_gmt":"2024-11-26T08:36:17","guid":{"rendered":"https:\/\/www.basyskom.de\/?p=11474"},"modified":"2025-02-06T08:08:42","modified_gmt":"2025-02-06T07:08:42","slug":"state-of-flutter-on-embedded-linux","status":"publish","type":"post","link":"https:\/\/www.basyskom.de\/en\/state-of-flutter-on-embedded-linux\/","title":{"rendered":"State of Flutter on Embedded Linux"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"11474\" class=\"elementor elementor-11474\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37e3fb0 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"37e3fb0\" 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-312671c elementor-widget elementor-widget-heading\" data-id=\"312671c\" 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<h1 class=\"elementor-heading-title elementor-size-default\">Motivation<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cee17a elementor-widget elementor-widget-text-editor\" data-id=\"4cee17a\" 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 2020, we started exploring the possibility of running Flutter on embedded Linux. (<a href=\"https:\/\/www.basyskom.de\/en\/the-technology-thursday-episode-2-how-to-flutter-on-an-embedded-device\/\" target=\"_blank\" rel=\"noopener\">here<\/a>). \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-8bf563f elementor-widget elementor-widget-text-editor\" data-id=\"8bf563f\" 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\tAnd today, we&#8217;d like to give you an update on the state of Flutter on embedded Linux. In this first part of a two-part article, we will cover fundamentals on how and why flutter might be the most reasonable choice for your embedded project. \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-813bd55 elementor-widget elementor-widget-text-editor\" data-id=\"813bd55\" 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 the upcoming part two, where we will take a more technical look on how to actually set up a Flutter application architecture that can talk with existing middleware and peripheral hardware, without compromising the cross-platform capabilities of Flutter.\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-36ecce5 elementor-widget elementor-widget-heading\" data-id=\"36ecce5\" 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\">What is Flutter?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-50ed575 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"50ed575\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d20e0d4 elementor-widget elementor-widget-text-editor\" data-id=\"d20e0d4\" 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>Flutter is an open-source UI framework developed by Google, designed primarily for building applications that are compiled to native machine code (or JavaScript, in case of the web) across different platforms, including Android, iOS, web, and desktop.<\/p><p>Compiling to a platform native code is important because it ensures high performance by directly using the hardware&#8217;s processing power, which benefits cross-platform performance and results in smoother, more responsive applications.<\/p><p>Initially targeted at mobile platforms like Android and iOS, Flutter has expanded to support desktop and web applications. Built with the Dart programming language, Flutter offers a unified development experience with a strong emphasis on modern, declarative UI development.<\/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-eb29ccd elementor-widget elementor-widget-image\" data-id=\"eb29ccd\" 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<img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"417\" src=\"https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-768x417.png\" class=\"attachment-medium_large size-medium_large wp-image-11487\" alt=\"basysKom, HMI Dienstleistung, Qt, Cloud, Azure\" srcset=\"https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-768x417.png 768w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-300x163.png 300w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-1024x556.png 1024w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-1536x834.png 1536w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-2048x1112.png 2048w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-18x10.png 18w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/Dashatars-560x304.png 560w\" sizes=\"(max-width: 768px) 100vw, 768px\">\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>\n\t\t<div class=\"elementor-element elementor-element-3c0f5b3 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"3c0f5b3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1b5f29 elementor-widget elementor-widget-heading\" data-id=\"f1b5f29\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Learn more about Flutter<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-308a1f0 elementor-list-item-link-inline elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list\" data-id=\"308a1f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/flutter.dev\/docs\/overview\" target=\"_blank\" rel=\"nofollow noopener\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-book-open\" viewbox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Flutter Documentation - Overview <\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/dev.to\/nitdgplug\/flutter-google-s-one-stop-solution-for-native-applications-520f\" target=\"_blank\" rel=\"nofollow noopener\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-tools\" viewbox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Flutter on DEV Community - Native Applications<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a686b68 elementor-widget elementor-widget-heading\" data-id=\"a686b68\" 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\">Embedded Hardware Overview<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-72f2370 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"72f2370\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dbefe0b elementor-widget elementor-widget-text-editor\" data-id=\"dbefe0b\" 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>What is embedded hardware? When we say embedded hardware, we refer to specialized systems that are designed to perform dedicated tasks, often with strict resource limitations. This hardware is found in a wide range of devices such as home appliances, industrial equipment, and automotive systems.<\/p><p>Like mobile but unlike desktop environments, embedded systems often use System on Chip (SoC) architectures, which integrate various components such as CPU, memory, and I\/O onto a single chip, making them highly specialized and efficient. Common examples of SoCs that are used in embedded hardware include i.MX 6 and i.MX 8 chips, as well as other 32-bit and 64-bit embedded SoCs like the STM32 series and the Texas Instruments AM64x series.<\/p><p>We are looking at embedded hardware that runs with lightweight Linux distributions, such as Yocto or Buildroot, in contrast to the more resource-intensive operating systems found on desktop and mobile devices.<\/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-323511d elementor-widget elementor-widget-image\" data-id=\"323511d\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.ultratronik-ems.de\/technologieplattformen\/#ecp\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"655\" height=\"440\" src=\"https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/landingpage_plattformen_2000x707-1536x542-1-e1732609684578.png\" class=\"attachment-full size-full wp-image-11488\" alt=\"basysKom, HMI Dienstleistung, Qt, Cloud, Azure\" srcset=\"https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/landingpage_plattformen_2000x707-1536x542-1-e1732609684578.png 655w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/landingpage_plattformen_2000x707-1536x542-1-e1732609684578-300x202.png 300w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/landingpage_plattformen_2000x707-1536x542-1-e1732609684578-18x12.png 18w, https:\/\/www.basyskom.de\/wp-content\/uploads\/2024\/11\/landingpage_plattformen_2000x707-1536x542-1-e1732609684578-560x376.png 560w\" sizes=\"(max-width: 655px) 100vw, 655px\">\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Hardware Plattforms of UX-Gruppe<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f9e46c elementor-widget elementor-widget-heading\" data-id=\"7f9e46c\" 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<h1 class=\"elementor-heading-title elementor-size-default\">Why Flutter for Embedded Hardware?<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-114e6ec elementor-widget elementor-widget-text-editor\" data-id=\"114e6ec\" 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\tFlutter&#8217;s ability to deliver responsive user interfaces on different mobile platforms makes it also interesting for embedded hardware. Particularly in situations where an advanced mobile application is required and you want to leverage code and functionality of the embedded HMI to your mobile App. Given the right system architecture (which we will show in <span style=\"text-decoration: underline;\"><strong>part two<\/strong><\/span> of this article) Flutter allows you to run your unmodified embedded HMI directly on a mobile device. This remarkably reduces development efforts and increases development speed compared with other solutions, like native mobile platform development.\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-e872d99 elementor-widget elementor-widget-text-editor\" data-id=\"e872d99\" 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\tSince we, as a Qt Service Partner, are traditionally using frameworks like Qt\/QML and web technologies for embedded UI development, you may wonder why we show you Flutter as an alternative option. The reason is simple. We offer <em>technology-agnostic consulting<\/em> to our customers and while Qt\/QML is a great fit in areas like Desktop and embedded HMI development, it does not provide the same level of build-in out-of-the-box support for mobile platforms that Flutter does.\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-b036039 elementor-widget elementor-widget-text-editor\" data-id=\"b036039\" 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\tOn mobile platforms, Qt\/QML sometimes lacks integrated support for native mobile features, requiring you to write Java or Objective C Code for features that Flutter inherently supports. Also, keeping track with the mobile platform evolution can sometimes be a hurdle with Qt.\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-ac7fe5b elementor-widget elementor-widget-text-editor\" data-id=\"ac7fe5b\" 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\tTechnology-agnostic means showing you the goods and the bads of an approach. Keep in mind that Flutter offers an unified and natural approach on mobile platforms, but it is this mobile origin that lets it fall behind when it comes to directly integrating with embedded hardware and (existing) middleware, such as GPIOs, specialized features and (existing) libraries. Especially comparing with Qt\/QML.\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-0635036 elementor-widget elementor-widget-text-editor\" data-id=\"0635036\" 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\tThis is mostly due to the point that, while a framework like Qt\/QML is written in C++ and <span class=\"inline-comment-marker\" data-ref=\"93a18bac-be91-497d-a710-facab53497b7\">therefor<\/span> <span class=\"inline-comment-marker\" data-ref=\"258012c0-5af0-47d0-9f3c-a286b933b4ff\">naturally<\/span> integrates with other C\/C++ libraries, Flutter uses Dart and requires you to either provide hardware features via something called &#8220;<strong>Embedder<\/strong>&#8221; or via plugins that utilize the <a href=\"https:\/\/www.basyskom.de\/en\/flutter-ffi-plugins-how-to-use-open62541-in-flutter-applications\/\" target=\"_blank\" rel=\"noopener\">Dart:ffi C-Interface<\/a>.\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-3c894b6 elementor-widget elementor-widget-text-editor\" data-id=\"3c894b6\" 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\tWe will show you in part two how to turn run Flutter on embedded without compromising its cross-platform capabilities.\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-71bbe06 elementor-widget elementor-widget-heading\" data-id=\"71bbe06\" 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\">Licensing<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a63a243 elementor-widget elementor-widget-text-editor\" data-id=\"a63a243\" 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\tBeside the technical points mentioned, it is important to also consider the licensing differences on Qt\/QML and Flutter: Qt is available under GPL, LGPL, and commercial licenses. For pure embedded projects, Qt is typically either used under the LGPLv3 or the commercial license. The LGPLv3 license allows you to use the library in your application without mandating that you disclose your application&#8217;s source code, as long as you comply with its <a href=\"https:\/\/www.gnu.org\/licenses\/lgpl-3.0.de.html\" target=\"_blank\" rel=\"nofollow noopener\">requirements<\/a>. These requirements include (see 4.d.0) permitting users to modify or replace the LGPL-licensed library. You need to ensure your users can relink the library with your application. For mobile platforms, specifically iOS, these LGPLv3 obligations may show to be too impractical for most. Even though it is technical feasible, there is at least a financial barrier to be considered, as the users need access to macOS and development tools in order to be able to fullfil their right.\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-693de2e elementor-widget elementor-widget-text-editor\" data-id=\"693de2e\" 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\tEffectively this means: If you were to use Qt under the LGPLv3 license for an iOS application, you would need to ensure that users can relink or replace Qt independently, which is generally complicated (while technically possible) due to iOS&#8217;s restrictive environment. Therefore, a commercial license for Qt becomes the more practical approach. Note that a commercial Qt license cannot soly restriced to a platform and you cannot mix open-source and commercial Qt. If you decide for a commercial approach, this means, at the time of writing this text, Qt may also charge a license fee per sold embedded device, as well as per developer year. Those are costs that should be considered when selecting a technology for an embedded HMI that shall also run on mobile platforms.\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-eddc220 elementor-widget elementor-widget-text-editor\" data-id=\"eddc220\" 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\tFlutter, on the other hand, is offered under a permissive open-source license (BSD 3-Clause), making it free to use for commercial projects. The permissive nature of this license provides significant development flexibility, allowing proprietary modifications and integration without the obligation to open-source the entire application. But keep in mind that a BSD 3-Clause license still does have some obligations, such as the requirement to include a copyright notice in distributions and the absence of liability and warranty assurances. But those requirements are much simpler and cheaper to fulfill than the demands of an LGPL on iOS.\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-89a1ec1 elementor-widget elementor-widget-heading\" data-id=\"89a1ec1\" 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\">What about Flock?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49fbd8d elementor-widget elementor-widget-text-editor\" data-id=\"49fbd8d\" 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>On October 27, 2024 the Flutter Foundation <a href=\"https:\/\/getflocked.dev\/blog\/posts\/we-are-forking-flutter-this-is-why\/\" target=\"_blank\" rel=\"nofollow noopener\">announced<\/a> that it is forking Flutter due to limitations in labor and responsiveness within Google\u2019s team. The fork, called Flock, aims at prioritizing fixes, features, and support that the Flutter team cannot currently address. Flock intends to bring faster reviews, facilitate contributor involvement, and enable community-led development without depending on Flutter\u2019s timelines. When you read their blog article, you may wonder how this will effect Flutter on embedded?<\/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-b82ddcf elementor-widget elementor-widget-text-editor\" data-id=\"b82ddcf\" 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 simple answer is, we can&#8217;t tell yet. One possible outcome is that forking Flutter to create Flock leads to faster development cycles, more community-driven features, and potentially less dependency on Google&#8217;s control over Flutter. For us as developers, this might mean choosing between different focuses, like Google&#8217;s roadmap versus Flock&#8217;s community priorities.\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-f218fb7 elementor-widget elementor-widget-text-editor\" data-id=\"f218fb7\" 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>Historically, forks in the open source world are nothing unusual and they often showed that successful forks can push innovation and address user needs faster. However, they also bear the risk to fragment the developer ecosystem, sometimes leading to compatibility and support challenges. To discuss Flock, we will have to wait and see how it evolves in the coming months and years and see if it get&#8217;s enough momentum and community support to fly.<\/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-78bce59 elementor-widget elementor-widget-heading\" data-id=\"78bce59\" 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<h1 class=\"elementor-heading-title elementor-size-default\">Comparing Flutter and Qt<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cc3f208 wpr-data-table-type-custom wpr-table-align-items-left elementor-widget elementor-widget-wpr-data-table\" data-id=\"cc3f208\" 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=\"yes\" data-entry-info=\"no\" data-rows-per-page=\"\">\n\n\t\t\n\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\">TECHNOLOGY<\/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\">MOBILE SUPPORT<\/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\">DESKTOP SUPPORT<\/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\">WEB SUPPORT<\/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\">EMBEDDED SUPPORT<\/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-802b137\" 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\">LICENSE<\/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-a3c2b6e\" 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\">LTS<\/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-5d8f018\" 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\">ECOSYSTEM (Marketplace\/Package Management)<\/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-4be26ec\" 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\">Tooling<\/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\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\tStrong\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\tDepends on the Platform. Maintained, but no active development from Google. <br>\n\n\u2705 Multi-Window Support <br>\n\n\u2705 Integration in OS Notification System <br>\n\n\u2705 Clipboard support <br>\n\n\u2705 Native Dialog Support (Filebrowser) <br>\n\n\u2705 Out of Window drawing (i.e. dropdown overlays) <br>\n\n\u2705 Systemtray support <br>\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\tStrong\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\tDepends on the Embedder.\nAdapting embedded hardware\nand middleware might be a challenge\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-f9ba22a 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\tBSD 3-Clause\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-b877b6a 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\t\u274c No LTS <br>\n\nNo official commercial support\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-2a25530 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\tStrong, Commercial and open-source offerings in the ecosystem available. Several package management offerings available.\nFlutter may not deliver all features you need, where the Ecosystem can then provide those missing features.\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-bb24be8 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\tHot-Reload improves development speed <br><br>\nGood integration in Visual Studio Code\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\tQML (Qt6)\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\tFor commercial non open-source projects, \nthis requires a commercial license.<br><br>\n\nRequires writing specific code\nin Java \/ ObjectiveC to support\nadvanced native features. \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\tStrong<br>\n\n\u2705 (since Qt6.8) Multi-Window Support <br>\n\n\u2753 Integration in OS Notification System depends on OS<br>\n\n\u2705 Clipboard support<br>\n\n\u2753  Native Dialog Support (Filebrowser) depends on Qt configuration<br>\n\n\u2705 (since Qt6.8) Out of Window drawing (i.e. dropdown overlays)<br>\n\n\u2705 Systemtray support<br>\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\t<p>Using Emscripten<\/p>\n\n<p>WASM (commercial only) <\/p>\n\n<p>limited<\/p>\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\tStrong\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-d3d8902 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\tGPLv3\nLGPLv3\nCommercial\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-9c14b87 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\t\u2705 5 Years of Updates in LTS Versions. Commercial Support available.\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-2371e4b 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\tAvailable Eco-System but not as strong and diverse compared to Flutter. Qt delivers a wide range of built in functionality (sometimes commercial).\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-b57e74d 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\tGood integration in Qt-Creator, specific tooling and linting\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-074d854 elementor-widget elementor-widget-heading\" data-id=\"074d854\" 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<h1 class=\"elementor-heading-title elementor-size-default\">Conclusion of Part One<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-109b255 elementor-widget elementor-widget-text-editor\" data-id=\"109b255\" 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\tWhen your project requires integrating both mobile and embedded systems into a cohesive solution, using Flutter might be a possible approach. This is because of the mobile application roots of Flutter and its permissive license, which can help to reduce development cost in the short-term and per-device cost in the long-term. In general Flutter&#8217;s cross-platform capabilities, unified codebase and strong ecosystem can simplify and speed up your development. Overall even for a pure embedded application that may never require a mobile app, it might be a reasonable choice to use Flutter, but that then depends highly on the individual technical requirements. \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-8e62503 elementor-widget elementor-widget-text-editor\" data-id=\"8e62503\" 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>If you are unsure which framework works best for your case, feel welcome to <a href=\"https:\/\/www.basyskom.de\/en\/#get-in-touch\" target=\"_blank\" rel=\"noopener\">contact us<\/a> and get a first assessment from our experts. For those who are curious on the technical part, look for part two.<\/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-2d0d0f1 elementor-widget elementor-widget-text-editor\" data-id=\"2d0d0f1\" 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\/how-does-flutter-work-on-embedded\/\">Continue reading with part 2.<\/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>Flutter, originally designed for mobile applications, has evolved to support a wide range of platforms, including embedded Linux. In this article, we explore why Flutter might be a viable choice for your embedded project, weigh its pros and cons, and compare it to Qt to see if it stands as a strong alternative.<\/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":[1,2,803,802],"tags":[223],"class_list":["post-11474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","category-blog","category-flutter","category-newsletter-2025-01","tag-flutter"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts\/11474","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=11474"}],"version-history":[{"count":76,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts\/11474\/revisions"}],"predecessor-version":[{"id":11646,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/posts\/11474\/revisions\/11646"}],"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=11474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/categories?post=11474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.basyskom.de\/en\/wp-json\/wp\/v2\/tags?post=11474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}