[{"data":1,"prerenderedAt":1037},["ShallowReactive",2],{"tag-flutter":3},{"tag":4,"articles":24},{"id":5,"title":6,"body":7,"description":14,"extension":15,"img":16,"meta":17,"name":18,"navigation":19,"path":20,"seo":21,"stem":22,"__hash__":23},"tags\u002Ftags\u002Fflutter.md","Flutter",{"type":8,"value":9,"toc":10},"minimark",[],{"title":11,"searchDepth":12,"depth":12,"links":13},"",2,[],"Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.","md","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"flutter",true,"\u002Ftags\u002Fflutter",{"description":14},"tags\u002Fflutter","9lY6efG0wl_9qbC_N3ABqlg6pCSWlTRgJqo_PHk8rUM",[25,191,290,718,791,824,966],{"id":26,"title":27,"author":28,"body":29,"createdAt":182,"description":183,"extension":15,"img":184,"meta":185,"navigation":19,"path":186,"seo":187,"stem":188,"tags":189,"updatedAt":182,"__hash__":190},"articles\u002Farticles\u002F2023_flutter-update.md","2023 In Flutter","[object Object]",{"type":8,"value":30,"toc":173},[31,36,40,45,48,51,55,58,93,97,100,132,135,139,142,145,170],[32,33,35],"h2",{"id":34},"flutter-a-rising-star-in-mobile-development","Flutter: A Rising Star in Mobile Development",[37,38,39],"p",{},"If you are looking for a fast, productive, and flexible way to build beautiful mobile apps for iOS and Android, you might want to consider Flutter. Flutter is an open-source UI toolkit created by Google that enables developers to create native-looking apps from a single codebase. In this post, we will explore some of the benefits and features of Flutter, as well as some of the amazing examples of Flutter apps in the market.",[41,42,44],"h3",{"id":43},"what-is-flutter","What is Flutter?",[37,46,47],{},"Flutter is a relatively new framework that was introduced by Google in 2018. It is based on Dart, a language optimized for fast apps on any platform. Flutter uses a declarative approach to build UI components, which are called widgets. Widgets can be composed together to create complex layouts and animations. Widgets are also reactive, meaning they can update their state based on user input or data changes.",[37,49,50],{},"Flutter compiles its code to native machine code for iOS and Android, as well as JavaScript for web and desktop applications. This means that Flutter apps can run with high performance and smoothness on any device. Flutter also supports hot reload and hot restart features, which allow developers to see changes almost instantly without losing state or restarting the app.",[41,52,54],{"id":53},"why-choose-flutter","Why Choose Flutter?",[37,56,57],{},"Flutter offers many advantages over other mobile development frameworks, such as:",[59,60,61,69,75,81,87],"ul",{},[62,63,64,68],"li",{},[65,66,67],"strong",{},"Cross-platform:"," You can target multiple platforms with one codebase, reducing development time and cost.",[62,70,71,74],{},[65,72,73],{},"Native-like:"," You can create apps that look and feel natural on any device, with full access to native features and services.",[62,76,77,80],{},[65,78,79],{},"Customizable:"," You have full control over every pixel of your app, with the ability to create custom widgets and themes.",[62,82,83,86],{},[65,84,85],{},"Productive:"," You can build and iterate quickly with hot reload and hot restart, as well as use powerful developer tools like Flutter DevTools and DartPad.",[62,88,89,92],{},[65,90,91],{},"Ecosystem:"," You can leverage a rich set of packages and plugins from pub.dev, as well as join a vibrant community of developers and supporters.",[41,94,96],{"id":95},"examples-of-flutter-apps","Examples of Flutter Apps",[37,98,99],{},"Flutter has been used by many well-known brands and startups around the world to create stunning mobile apps. Here are some examples:",[59,101,102,108,114,120,126],{},[62,103,104,107],{},[65,105,106],{},"Google Pay:"," Google's digital wallet app uses Flutter to provide a seamless payment experience across devices and regions.",[62,109,110,113],{},[65,111,112],{},"Reflectly:"," A personal journaling app that uses AI to help users improve their mental health. Reflectly uses Flutter to design unique digital experiences with animations and transitions.",[62,115,116,119],{},[65,117,118],{},"Nubank:"," A leading fintech company in Latin America that offers digital banking services. Nubank uses Flutter to scale its app with integrity and maintainability.",[62,121,122,125],{},[65,123,124],{},"Hamilton:"," The official app of the hit Broadway musical that allows fans to access exclusive content, trivia games, merchandise, and more. Hamilton uses Flutter to take the theater experience beyond the stage.",[62,127,128,131],{},[65,129,130],{},"Dream11:"," India's largest fantasy sports platform that supports over 50 million users. Dream11 uses Flutter to deliver high-performance gaming experiences with rich graphics.",[37,133,134],{},"These are just some of the many examples of how Flutter can help you create amazing mobile apps for any screen.",[41,136,138],{"id":137},"conclusion","Conclusion",[37,140,141],{},"Flutter is a rising star in mobile development that offers many benefits for developers and users alike. It is fast, productive, flexible, cross-platform,\nnative-like, and customizable. It also has a growing ecosystem of packages, plugins, and community support.",[37,143,144],{},"If you want to learn more about Flutter, you can visit flutter.dev to get started or check out some of the resources below:",[59,146,147,156,163],{},[62,148,149],{},[150,151,155],"a",{"href":152,"rel":153},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0gA68g269NA",[154],"nofollow","Learn how to build platform adaptive apps",[62,157,158],{},[150,159,162],{"href":160,"rel":161},"https:\u002F\u002Fflutter.dev\u002Fdocs\u002Fcookbook",[154],"Reference code examples and sample applications",[62,164,165],{},[150,166,169],{"href":167,"rel":168},"https:\u002F\u002Fflutter.dev\u002Froadmap",[154],"See where we’re going and how to be involved",[37,171,172],{},"We hope this post has given you some insights into why Flutter is popular in mobile development and how it can help you bring your app idea to life.",{"title":11,"searchDepth":12,"depth":12,"links":174},[175],{"id":34,"depth":12,"text":35,"children":176},[177,179,180,181],{"id":43,"depth":178,"text":44},3,{"id":53,"depth":178,"text":54},{"id":95,"depth":178,"text":96},{"id":137,"depth":178,"text":138},"2023-03-20","Current state of Google Flutter mobile application development","\u002Farticles\u002Fimages\u002Fflutter_small.png",{},"\u002Farticles\u002F2023_flutter-update",{"title":27,"description":183},"articles\u002F2023_flutter-update",[18],"5jAliBWInaB24ApOYvmWOjWXsOqTtg3yVPQOcU9lY50",{"id":192,"title":193,"author":28,"body":194,"createdAt":280,"description":281,"extension":15,"img":282,"meta":283,"navigation":19,"path":284,"seo":285,"stem":286,"tags":287,"updatedAt":280,"__hash__":289},"articles\u002Farticles\u002Fandroid-emulator-playstore.md","How to install Google Play - Android Emulator",{"type":8,"value":195,"toc":278},[196,199],[37,197,198],{},"Working more and more with Android Emulators I am finding not all images have Play Store installed.  The following are 3 easy steps that I have used to get Google Play Store installed and ready upon creation of new emulator.",[200,201,202,241,266],"ol",{},[62,203,204,205,208,212,215,217,218,220,221,223,224,226,227,229,230,232,233,235,238,240],{},"Create Virtual Device.  Here I am selecting Nexus 5 and setting some default parameters that have worked well for me.",[206,207],"br",{},[209,210],"img",{"alt":11,"src":211},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore1.png",[209,213],{"alt":11,"src":214},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore2.png",[206,216],{},"Emulated Performance",[206,219],{},"\nGraphics: Hardware - GLES 2.0",[206,222],{},"RAM 4096",[206,225],{},"\nVM Heap 512",[206,228],{},"\nInternal Storage 16024",[206,231],{},"\nStudio Managed 4096",[206,234],{},[209,236],{"alt":11,"src":237},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore3.png",[206,239],{},"Finish",[62,242,243,246,247,249,252,253,255,257,259,260,262,265],{},[65,244,245],{},"BEFORE"," opening the image do the following.  Open the host directory on the file system.  For me this was C:\\Users\\{username}\\.android\\avd\\Pixel_5_API_30.avd and find the config.ini.  At this point there should be very few files in this directory.  OPEN config.ini",[206,248],{},[65,250,251],{},"Change"," \"PlayStore.enabled=false\" to \"PlayStore.enabled=true\"",[206,254],{},[65,256,251],{},[206,258],{},"\nimage.sysdir.1 = system-images\\android-30\\google_apis\\x86\\",[206,261],{},[65,263,264],{},"TO","\nimage.sysdir.1 = system-images\\android-30\\google_apis_playstore\\x86\\",[62,267,268,269,272,273,275],{},"Return to Android Virtual Device manager and start the image.  At this point, there will be no indication that the Play Store is installed on this device however after starting up it will display correctly.  ",[65,270,271],{},"Start the emulator",".",[206,274],{},[209,276],{"alt":11,"src":277},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore4.png",{"title":11,"searchDepth":12,"depth":12,"links":279},[],"2022-03-27","When working with Android emulators not all come pre-installed with the PlayStore installed.  The following are steps to enable PlayStore on startup.","\u002Farticles\u002Fimages\u002Fyourvirtualdevices.png",{},"\u002Farticles\u002Fandroid-emulator-playstore",{"title":193,"description":281},"articles\u002Fandroid-emulator-playstore",[288,18],"android","TK1c3u6kKnpGHVSJSDz-765FoWfNMQ8t-QwTaF-h5vQ",{"id":291,"title":292,"author":28,"body":293,"createdAt":709,"description":710,"extension":15,"img":184,"meta":711,"navigation":19,"path":712,"seo":713,"stem":714,"tags":715,"updatedAt":716,"__hash__":717},"articles\u002Farticles\u002Fflutter-update28.md","Flutter Change Android minSdkVersion After Update",{"type":8,"value":294,"toc":707},[295,298,308,311,318,324,329,335,345,648,654,700,703],[37,296,297],{},"When creating a flutter app the content of android\\app\\build.gradle is the following.",[299,300,305],"pre",{"className":301,"code":303,"language":304},[302],"language-text","defaultConfig {\n\u002F\u002F TODO: Specify your own unique Application ID (https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002Fbuild\u002Fapplication-id.html).  \napplicationId \"com.example.app_name\"  \nminSdkVersion flutter.minSdkVersion  \ntargetSdkVersion flutter.targetSdkVersion  \nversionCode flutterVersionCode.toInteger()  \nversionName flutterVersionName\n}  \n","text",[306,307,303],"code",{"__ignoreMap":11},[37,309,310],{},"Where do these values come from?",[37,312,313,314,317],{},"flutter.minSdkVersion value is coming from your installed flutter SDK's flutter.gradle file which is located inside ",[306,315,316],{},"your_flutter_sdk\u002Fpackages\u002Fflutter_tools\u002Fgradle\u002Fflutter.gradle","\nRight now Jan 2023 it looks like...",[299,319,322],{"className":320,"code":321,"language":304},[302],"\u002F** Sets the compileSdkVersion used by default in Flutter app projects. *\u002F\nstatic int compileSdkVersion = 31\n\n\u002F** Sets the minSdkVersion used by default in Flutter app projects. *\u002F\nstatic int minSdkVersion = 16\n\n\u002F** Sets the targetSdkVersion used by default in Flutter app projects. *\u002F\nstatic int targetSdkVersion = 31\n\n\u002F**\n * Sets the ndkVersion used by default in Flutter app projects.\n * Chosen as default version of the AGP version below.\n *\u002F\nstatic String ndkVersion = \"21.1.6352462\"\n",[306,323,321],{"__ignoreMap":11},[37,325,326],{},[65,327,328],{},"Moving forward, how do we change these defaults?",[37,330,331,332,334],{},"With the 2.8 release where the minimum and target SDK versions is set\u002Festablished has changed within the Flutter project.",[206,333],{},"\nHow to change Android minSdkVersion in flutter project?  There are a couple approaches provided below.",[37,336,337,340,341,344],{},[65,338,339],{},"Approach 1."," You can change the minSdkVersion directly in the file Project_Name\u002Fandroid\u002Fapp\u002F",[65,342,343],{},"build.gradle"," , defaultconfig",[299,346,349],{"className":347,"code":348,"language":18,"meta":11,"style":11},"language-flutter shiki shiki-themes github-light github-dark","    defaultConfig {\n    \u002F\u002F TODO: Specify your own unique Application ID (https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002Fbuild\u002Fapplication-id.html).\n    applicationId \"com.example.projectname\"\n    minSdkVersion 16 \u002F\u002F \u003C--- There\n    targetSdkVersion 27\n    versionCode 1\n    versionName \"1.0\"\n    testInstrumentationRunner \"android.support.test.runner.AndroidJUnitRunner\"}\n```\n\n\n\n**Approach 2.** The more appropriate way and maintainable approach is a little more involved however I would recommend.\n\nFor clarity, I will provide what the build.gradle looked like before and after the 2.8 update.\n\n```flutter\n    android {\n        compileSdkVersion 30\n    \n    defaultConfig {\n        applicationId \"com.example.app\"\n        minSdkVersion 21\n        targetSdkVersion 30\n        versionCode flutterVersionCode.toInteger()\n        versionName flutterVersionName\n        multiDexEnabled true\n    }        \n```\n\nAfter updating to Flutter 2.8:\n\n```flutter\n    android {\n        compileSdkVersion flutter.compileSdkVersion\n    \n    defaultConfig {\n            applicationId \"com.example.app\"\n            minSdkVersion flutter.minSdkVersion\n            targetSdkVersion flutter.targetSdkVersion\n            versionCode flutterVersionCode.toInteger()\n            versionName flutterVersionName\n        }\n``` \n\nSo here are the changes so that you can maintain the version(s) within your project.  \n\n**Update the android -> local.properties** adding the following 3 lines.  This will be where you set the min and target versions going forward.\n```flutter\nflutter.minSdkVersion=21\nflutter.targetSdkVersion=30\nflutter.compileSdkVersion=30\n",[306,350,351,359,364,369,375,381,387,393,399,405,411,416,421,427,432,438,443,449,455,461,467,472,478,484,490,496,502,508,514,519,524,530,535,540,545,551,556,561,567,573,579,585,591,597,603,608,614,619,625,630,636,642],{"__ignoreMap":11},[352,353,356],"span",{"class":354,"line":355},"line",1,[352,357,358],{},"    defaultConfig {\n",[352,360,361],{"class":354,"line":12},[352,362,363],{},"    \u002F\u002F TODO: Specify your own unique Application ID (https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002Fbuild\u002Fapplication-id.html).\n",[352,365,366],{"class":354,"line":178},[352,367,368],{},"    applicationId \"com.example.projectname\"\n",[352,370,372],{"class":354,"line":371},4,[352,373,374],{},"    minSdkVersion 16 \u002F\u002F \u003C--- There\n",[352,376,378],{"class":354,"line":377},5,[352,379,380],{},"    targetSdkVersion 27\n",[352,382,384],{"class":354,"line":383},6,[352,385,386],{},"    versionCode 1\n",[352,388,390],{"class":354,"line":389},7,[352,391,392],{},"    versionName \"1.0\"\n",[352,394,396],{"class":354,"line":395},8,[352,397,398],{},"    testInstrumentationRunner \"android.support.test.runner.AndroidJUnitRunner\"}\n",[352,400,402],{"class":354,"line":401},9,[352,403,404],{},"```\n",[352,406,408],{"class":354,"line":407},10,[352,409,410],{"emptyLinePlaceholder":19},"\n",[352,412,414],{"class":354,"line":413},11,[352,415,410],{"emptyLinePlaceholder":19},[352,417,419],{"class":354,"line":418},12,[352,420,410],{"emptyLinePlaceholder":19},[352,422,424],{"class":354,"line":423},13,[352,425,426],{},"**Approach 2.** The more appropriate way and maintainable approach is a little more involved however I would recommend.\n",[352,428,430],{"class":354,"line":429},14,[352,431,410],{"emptyLinePlaceholder":19},[352,433,435],{"class":354,"line":434},15,[352,436,437],{},"For clarity, I will provide what the build.gradle looked like before and after the 2.8 update.\n",[352,439,441],{"class":354,"line":440},16,[352,442,410],{"emptyLinePlaceholder":19},[352,444,446],{"class":354,"line":445},17,[352,447,448],{},"```flutter\n",[352,450,452],{"class":354,"line":451},18,[352,453,454],{},"    android {\n",[352,456,458],{"class":354,"line":457},19,[352,459,460],{},"        compileSdkVersion 30\n",[352,462,464],{"class":354,"line":463},20,[352,465,466],{},"    \n",[352,468,470],{"class":354,"line":469},21,[352,471,358],{},[352,473,475],{"class":354,"line":474},22,[352,476,477],{},"        applicationId \"com.example.app\"\n",[352,479,481],{"class":354,"line":480},23,[352,482,483],{},"        minSdkVersion 21\n",[352,485,487],{"class":354,"line":486},24,[352,488,489],{},"        targetSdkVersion 30\n",[352,491,493],{"class":354,"line":492},25,[352,494,495],{},"        versionCode flutterVersionCode.toInteger()\n",[352,497,499],{"class":354,"line":498},26,[352,500,501],{},"        versionName flutterVersionName\n",[352,503,505],{"class":354,"line":504},27,[352,506,507],{},"        multiDexEnabled true\n",[352,509,511],{"class":354,"line":510},28,[352,512,513],{},"    }        \n",[352,515,517],{"class":354,"line":516},29,[352,518,404],{},[352,520,522],{"class":354,"line":521},30,[352,523,410],{"emptyLinePlaceholder":19},[352,525,527],{"class":354,"line":526},31,[352,528,529],{},"After updating to Flutter 2.8:\n",[352,531,533],{"class":354,"line":532},32,[352,534,410],{"emptyLinePlaceholder":19},[352,536,538],{"class":354,"line":537},33,[352,539,448],{},[352,541,543],{"class":354,"line":542},34,[352,544,454],{},[352,546,548],{"class":354,"line":547},35,[352,549,550],{},"        compileSdkVersion flutter.compileSdkVersion\n",[352,552,554],{"class":354,"line":553},36,[352,555,466],{},[352,557,559],{"class":354,"line":558},37,[352,560,358],{},[352,562,564],{"class":354,"line":563},38,[352,565,566],{},"            applicationId \"com.example.app\"\n",[352,568,570],{"class":354,"line":569},39,[352,571,572],{},"            minSdkVersion flutter.minSdkVersion\n",[352,574,576],{"class":354,"line":575},40,[352,577,578],{},"            targetSdkVersion flutter.targetSdkVersion\n",[352,580,582],{"class":354,"line":581},41,[352,583,584],{},"            versionCode flutterVersionCode.toInteger()\n",[352,586,588],{"class":354,"line":587},42,[352,589,590],{},"            versionName flutterVersionName\n",[352,592,594],{"class":354,"line":593},43,[352,595,596],{},"        }\n",[352,598,600],{"class":354,"line":599},44,[352,601,602],{},"``` \n",[352,604,606],{"class":354,"line":605},45,[352,607,410],{"emptyLinePlaceholder":19},[352,609,611],{"class":354,"line":610},46,[352,612,613],{},"So here are the changes so that you can maintain the version(s) within your project.  \n",[352,615,617],{"class":354,"line":616},47,[352,618,410],{"emptyLinePlaceholder":19},[352,620,622],{"class":354,"line":621},48,[352,623,624],{},"**Update the android -> local.properties** adding the following 3 lines.  This will be where you set the min and target versions going forward.\n",[352,626,628],{"class":354,"line":627},49,[352,629,448],{},[352,631,633],{"class":354,"line":632},50,[352,634,635],{},"flutter.minSdkVersion=21\n",[352,637,639],{"class":354,"line":638},51,[352,640,641],{},"flutter.targetSdkVersion=30\n",[352,643,645],{"class":354,"line":644},52,[352,646,647],{},"flutter.compileSdkVersion=30\n",[37,649,650,653],{},[65,651,652],{},"Add\u002Fmodify to the android\u002Fsrc\u002Fbuild.gradle"," file",[299,655,657],{"className":347,"code":656,"language":18,"meta":11,"style":11},"    android {\n        compileSdkVersion localProperties.getProperty('flutter.compileSdkVersion').toInteger()\n    ...\n    defaultConfig {\n        minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()\n        targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()\n        versionCode flutterVersionCode.toInteger()\n        versionName flutterVersionName\n    }\n",[306,658,659,663,668,673,677,682,687,691,695],{"__ignoreMap":11},[352,660,661],{"class":354,"line":355},[352,662,454],{},[352,664,665],{"class":354,"line":12},[352,666,667],{},"        compileSdkVersion localProperties.getProperty('flutter.compileSdkVersion').toInteger()\n",[352,669,670],{"class":354,"line":178},[352,671,672],{},"    ...\n",[352,674,675],{"class":354,"line":371},[352,676,358],{},[352,678,679],{"class":354,"line":377},[352,680,681],{},"        minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()\n",[352,683,684],{"class":354,"line":383},[352,685,686],{},"        targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()\n",[352,688,689],{"class":354,"line":389},[352,690,495],{},[352,692,693],{"class":354,"line":395},[352,694,501],{},[352,696,697],{"class":354,"line":401},[352,698,699],{},"    }\n",[37,701,702],{},"Keep in mind with this approach going forward you will maintain minimum and target SDK versions within the local.properties file.",[704,705,706],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":11,"searchDepth":12,"depth":12,"links":708},[],"2022-01-17","With the recent 2.8 release how and where the minSdkVersion is specified has changed.  It took a while to figure out, so I thought I would share this recent tip.",{},"\u002Farticles\u002Fflutter-update28",{"title":292,"description":710},"articles\u002Fflutter-update28",[18],"2023-01-01","yIViXfuP1XC3oBwA4eXSe_aiiqi3_lCpBvlr4ZC9lfM",{"id":719,"title":720,"author":28,"body":721,"createdAt":783,"description":784,"extension":15,"img":184,"meta":785,"navigation":19,"path":786,"seo":787,"stem":788,"tags":789,"updatedAt":783,"__hash__":790},"articles\u002Farticles\u002Fflutter-tips2.md","Flutter Tips 2",{"type":8,"value":722,"toc":781},[723,726,779],[37,724,725],{},"Tips and Tricks",[200,727,728,742,765,777],{},[62,729,730,731,733,736,738,739,741],{},"Create application icons via online resource for Android and IOS platforms",[206,732],{},[209,734],{"alt":11,"src":735},"\u002Farticles\u002Fimages\u002Fappicongenerator.png",[206,737],{},"android\u002Fapp\u002Fsrc\u002Fmain\u002Fres (copy all midmap)",[206,740],{},"ios\u002Frunner\u002Fassets.xcassets (copy all files to this xcassets from the download from appicongenerator tool)",[62,743,744,745],{},"How can I remove the Flutter debug banner?",[299,746,748],{"className":347,"code":747,"language":18,"meta":11,"style":11},"MaterialApp(\n  debugShowCheckedModeBanner: false,\n) \n",[306,749,750,755,760],{"__ignoreMap":11},[352,751,752],{"class":354,"line":355},[352,753,754],{},"MaterialApp(\n",[352,756,757],{"class":354,"line":12},[352,758,759],{},"  debugShowCheckedModeBanner: false,\n",[352,761,762],{"class":354,"line":178},[352,763,764],{},")\n",[62,766,767,768],{},"Resources",[59,769,770],{},[62,771,772],{},[150,773,776],{"href":774,"target":775},"https:\u002F\u002Fopenweathermap.org\u002F","_blank","OpenWeather",[62,778],{},[704,780,706],{},{"title":11,"searchDepth":12,"depth":12,"links":782},[],"2021-12-07","Series of tips and tricks related to Flutter mobile platform from Google",{},"\u002Farticles\u002Fflutter-tips2",{"title":720,"description":784},"articles\u002Fflutter-tips2",[18],"Pu3cp_L2QtZXyVxsa0SJsYa1RZNP3Kc1PoNk_f_Oq2o",{"id":792,"title":793,"author":28,"body":794,"createdAt":816,"description":817,"extension":15,"img":184,"meta":818,"navigation":19,"path":819,"seo":820,"stem":821,"tags":822,"updatedAt":816,"__hash__":823},"articles\u002Farticles\u002Fflutter-androidsdk.md","Android SDK Manage",{"type":8,"value":795,"toc":814},[796,803,806,811],[37,797,798,799],{},"If running Flutter Doctor and receiving ",[800,801,802],"em",{},"\"Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed to resolve this.\"",[37,804,805],{},"Open up Android Studio - Tool SDK Manager - Android SDK and note also the SDK Tools tab where addition installs can be selected as well as \"Android SDK Command-line Tools\"",[37,807,808],{},[209,809],{"alt":11,"src":810},"\u002Farticles\u002Fimages\u002Fandroidstudio_android_commandlinetools.png",[37,812,813],{},"Note also here you can view your Android SDK Location: C:\\Users{username}\\AppData\\Local\\Android\\Sdk",{"title":11,"searchDepth":12,"depth":12,"links":815},[],"2021-12-06","Windows - Use Android Studio to manaage Android Studio Installation",{},"\u002Farticles\u002Fflutter-androidsdk",{"title":793,"description":817},"articles\u002Fflutter-androidsdk",[18,288],"lgLzSiWzrJuDfmQ3vNfpd-WnicLBZPSpOs_OpW4y22Y",{"id":825,"title":826,"author":28,"body":827,"createdAt":959,"description":784,"extension":15,"img":184,"meta":960,"navigation":19,"path":961,"seo":962,"stem":963,"tags":964,"updatedAt":959,"__hash__":965},"articles\u002Farticles\u002Fflutter-tips1.md","Flutter Tips 1",{"type":8,"value":828,"toc":957},[829,831],[37,830,725],{},[200,832,833,843,862,868,934,937,951],{},[62,834,730,835,837,839,738,841,741],{},[206,836],{},[209,838],{"alt":11,"src":735},[206,840],{},[206,842],{},[62,844,845,846],{},"Android recently starting putting round images around your uploaded icon.  If you want to modify the           uploaded icon you can manipulate with Android Studio (right clicking on android\u002Fapp\u002Fsrc\u002Fmain\u002Fres folder).      See option New Image Asset? If you do not (like me), I had to perform the following steps in order to see      this option.",[59,847,848,851,854],{},[62,849,850],{},"Close Android Studio (for my Flutter project)    then reopen the Android folder",[62,852,853],{},"Options were available to update Gradle (in my case from 4.x to 7.x), I chose yes.",[62,855,856,857,859],{},"Once finished this update, New Image Asset was option when I right clicked on the res folder (as a test I returned to my parent Flutter parent folder but did not have this option once again)  So for me to see this Image Asset option I had to open with Android Studio the Android folder directly within my Flutter project.",[206,858],{},[209,860],{"alt":11,"src":861},"\u002Farticles\u002Fimages\u002Fflutter_tip1_newimageasset.png",[62,863,864,865],{},"Use Android Studio Image Asset to resize icon's as desired to fit or fill the Android square, using the Scaling - Resize option in the dialog window.\n",[209,866],{"alt":11,"src":867},"\u002Farticles\u002Fimages\u002Fandroidstudio_imageasset.png",[62,869,870,871],{},"Developer resources",[59,872,873,879,885,891,897,903,909,915,922,928],{},[62,874,875],{},[150,876,877],{"href":877,"rel":878},"https:\u002F\u002Ficons8.com",[154],[62,880,881],{},[150,882,883],{"href":883,"rel":884},"https:\u002F\u002Fvecteezy.com",[154],[62,886,887],{},[150,888,889],{"href":889,"rel":890},"https:\u002F\u002Fappicon.co\u002F",[154],[62,892,893],{},[150,894,896],{"href":895,"target":775},"https:\u002F\u002Ffonts.google.com\u002Ficons?selected=Material+Icons","Google Material Icons",[62,898,899],{},[150,900,902],{"href":901,"target":775},"https:\u002F\u002Fwww.materialpalette.com\u002F","Material Palette",[62,904,905],{},[150,906,907],{"href":907,"rel":908},"https:\u002F\u002Fmaterial.io",[154],[62,910,911],{},[150,912,914],{"href":913,"target":775},"https:\u002F\u002Fmedium.com\u002Fflutter-community\u002Fflutter-layout-cheat-sheet-5363348d037e","Flutter Layout Cheatsheet",[62,916,917,921],{},[150,918,920],{"href":919,"target":775},"https:\u002F\u002Ffonts.google.com\u002F","Google Fonts"," (free for commercial use)",[62,923,924],{},[150,925,927],{"href":926,"target":775},"https:\u002F\u002Fdribbble.com\u002F","Creative Ideas",[62,929,930],{},[150,931,932],{"href":932,"rel":933},"https:\u002F\u002Fwww.colorzilla.com\u002F",[154],[62,935,936],{},"If hot reload is not working for you, remember that it only       works when you change something within a Stateful Widget.",[62,938,939,940,942,945,947,948],{},"Null safety error messages",[206,941],{},[800,943,944],{},"\"lib\u002Fmain.dart:8:19: Error: Null safety features are disabled for this library.\nTry removing the package language version or setting the language version to 2.12 or higher.\nconst MyApp({Key? key}) : super(key: key);\"",[206,946],{},"Open pubspec.yaml and change to  ",[65,949,950],{},"sdk: \">=2.12.0 \u003C 3.0.0\"",[62,952,953,956],{},[65,954,955],{},"Ctrl-q"," shows quick docs within Intelli J",{"title":11,"searchDepth":12,"depth":12,"links":958},[],"2021-12-05",{},"\u002Farticles\u002Fflutter-tips1",{"title":826,"description":784},"articles\u002Fflutter-tips1",[18],"RV1o32MPObtGs1CFr_GYKGsTtQv9W6HwBn1rJRz6hgE",{"id":967,"title":968,"author":969,"body":970,"createdAt":1028,"description":1029,"extension":15,"img":1030,"meta":1031,"navigation":19,"path":1032,"seo":1033,"stem":1034,"tags":1035,"updatedAt":1028,"__hash__":1036},"articles\u002Farticles\u002Fexecution-failed-for-task-appflutterbuilddebug.md","Execution failed for task ‘:app:flutterBuildDebug’",null,{"type":8,"value":971,"toc":1026},[972,975,978,981,994,1000,1006,1018],[37,973,974],{},"Suddenly I have this error. I thought it was something I had inadvertently injected into my code. Solution below…",[37,976,977],{},"Error reading dependency file C:{path to project}\\build\\app\\intermediates\\flutter\\debug\\snapshot_blob.bin.d: java.lang.ArrayIndexOutOfBoundsException: 1",[37,979,980],{},"Oops; flutter has exited unexpectedly.",[37,982,983,984,986,987,272,991,993],{},"Crash report written to C:{path to project}\\flutter_11.log;",[206,985],{},"\nplease let us know at ",[150,988,989],{"href":989,"rel":990},"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fflutter\u002Fissues",[154],[206,992],{},"\nFAILURE: Build failed with an exception.",[37,995,996,997,999],{},"Where:",[206,998],{},"\nScript 'C:\\flutter\\packages\\flutter_tools\\gradle\\flutter.gradle' line: 435",[37,1001,1002,1003,1005],{},"What went wrong:",[206,1004],{},"\nExecution failed for task ':app:flutterBuildDebug'.",[1007,1008,1009],"blockquote",{},[37,1010,1011,1012,1014,1017],{},"Process 'command 'C:\\flutter\\bin\\flutter.bat'' finished with non-zero exit value 1",[206,1013],{},[65,1015,1016],{},"Solution",":",[59,1019,1020,1023],{},[62,1021,1022],{},"Open solution folder, remove the build folder",[62,1024,1025],{},"Rerun F5 application",{"title":11,"searchDepth":12,"depth":12,"links":1027},[],"2018-06-03T19:46:02.000Z","Errors occur. This one was perplexing but was quickly resolved.  Using Flutter and getting 'dependency file' error.  Check it out.","\u002Farticles\u002Fimages\u002FuO8VUVifgS.png",{},"\u002Farticles\u002Fexecution-failed-for-task-appflutterbuilddebug",{"title":968,"description":1029},"articles\u002Fexecution-failed-for-task-appflutterbuilddebug",[18],"Z12hhh5QoJueG5H5FTzIPniuxsdYh8FrpbtVEnzsdTs",1781574759087]