{"id":25,"date":"2024-02-09T06:55:54","date_gmt":"2024-02-09T06:55:54","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/anismachinations\/?p=25"},"modified":"2024-02-09T06:55:54","modified_gmt":"2024-02-09T06:55:54","slug":"flutter-pros-and-cons","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/anismachinations\/2024\/02\/09\/flutter-pros-and-cons\/","title":{"rendered":"Flutter Pros and Cons"},"content":{"rendered":"\n<p>The main technology I am using on the Forest Wellness Checkup App is Flutter. <a href=\"https:\/\/docs.flutter.dev\/\" data-type=\"URL\" data-id=\"https:\/\/docs.flutter.dev\/\">Flutter<\/a> is a framework for developing cross-platform applications using the <a href=\"https:\/\/dart.dev\/\" data-type=\"URL\" data-id=\"https:\/\/dart.dev\/\">Dart programming language<\/a>.<\/p>\n\n\n\n<p>Flutter has clear and concise documentation. There are a variety of <a href=\"https:\/\/docs.flutter.dev\/codelabs\" data-type=\"URL\" data-id=\"https:\/\/docs.flutter.dev\/codelabs\">Codelabs<\/a> that teach UI, debugging, and developement on different platforms. I particularly enjoyed &#8220;<a href=\"http:\/\/www.youtube.com\/watch?v=8sAyPDLorek\" data-type=\"URL\" data-id=\"http:\/\/www.youtube.com\/watch?v=8sAyPDLorek\">Building your first Flutter Ap<\/a>p&#8221; by Filip Hracek.<\/p>\n\n\n\n<p>I struggled to learn <a href=\"https:\/\/react.dev\/\">React<\/a>, but have picked up Flutter more quickly due to my familiarity with React. Flutter and React both use &#8220;Declarative UI&#8221; in terms of State management (<a href=\"https:\/\/seanconnolly.dev\/is-flutter-similar-to-react\">Connolly<\/a>). Flutter widgets are similar to React components (<a href=\"https:\/\/seanconnolly.dev\/is-flutter-similar-to-react\">Connolly<\/a>).<\/p>\n\n\n\n<p>To improve performance on multiple operating systems, Flutter creates widgets to replace the OS UI widgets (<a href=\"https:\/\/docs.flutter.dev\/resources\/architectural-overview#rendering-native-controls-in-a-flutter-app\">Google<\/a>). The Flutter\/dart code can be compiled into native code (<a href=\"https:\/\/docs.flutter.dev\/resources\/architectural-overview#rendering-native-controls-in-a-flutter-app\">Google)<\/a>. However, this makes it more complicated to incorporate OS widgets into a Flutter application. You need to use a platform view widget to embed the native controls (<a href=\"https:\/\/docs.flutter.dev\/resources\/architectural-overview#rendering-native-controls-in-a-flutter-app\">Google<\/a>).<\/p>\n\n\n\n<p>Unfortunately, we want to include handwriting-to-text input in our application. On iOS, Apple Scribble will automatically allow stylus input in Flutter text fields (<a href=\"https:\/\/www.youtube.com\/watch?v=-ZVNC64jA8k\">Koko<\/a>). There is an issue on Flutter&#8217;s GitHub requesting additional Android support for this feature, but there are no updates (<a href=\"https:\/\/github.com\/flutter\/flutter\/issues\/115607\">McCandless<\/a>).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>References<\/strong><\/p>\n\n\n\n<p>Connolly, Sean &#8220;Is Flutter similar to React?&#8221; <a href=\"https:\/\/seanconnolly.dev\/is-flutter-similar-to-react\">https:\/\/seanconnolly.dev\/is-flutter-similar-to-react<\/a><\/p>\n\n\n\n<p>Google &#8220;Flutter architectural overview&#8221; Flutter Documentation,<br><a href=\"https:\/\/docs.flutter.dev\/resources\/architectural-overview#rendering-native-controls-in-a-flutter-app\">https:\/\/docs.flutter.dev\/resources\/architectural-overview#rendering-native-controls-in-a-flutter-app<\/a><\/p>\n\n\n\n<p>Hracek, Filip (March 1, 2023) &#8220;Building your first Flutter App &#8211; with a Codelab!&#8221; Google, <a href=\"http:\/\/www.youtube.com\/watch?v=8sAyPDLorek\" data-type=\"URL\" data-id=\"www.youtube.com\/watch?v=8sAyPDLorek\" target=\"_blank\" rel=\"noreferrer noopener\">www.youtube.com\/watch?v=8sAyPDLorek<\/a><\/p>\n\n\n\n<p>Koko, Mitch (Sep 3, 2022) &#8220;FLUTTER \u2665 SCRIBBLE = Handwriting to Text!&#8221;<br><a href=\"https:\/\/www.youtube.com\/watch?v=-ZVNC64jA8k\">https:\/\/www.youtube.com\/watch?v=-ZVNC64jA8k<\/a><\/p>\n\n\n\n<p>McCandless, Justin (Nov 17, 2022) &#8220;Support stylus handwriting input on Android&#8221; GitHub,<br><a href=\"https:\/\/github.com\/flutter\/flutter\/issues\/115607\">https:\/\/github.com\/flutter\/flutter\/issues\/115607<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The main technology I am using on the Forest Wellness Checkup App is Flutter. Flutter is a framework for developing cross-platform applications using the Dart programming language. Flutter has clear and concise documentation. There are a variety of Codelabs that teach UI, debugging, and developement on different platforms. I particularly enjoyed &#8220;Building your first Flutter [&hellip;]<\/p>\n","protected":false},"author":14056,"featured_media":27,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-25","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/users\/14056"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":28,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts\/25\/revisions\/28"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/media\/27"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}