<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8448635219343547269</id><updated>2024-11-05T21:09:40.090-06:00</updated><category term="powerpc"/><category term="technology"/><category term="development"/><category term="elgg"/><category term="old mac apps"/><category term="php"/><category term="ibook g4"/><category term="flutter"/><category term="leopard powerpc"/><category term="Android"/><category term="Apple"/><category term="El Salvador"/><category term="android development"/><category term="Facebook"/><category term="Kubuntu"/><category term="Linux"/><category term="mysql"/><category term="symfony"/><category term="dart language"/><category term="elgg themes"/><category term="featured"/><category term="flutter development"/><category term="iOS"/><category term="ios development"/><category term="leopard"/><category term="mac os"/><category term="xampp"/><category term="Debian"/><category term="LibreOffice"/><category term="Mac"/><category term="app development"/><category term="composer"/><category term="elearning"/><category term="flutter app development"/><category term="flutter dart"/><category term="iMac g5"/><category term="lms"/><category term="macintosh"/><category term="powerpc apps"/><category term="twitter"/><category term="Keto"/><category term="PiGo LMS"/><category term="Ubuntu"/><category term="Xbox 360"/><category term="apple mac"/><category term="best elgg plugins"/><category term="best elgg themes"/><category term="blackboard"/><category term="education"/><category term="flickr"/><category term="flutter web"/><category term="iPad"/><category term="imac G4"/><category term="ios apps"/><category term="keto diet"/><category term="laravel"/><category term="mac apps"/><category term="mac os leopard"/><category term="microsoft office"/><category term="powerpc software"/><category term="social networking"/><category term="web development"/><category term="Apple computers"/><category term="Call of Duty"/><category term="Call of Duty Modern Warfare 3"/><category term="Fedora"/><category term="Ibook"/><category term="Mandriva"/><category term="Moodle"/><category term="ODF"/><category term="ODF documents"/><category term="ODF file format"/><category term="OpenDocument"/><category term="Xubuntu"/><category term="bean word processor"/><category term="best free elgg plugins"/><category term="canvas LMS"/><category term="dart"/><category term="duolingo"/><category term="e-learning"/><category term="echofon"/><category term="elgg 1.8"/><category term="elgg community"/><category term="elgg plugins"/><category term="elgg review"/><category term="facebook privacy"/><category term="facebook timeline"/><category term="flutter scan qr codes"/><category term="free mac apps"/><category term="google plus"/><category term="how to lose weight fast"/><category term="iPad 2"/><category term="ibook linux"/><category term="image editing"/><category term="install symfony"/><category term="javascript"/><category term="keto meals"/><category term="kubuntu powerpc"/><category term="learn english"/><category term="learning management system"/><category term="linux powerpc"/><category term="mac blog"/><category term="mac software"/><category term="mkv mac"/><category term="mw3 gameplay"/><category term="open source"/><category term="open source LMS"/><category term="quicktime"/><category term="reddit"/><category term="tiger os"/><category term="tweetdeck"/><category term="yellowdog linux"/><category term="Android Apps"/><category term="Apple iWork"/><category term="Apple intermediate codec"/><category term="Black ops"/><category term="Blogger"/><category term="Bluetooth iPad"/><category term="Calligra"/><category term="Chatgpt"/><category term="Civil War El Salvador"/><category term="Crisis en El Salvador"/><category term="Dieta Keto"/><category term="Document Foundation"/><category term="Domination Outpost"/><category term="Economia de El Salvador"/><category term="El Salvador Economy"/><category term="El-Salvador"/><category term="Free software"/><category term="Funes"/><category term="GPL software"/><category term="Getty images"/><category term="Gobierno de El Salvador"/><category term="Ground War"/><category term="HeidiSQL"/><category term="HeidiSQL Mac"/><category term="Hide years facebook"/><category term="Instagram"/><category term="JHeidi"/><category term="JHeidi for Mac OS"/><category term="KDE"/><category term="Kotlin"/><category term="Macbook Pro"/><category term="Money"/><category term="Monografias"/><category term="Mountain Lion"/><category term="Munich Linux"/><category term="Netbook"/><category term="ODB"/><category term="ODF support PiGo LMS"/><category term="ODP"/><category term="ODS"/><category term="ODT"/><category term="Palm Lifedrive"/><category term="PiGo LMS elgg"/><category term="Quicktime mkv"/><category term="Quicktime plugins"/><category term="Social media"/><category term="Toyviewer Leopard Power PC"/><category term="Toyviewer for mac"/><category term="Twitter Privacy"/><category term="Visual Studio 2010"/><category term="Webodf"/><category term="Webos"/><category term="Wordpress templates"/><category term="XFCE"/><category term="XNA 3.0 Installer"/><category term="XNA development"/><category term="YouView"/><category term="Youtube powerpc"/><category term="actions for photoshop"/><category term="adobe air"/><category term="ads for facebook"/><category term="adverts manager"/><category term="ai"/><category term="android studio"/><category term="android tablet"/><category term="apache"/><category term="apad"/><category term="apad tablet"/><category term="app store"/><category term="apple apps"/><category term="apple laptops"/><category term="apple ppc"/><category term="apps for ipad"/><category term="aqueduct dart"/><category term="aqueduct rest"/><category term="arch linux"/><category term="armbian"/><category term="arreglar fotos"/><category term="artificial inteligence"/><category term="back to the roots"/><category term="bad quality pictures imovie"/><category term="barcode scanner"/><category term="bard"/><category term="bean"/><category term="best app for ipads"/><category term="best call of duty gameplay"/><category term="best call of duty maps"/><category term="best free elgg themes"/><category term="best gameplay"/><category term="bitnami xampp"/><category term="black ops 2"/><category term="blackboard elearning"/><category term="blog"/><category term="blog themes"/><category term="blogger ipad"/><category term="blogger templates"/><category term="blogger tools"/><category term="blogs"/><category term="buddypress"/><category term="buddypress review"/><category term="buddypress themes"/><category term="business management"/><category term="canonical"/><category term="canvas by Instructure"/><category term="chat for facebook"/><category term="childsplay"/><category term="childsplay kubuntu"/><category term="claroline"/><category term="clipbucket video gallery"/><category term="code editor for mac"/><category term="code editor powerpc"/><category term="como instalar composer"/><category term="compiling xmms"/><category term="composer libraries"/><category term="computer companion"/><category term="copyright infringement"/><category term="create stepper flutter"/><category term="csharp"/><category term="css"/><category term="debian for powerpc"/><category term="design blogger"/><category term="desktop companion"/><category term="doctrine"/><category term="dolphin"/><category term="don mattrick"/><category term="duolingo challenge"/><category term="duolingo challenge quelepa"/><category term="duolingo learn another language"/><category term="earning tracking"/><category term="eating healthier"/><category term="echofon for leopard"/><category term="echofon for mac"/><category term="editing images"/><category term="el salvador elearning"/><category term="elearning el salvador"/><category term="elearning system"/><category term="elgg 1.8 free elgg themes"/><category term="elgg 1.8 plugins"/><category term="elgg 2.3"/><category term="elgg 3"/><category term="elgg 4"/><category term="elgg LMS"/><category term="elgg best themes"/><category term="elgg community page"/><category term="elgg file viewer"/><category term="elgg framework"/><category term="elgg free plugins"/><category term="elgg free professional themes"/><category term="elgg future"/><category term="elgg github"/><category term="elgg hosting"/><category term="elgg media gallery"/><category term="elgg php framework"/><category term="elgg professional"/><category term="elgg professional themes"/><category term="elgg responsive theme"/><category term="elgg themes free"/><category term="elgg usage"/><category term="elsalvador"/><category term="embed word documents"/><category term="embrache"/><category term="facebook August 22"/><category term="facebook account settings"/><category term="facebook ads"/><category term="facebook adverts manager"/><category term="facebook chat"/><category term="facebook for mac"/><category term="facebook leopard"/><category term="facebook location"/><category term="facebook sucks"/><category term="financial advice"/><category term="flickr ad revenue"/><category term="flickr free pro account"/><category term="flickr new design"/><category term="flickr terabyte"/><category term="flutter admin dashboard"/><category term="flutter dependent drop down field"/><category term="flutter listview"/><category term="flutter multilevel dependent drop down"/><category term="flutter responsive"/><category term="flutter web upload"/><category term="fos user symfony"/><category term="foss"/><category term="free elgg themes"/><category term="free lms"/><category term="free moodle"/><category term="free online classroom"/><category term="free online image editor"/><category term="free opencart theme"/><category term="free photoshop alternative"/><category term="free pigo lms"/><category term="free plugins elgg"/><category term="free virtual classroom"/><category term="freeware for mac"/><category term="future of xbox"/><category term="gamification"/><category term="gamification of learning"/><category term="gcompris"/><category term="gcompris kubuntu"/><category term="generate pdf"/><category term="getting started composer"/><category term="gimp alternative"/><category term="github"/><category term="github copilot"/><category term="goodbye El Salvador"/><category term="google"/><category term="google buzz"/><category term="google graveyard"/><category term="google lively"/><category term="google play services"/><category term="google+"/><category term="guide to social exposure"/><category term="gym"/><category term="helix player"/><category term="high school duolingo"/><category term="html"/><category term="html mac"/><category term="iMovie"/><category term="iMovie 6 HD"/><category term="iMovie HD"/><category term="iMovie movies"/><category term="iPad Bluetooth transfer"/><category term="iPad excel"/><category term="iPad iOS"/><category term="ibm ai"/><category term="ibm lay off ai"/><category term="ibook apps"/><category term="ibook g4 mac"/><category term="ibook g4 youtube"/><category term="ibook scrolling trackpad"/><category term="import pictures imovie"/><category term="instalando composer"/><category term="instalando symfony"/><category term="instalar composer"/><category term="instalar xampp"/><category term="instalar xampp en windows"/><category term="install mysql windows"/><category term="install php windows"/><category term="install xampp"/><category term="installer for xna games"/><category term="installing composer"/><category term="ios photoshop"/><category term="ipad apps"/><category term="ipad business apps"/><category term="itunes"/><category term="itunes alternative"/><category term="java"/><category term="jomsocial"/><category term="jomsocial review"/><category term="jomsocial themes"/><category term="jquery"/><category term="json flutter"/><category term="juggernaut"/><category term="keep track expenses"/><category term="keto food"/><category term="keto grocery shopping"/><category term="keto reddit"/><category term="keto snacks"/><category term="komodo edit mac"/><category term="lamp server windows"/><category term="laravel pdf"/><category term="leopard mac"/><category term="leopard os"/><category term="linux on powerpc"/><category term="listview builder flutter"/><category term="lose weight"/><category term="lose weight fast"/><category term="low quality imovie"/><category term="mac powerpc"/><category term="mac twitter"/><category term="mac video"/><category term="macintohs"/><category term="macpowerpc"/><category term="make movies with iMovie"/><category term="mark zuckerberg"/><category term="microsoft office for ipad"/><category term="mined"/><category term="mkv powerbook"/><category term="ml kit"/><category term="music player mac"/><category term="new facebook"/><category term="new facebook sucks"/><category term="new facebook timeline"/><category term="news bots reddit"/><category term="node"/><category term="notepad++ mac"/><category term="obex profile"/><category term="office alternatives"/><category term="office suite"/><category term="one week meal plan keto"/><category term="onedrive ipad"/><category term="online image editor"/><category term="open english"/><category term="openai"/><category term="opencart"/><category term="opencart php"/><category term="opencart theme development"/><category term="opencart twig"/><category term="orange pi"/><category term="orange pi pc"/><category term="orange pi web server"/><category term="orkut"/><category term="paint"/><category term="paintbrush"/><category term="pdf elgg"/><category term="perder peso"/><category term="perian for mac"/><category term="perian quicktime"/><category term="photo gallery"/><category term="photographers seo tips"/><category term="photoshop"/><category term="photoshop alternative"/><category term="photoshop cs4"/><category term="photoshop cs5"/><category term="photoshop cs6"/><category term="photoshop for mac"/><category term="photoshop for windows"/><category term="php 7 windows"/><category term="php framework"/><category term="picture gallery elgg"/><category term="picture gallery wordpress"/><category term="pierde peso rápido"/><category term="pixlr image editor"/><category term="plugins for elgg"/><category term="politico"/><category term="powerbook apps"/><category term="powerpc applications"/><category term="powerpc g4"/><category term="powerpc linux"/><category term="powerpc mac"/><category term="ppc apps"/><category term="pro elgg"/><category term="programa embrache"/><category term="programming"/><category term="qr code"/><category term="qr code reader android"/><category term="rar for mac"/><category term="raspberry pi"/><category term="react"/><category term="reader for mac"/><category term="real player"/><category term="realplayer for mac"/><category term="reddit bots"/><category term="reddit keto"/><category term="requirejs"/><category term="rest api"/><category term="rjcalifornia"/><category term="rjcalifornia blog"/><category term="san miguel"/><category term="scan qr codes"/><category term="scripts para photoshop"/><category term="scrolling trackpad ibook"/><category term="send files via bluetooth ipad"/><category term="seo tips"/><category term="simple flutter stepper"/><category term="snow leopard"/><category term="social engine"/><category term="social exposure"/><category term="social network"/><category term="starting keto diet"/><category term="stepper form flutter"/><category term="sw social web"/><category term="symfony command line"/><category term="symfony commands"/><category term="symfony fos user commands"/><category term="symfony fos user database"/><category term="symfony tutorials"/><category term="t-box planet"/><category term="t-box planet el salvador"/><category term="tailwind css"/><category term="tech"/><category term="textwrangler mac"/><category term="the globe"/><category term="timeline"/><category term="top elgg themes"/><category term="top free elgg themes"/><category term="toyviewer"/><category term="track your money"/><category term="tracking money"/><category term="trillian for leopard"/><category term="trillian for mac"/><category term="trillian powerpc"/><category term="tweetdeck for chrome"/><category term="tweetdeck for iphone"/><category term="tweetdeck leopard"/><category term="tweets"/><category term="twitter companion"/><category term="twitter desktop"/><category term="twitter for mac"/><category term="twitter location"/><category term="twitter mac"/><category term="twitter powerpc"/><category term="twitter windows 8"/><category term="ubuntu for powerpc"/><category term="unrarx"/><category term="unrarx for mac"/><category term="upload files flutter web"/><category term="usar xampp"/><category term="using composer"/><category term="vagrant"/><category term="video gallery"/><category term="video mac"/><category term="video platform"/><category term="view youtube ibook G4"/><category term="virtual classroom"/><category term="virtual learning"/><category term="visual studio"/><category term="vlc mac"/><category term="vue"/><category term="web apps"/><category term="web tweetdeck"/><category term="windows 8"/><category term="word"/><category term="wordpress media library"/><category term="wordpress themes"/><category term="wordpress video gallery"/><category term="workout"/><category term="xampp en windows"/><category term="xbox 360 games"/><category term="xbox one"/><category term="xbox one games"/><category term="xbox one internet check-in"/><category term="xbox xna"/><category term="xmms"/><category term="xna 3.0"/><category term="xna c#"/><category term="xna installer"/><category term="yammer"/><category term="yellow dog linux"/><category term="youtube leopard powerpc"/><category term="youtube tiger"/><title type='text'>rj california</title><subtitle type='html'>Blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-6388212080330746489</id><published>2023-05-04T11:55:00.003-06:00</published><updated>2023-05-04T11:58:01.681-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial inteligence"/><category scheme="http://www.blogger.com/atom/ns#" term="bard"/><category scheme="http://www.blogger.com/atom/ns#" term="Chatgpt"/><category scheme="http://www.blogger.com/atom/ns#" term="github copilot"/><category scheme="http://www.blogger.com/atom/ns#" term="ibm ai"/><category scheme="http://www.blogger.com/atom/ns#" term="ibm lay off ai"/><category scheme="http://www.blogger.com/atom/ns#" term="openai"/><title type='text'>We don&#39;t have a real AI, yet.</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp1UbHOMakGa4E-8spEXRGUBWMwF2I2FZnQDtvUWf32-txdWZrD4tkoLet5Etz-ra_Sd2Jlj72D0L4m1-eWyAFinM0a0b6E9JXvcx96HDt7kiQgWtg7dl-zS9mk31rqZguYg5dPaNuIf8q_LIfLtJz_SgzIZt-fIHrcK8PL_uMDQRFUpO27ypFp5-kzg/s512/artificial-intelligence.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;512&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp1UbHOMakGa4E-8spEXRGUBWMwF2I2FZnQDtvUWf32-txdWZrD4tkoLet5Etz-ra_Sd2Jlj72D0L4m1-eWyAFinM0a0b6E9JXvcx96HDt7kiQgWtg7dl-zS9mk31rqZguYg5dPaNuIf8q_LIfLtJz_SgzIZt-fIHrcK8PL_uMDQRFUpO27ypFp5-kzg/w400-h400/artificial-intelligence.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Okay, listen up folks. Let&#39;s get one thing straight: what we have today is not real AI.&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;flex flex-grow flex-col gap-3&quot;&gt;&lt;div class=&quot;min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap break-words&quot;&gt;&lt;div class=&quot;markdown prose w-full break-words dark:prose-invert dark&quot;&gt;&lt;p&gt;ChatGPT, Bard, etc. are just generative models that are trained on massive amounts of data in an attempt to compress it down into a trained model which it can run to try and regenerate answers based on the data it was trained from. The problem is, the model doesn&#39;t actually have any core understanding of the material it ingests--it&#39;s like a baby that can infer what things should look like and make things up along the way to fill in the blanks. Researchers call this &quot;hallucinating.&quot; So, when you ask a chatbot like ChatGPT a question, it may confidently give you incorrect information.&lt;/p&gt;&lt;p&gt;But that&#39;s not the only problem. The data it&#39;s trained on is only as good as the people who wrote the code it&#39;s ingesting. And because training the model requires billions and billions of code snippets to train on and learn as data points, the only way we can conceivably feed it that volume of code is to download it en-masse from the internet. And none of that code is reviewed and checked for bugs or security flaws before the model is fed it. Garbage in, garbage out, folks.&lt;/p&gt;&lt;p&gt;And don&#39;t even get me started on how infuriating it is that we&#39;ve taken to calling this &quot;AI.&quot; It&#39;s a stupid techbro marketing stunt that has stuck, and now we all have to call it AI. But only those of us with the right tech background to know better will understand just how misleading that label is. As a result, tech companies can &quot;build&quot; models based on bad code to get funding from VCs that get attracted to this siren call.&amp;nbsp; &lt;/p&gt;&lt;p&gt;So, imagine an internet full of chatbots all set up by techbros and lazy hacks trying to cash in on the sudden easy ability to generate &#39;content&#39; that can get past regular spam filters. They&#39;re pulling this stuff down from the internet en masse to train their buggy models, then submitting it back to places that are indexed online where the next set of buggy models can ingest it. It&#39;s an infinite beautiful river full of shit, folks. And because the models learn based on statistical trends and averages over a large set of data, this huge flood of new &quot;AI&quot; generated data is now the norm, and as such it takes precedence over human-generated data.&lt;/p&gt;&lt;p&gt;That&#39;s what&#39;s happening now, and it&#39;s happening because everyone wants to make bank. It doesn&#39;t matter if they understand, or care to understand, how this thing works, as long as it can make enough money for a new home is Aspen they will continue to promote this as a &quot;revolutionary tech&quot;. &lt;/p&gt;&lt;p&gt;So, folks, be careful out there. Don&#39;t believe everything you read. And for the love of all that is good and holy, stop calling this garbage &quot;AI.&quot;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/6388212080330746489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/6388212080330746489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/6388212080330746489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/6388212080330746489'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2023/05/we-dont-have-real-yet.html' title='We don&#39;t have a real AI, yet.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp1UbHOMakGa4E-8spEXRGUBWMwF2I2FZnQDtvUWf32-txdWZrD4tkoLet5Etz-ra_Sd2Jlj72D0L4m1-eWyAFinM0a0b6E9JXvcx96HDt7kiQgWtg7dl-zS9mk31rqZguYg5dPaNuIf8q_LIfLtJz_SgzIZt-fIHrcK8PL_uMDQRFUpO27ypFp5-kzg/s72-w400-h400-c/artificial-intelligence.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-2198906093006613784</id><published>2023-04-30T07:50:00.000-06:00</published><updated>2023-04-30T07:50:04.335-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="generate pdf"/><category scheme="http://www.blogger.com/atom/ns#" term="laravel"/><category scheme="http://www.blogger.com/atom/ns#" term="laravel pdf"/><title type='text'>Generate PDF fast and easy in Laravel 10 with TCPDF</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiasse7YGBQA2OXowYW3P7iN6Ty4XSLe1ghy2ffAaMWQbNIm6-80Dv-knh6yv_m4cTQdOIsju_Q371Zgl-1pcDFNlbwdPIlpDr9sNJ-vdwuohMpEbJaTyu-lS-pZZ4GvuKEif-0ZayvyJ4-L1-nYNO0ISKlcCosFUAq_X-QXRQ8YQ4Zk9lO0JqUcNONRQ/s512/pdf.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;512&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiasse7YGBQA2OXowYW3P7iN6Ty4XSLe1ghy2ffAaMWQbNIm6-80Dv-knh6yv_m4cTQdOIsju_Q371Zgl-1pcDFNlbwdPIlpDr9sNJ-vdwuohMpEbJaTyu-lS-pZZ4GvuKEif-0ZayvyJ4-L1-nYNO0ISKlcCosFUAq_X-QXRQ8YQ4Zk9lO0JqUcNONRQ/w400-h400/pdf.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;PDF documents are a popular format for presenting information on the web. They&#39;re easy to create and distribute, and they can be viewed on almost any device. If you&#39;re working with Laravel 9 and you need to generate PDF documents, you have a few options available to you. One popular choice is the elibyy/tcpdf-laravel library, which provides a wrapper around the TCPDF library for PHP.&lt;br /&gt;&lt;br /&gt;When it comes to generating PDF documents in Laravel, there are a few libraries to choose from. One of the most popular is domPDF, which is a PHP library that can convert HTML content into PDF documents. While domPDF can be a great choice for some projects, it has some quirks that can cause headaches for developers. For example, it can be slow to render large PDF documents, and it can be difficult to customize the output.&lt;br /&gt;&lt;br /&gt;That&#39;s where elibyy/tcpdf-laravel comes in. This library provides a wrapper around the TCPDF library, which is a powerful PHP library for generating PDF documents. Here are some of the benefits of using elibyy/tcpdf-laravel for your PDF generation needs:&lt;br /&gt;&lt;br /&gt;Easy Integration&lt;br /&gt;One of the biggest advantages of using elibyy/tcpdf-laravel is how easy it is to integrate into your Laravel project. You can simply install the package using Composer, and then start using it in your code. This means you can get up and running quickly, without having to spend a lot of time configuring and setting up the library.&lt;br /&gt;&lt;br /&gt;Customizable&lt;br /&gt;TCPDF is a very powerful library that provides a lot of functionality for creating PDF documents. The elibyy/tcpdf-laravel package makes it easy to customize the output by allowing you to pass in options and configurations specific to TCPDF. This means you can fine-tune the output to meet your specific needs, without having to write a lot of custom code.&lt;br /&gt;&lt;br /&gt;Better Performance&lt;br /&gt;Another benefit of using elibyy/tcpdf-laravel is that it&#39;s built on top of the TCPDF library, which is known for its fast rendering speeds. This means that creating PDF documents with this package can be faster than other PDF libraries. This can be particularly important if you&#39;re generating large PDF documents, which can take a long time to render with other libraries.&lt;br /&gt;&lt;br /&gt;Active Development&lt;br /&gt;The elibyy/tcpdf-laravel package is actively maintained, which means that it&#39;s more likely to be updated with new features and bug fixes. This can help ensure that your PDF creation needs are met and that your project stays up-to-date with the latest technology. It also means that if you run into issues with the library, you&#39;re more likely to get help resolving them.&lt;br /&gt;&lt;br /&gt;Wide Range of Functionalities&lt;br /&gt;TCPDF is a powerful library that supports a wide range of features such as custom fonts, tables, images, HTML content, barcodes, encryption, and more. The elibyy/tcpdf-laravel library makes it easy to use all these features from within your Laravel application. This means you can create PDF documents that are rich in features and customized to meet your needs.&lt;br /&gt;&lt;br /&gt;In conclusion, if you need to generate PDF documents in Laravel 9, the elibyy/tcpdf-laravel library is a great choice. It&#39;s easy to integrate, customizable, performs well, actively maintained, and supports a wide range of functionalities. While there are other libraries available, elibyy/tcpdf-laravel provides a powerful and flexible solution for your PDF generation needs.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/2198906093006613784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/2198906093006613784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2198906093006613784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2198906093006613784'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2023/04/generate-pdf-fast-and-easy-in-laravel.html' title='Generate PDF fast and easy in Laravel 10 with TCPDF'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiasse7YGBQA2OXowYW3P7iN6Ty4XSLe1ghy2ffAaMWQbNIm6-80Dv-knh6yv_m4cTQdOIsju_Q371Zgl-1pcDFNlbwdPIlpDr9sNJ-vdwuohMpEbJaTyu-lS-pZZ4GvuKEif-0ZayvyJ4-L1-nYNO0ISKlcCosFUAq_X-QXRQ8YQ4Zk9lO0JqUcNONRQ/s72-w400-h400-c/pdf.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-2133150089167581879</id><published>2023-03-22T07:44:00.001-06:00</published><updated>2023-03-22T07:44:15.332-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="android studio"/><category scheme="http://www.blogger.com/atom/ns#" term="barcode scanner"/><category scheme="http://www.blogger.com/atom/ns#" term="google play services"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin"/><category scheme="http://www.blogger.com/atom/ns#" term="ml kit"/><title type='text'>Debugging an obscure ML kit bug in Kotlin</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIxxILewHatC6N0p-HZFDzgMKUgcuB9PTYB-YTYPgHG4Mt3mlNK4m3nxbbqSGf3cV5vlzL0_Yhhur_sndrX8cD8BF5-0shDNBVFT9yJL6POkcHZ57o0psLwZSk-mqBE9Ev4LTfV2Uz2Ws0ZmyIbYnnZycZYgOzJj7SDlRyfXSMr8nZN9USZXpcI9uD4w/s512/app-development.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;512&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIxxILewHatC6N0p-HZFDzgMKUgcuB9PTYB-YTYPgHG4Mt3mlNK4m3nxbbqSGf3cV5vlzL0_Yhhur_sndrX8cD8BF5-0shDNBVFT9yJL6POkcHZ57o0psLwZSk-mqBE9Ev4LTfV2Uz2Ws0ZmyIbYnnZycZYgOzJj7SDlRyfXSMr8nZN9USZXpcI9uD4w/w400-h400/app-development.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;So, you&#39;re a developer, huh? You know your stuff, you&#39;re pretty confident in your abilities. But what happens when you&#39;re asked to help a Kotlin developer? You&#39;ve never used the language before, but you&#39;re feeling adventurous. You&#39;re ready to jump in and help out, no problem.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Well, that&#39;s exactly what happened to me. I was asked to help a Kotlin developer with their app. I had no experience with Kotlin, but I figured, how hard could it be? Famous last words.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I was already familiar with the app since I designed it with Figma. It is pretty simple: Scan a barcode or QR code, using the ML Kit&#39;s barcode scanning API. One of the advantages of using the kit is that it will work on ALL Android devices. It was doing its job, but all of the sudden it stopped working. The console only showed a &quot;failed to load scan&quot; error. Trying to pin point the bug, I was told it happened after switching the gmail account from one to another. That didn&#39;t make any sense, since the app doesn&#39;t use any Google service to work. We compiled the app in another device, it worked. However, after switching the Gmail account to another one, it stopped working.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Even after restarting the device, removing all traces of the app, it just did not work. Even the ChatGPT didn&#39;t have a clue about the situation. Being the good bug hunter that I am, I asked the kotlin developer why he used the ML kit instead of, I dunno using Flutter to create a kick-ass app.&amp;nbsp;&lt;/p&gt;&lt;p&gt;He stated that &quot;it is compatible with all devices, in fact at compilation it dowload the kit to use the latest version&quot;.That&#39;s when it hit me. It wasn&#39;t Android Studio downloading the kit, it was the Google Play Services app of the phone downloading it. I realized that it could be a cache problem or some obscure bug that was messing up either the version of the ML kit or the app permissions. The fix? Just clear the Google Play Services cache and data. I did that on both devices, and problem solved! No more issues even while switching Google accounts.&lt;/p&gt;&lt;p&gt;Is it bug in the official Google ML Kit barcode scanner library or the Google Play Services? Come on, Google. You&#39;re Google. You&#39;re supposed to be the gold standard. This shouldn&#39;t be happening, and yet, here we are. That&#39;s one of the reasons I keep using Flutter to develop Android apps. &lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/2133150089167581879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/2133150089167581879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2133150089167581879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2133150089167581879'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2023/03/debugging-obscure-ml-kit-bug-in-kotlin.html' title='Debugging an obscure ML kit bug in Kotlin'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIxxILewHatC6N0p-HZFDzgMKUgcuB9PTYB-YTYPgHG4Mt3mlNK4m3nxbbqSGf3cV5vlzL0_Yhhur_sndrX8cD8BF5-0shDNBVFT9yJL6POkcHZ57o0psLwZSk-mqBE9Ev4LTfV2Uz2Ws0ZmyIbYnnZycZYgOzJj7SDlRyfXSMr8nZN9USZXpcI9uD4w/s72-w400-h400-c/app-development.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-3278788276465254894</id><published>2022-01-18T09:00:00.001-06:00</published><updated>2022-01-18T09:00:04.449-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="free opencart theme"/><category scheme="http://www.blogger.com/atom/ns#" term="opencart"/><category scheme="http://www.blogger.com/atom/ns#" term="opencart php"/><category scheme="http://www.blogger.com/atom/ns#" term="opencart theme development"/><category scheme="http://www.blogger.com/atom/ns#" term="opencart twig"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'> OpenCart Theme Development: My first opensource theme</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhh9bwuA7xzCGx_9VqatRFehMZPNi8DPcS7aEskI0NJ_tXmcrlIn2SJJx_Hoi60HhKZWehsZ2Z6INNtPuHWL97lhE6veH9ARIQ9ET5FyptCXyYUE_ngr9Y6hak4Kh-SHqv8tXxXv9FemTs5xvySdqE2MDQhOzSz6fNtd4lgtCX5jryEO-euf6dY71Qk=s1893&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;879&quot; data-original-width=&quot;1893&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhh9bwuA7xzCGx_9VqatRFehMZPNi8DPcS7aEskI0NJ_tXmcrlIn2SJJx_Hoi60HhKZWehsZ2Z6INNtPuHWL97lhE6veH9ARIQ9ET5FyptCXyYUE_ngr9Y6hak4Kh-SHqv8tXxXv9FemTs5xvySdqE2MDQhOzSz6fNtd4lgtCX5jryEO-euf6dY71Qk=w640-h298&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;I ported the &lt;b&gt;Argon Design System&lt;/b&gt; template to OpenCart. It is my first opensource theme, and it was quite the experience.&amp;nbsp;&lt;/p&gt;&lt;p&gt;OpenCart 3 ditched the old .tpl template system and switched to Twig, one of the best PHP template engines available so far. However, for some reason the development of a theme is little bit more difficult, because you have to create files for your theme everywhere. I understand the reasoning for the way themes work right now, but the developer experience is awful.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Practically you have to download your theme to your computer to properly create your git repository, and it has to be done for each theme or extension that you develop. It is &lt;b&gt;impossible to develop two themes and keep track of the changes&lt;/b&gt; with Git, due to the nature of OpenCart. You can even take a look of how difficult the theme development is here: &lt;a href=&quot;https://forum.opencart.com/viewtopic.php?t=217095&quot;&gt;https://forum.opencart.com/viewtopic.php?t=217095&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj2XqyT-l0y3PK_LMcTQpxu7xJYH0zuwwPcXGvFlnJamyyM6NH3J5my619h_-gZsMeDjYKOKmb7ohiExIde-jGugPZnHt4ECrbXMa8iyeiHKzwAQk3HhIV37dJINfxiPJ70zMRy7aJkiPz-02DctCXVK4pn8x2r27o_9pRtd9l9Qp7rb5NX2kSTCzYf=s1885&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;875&quot; data-original-width=&quot;1885&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj2XqyT-l0y3PK_LMcTQpxu7xJYH0zuwwPcXGvFlnJamyyM6NH3J5my619h_-gZsMeDjYKOKmb7ohiExIde-jGugPZnHt4ECrbXMa8iyeiHKzwAQk3HhIV37dJINfxiPJ70zMRy7aJkiPz-02DctCXVK4pn8x2r27o_9pRtd9l9Qp7rb5NX2kSTCzYf=w640-h298&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;At least with WordPress, you have just one folder in which you work on, and push your changes easily from there. There&#39;s no YAML, or XML theme configuration file, you just have to deal with the way things are.&lt;/p&gt;&lt;p&gt;If you want to take a look at the theme, I named &quot;&lt;b&gt;Sellr Theme&lt;/b&gt;&quot;, and you can find it here:&lt;/p&gt;&lt;p&gt;&lt;b&gt;GitHub Repository&lt;/b&gt;: &lt;a href=&quot;https://github.com/rjcalifornia/seller_theme&quot;&gt;https://github.com/rjcalifornia/seller_theme&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/3278788276465254894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/3278788276465254894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/3278788276465254894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/3278788276465254894'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2022/01/opencart-theme-development-my-first.html' title=' OpenCart Theme Development: My first opensource theme'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhh9bwuA7xzCGx_9VqatRFehMZPNi8DPcS7aEskI0NJ_tXmcrlIn2SJJx_Hoi60HhKZWehsZ2Z6INNtPuHWL97lhE6veH9ARIQ9ET5FyptCXyYUE_ngr9Y6hak4Kh-SHqv8tXxXv9FemTs5xvySdqE2MDQhOzSz6fNtd4lgtCX5jryEO-euf6dY71Qk=s72-w640-h298-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-4158432133561514470</id><published>2021-07-01T15:13:00.002-06:00</published><updated>2021-07-01T15:13:19.842-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg 2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg 3"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg 4"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg plugins"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg themes"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type='text'>I quit elgg, and you should too!</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgod_bPuULHFUNkQqmjx-iVgS4E69oUnceDPsgw4XmwyIlB5s5mGdPvZ_jshr5G31ti494G6T7Kr2knE9Dr4JxhNl0oPC2oyBiToiDDedigKSj2xcf4KRS6rmsLUR3sVYCRkeIW9istdA4/s1577/elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;812&quot; data-original-width=&quot;1577&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgod_bPuULHFUNkQqmjx-iVgS4E69oUnceDPsgw4XmwyIlB5s5mGdPvZ_jshr5G31ti494G6T7Kr2knE9Dr4JxhNl0oPC2oyBiToiDDedigKSj2xcf4KRS6rmsLUR3sVYCRkeIW9istdA4/w640-h330/elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;After spending almost a decade doing themes and plugins for elgg, the time has come to pull the plug. Elgg is dead because so many breaking changes from one version to another, it becomes harder and harder to maintain. For example, updating a 2.x theme is a pain. So many libraries being deprecated, and there isn&#39;t a proper guide on how to make a theme or upgrade an existing one. Just take a look at the &quot;&lt;b&gt;2.x to 3.x&lt;/b&gt; Upgrade Guide&quot;, it is a nightmare:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4NwMbRZP3xjvOpNcwhNunrC3ckyRbUlxg4WGfk4G2Y6XD6bYe5VSziWjxv3dky8zkZ3CK7drRm01PjZIDw9ICTeEiNYPWj7AUHTwYwTcXlF6vIER9DN7INlLvhsWR7Bm2li2rgBfrDGw/s1294/removed-elgg-methods.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;855&quot; data-original-width=&quot;1294&quot; height=&quot;422&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4NwMbRZP3xjvOpNcwhNunrC3ckyRbUlxg4WGfk4G2Y6XD6bYe5VSziWjxv3dky8zkZ3CK7drRm01PjZIDw9ICTeEiNYPWj7AUHTwYwTcXlF6vIER9DN7INlLvhsWR7Bm2li2rgBfrDGw/w640-h422/removed-elgg-methods.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://learn.elgg.org/en/stable/appendix/upgrade-notes/2.x-to-3.0.html&quot;&gt;http://learn.elgg.org/en/stable/appendix/upgrade-notes/2.x-to-3.0.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The elgg development team doesn&#39;t offer a way to migrate your code. Let&#39;s look at the elgg_load_library, there isn&#39;t an alternative for that. Even the elgg community is not willing to give a proper migration guide:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRAgh_strX-FaIwSR0eiGxklh74yenhv6IrXK6Uo3ls6dxxRdMqJIVtW4uorHYun1pL95exTsMglc9_4fJz3-bEnv2Y1aViE5Gq7kbtCZpV5IfSX5tL-yVSayzsCKnYStlwiN8uJjB0Ps/s1582/elgg-register-library.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;895&quot; data-original-width=&quot;1582&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRAgh_strX-FaIwSR0eiGxklh74yenhv6IrXK6Uo3ls6dxxRdMqJIVtW4uorHYun1pL95exTsMglc9_4fJz3-bEnv2Y1aViE5Gq7kbtCZpV5IfSX5tL-yVSayzsCKnYStlwiN8uJjB0Ps/w640-h362/elgg-register-library.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://elgg.org/discussion/view/2937076/elgg-register-lib&quot;&gt;https://elgg.org/discussion/view/2937076/elgg-register-lib&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;As much as I want to upgrade my latest plugins and themes, the lack of proper development documentation has forced me to completely abandon elgg. Not only that, there are no new plugins being created, just the same users upgrading their old plugins. Elgg has stagnated and it is dead. If you think of using elgg for a project or startup think again, you will face issues that no one knows or is willing to help you. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;It was a nice ride, not going to lie. It is a shame to witness the death of a beloved framework.&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/4158432133561514470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/4158432133561514470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/4158432133561514470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/4158432133561514470'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2021/07/i-quit-elgg-and-you-should-too.html' title='I quit elgg, and you should too!'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgod_bPuULHFUNkQqmjx-iVgS4E69oUnceDPsgw4XmwyIlB5s5mGdPvZ_jshr5G31ti494G6T7Kr2knE9Dr4JxhNl0oPC2oyBiToiDDedigKSj2xcf4KRS6rmsLUR3sVYCRkeIW9istdA4/s72-w640-h330-c/elgg.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-6910299401904446960</id><published>2021-04-02T22:26:00.019-06:00</published><updated>2021-04-03T02:58:56.140-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aqueduct dart"/><category scheme="http://www.blogger.com/atom/ns#" term="aqueduct rest"/><category scheme="http://www.blogger.com/atom/ns#" term="dart language"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="google graveyard"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rest api"/><title type='text'>Aqueduct for Dart is dead: Now what?</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_2lI6yYB4TFtgjriuVxdsnr-N0Wcm0K7ZpMiy4uxPB0E0QgwRHQ0ci7Pwm2ozycM1MpQXvAXOlMlu3vqTm-N6gKXWYAXLdNAzxU4Dj9u5UwqFGPV009k0KrahBfRy60hQKZ3Bq2RSsKw/s1896/aqueduct-dart-sunsetting.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;915&quot; data-original-width=&quot;1896&quot; height=&quot;308&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_2lI6yYB4TFtgjriuVxdsnr-N0Wcm0K7ZpMiy4uxPB0E0QgwRHQ0ci7Pwm2ozycM1MpQXvAXOlMlu3vqTm-N6gKXWYAXLdNAzxU4Dj9u5UwqFGPV009k0KrahBfRy60hQKZ3Bq2RSsKw/w640-h308/aqueduct-dart-sunsetting.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The company/developers behind the server side framework Aqueduct just announced the project is now closed. What happened? Why was the project shut down? What to do now?&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;We are all aware of &lt;a href=&quot;https://killedbygoogle.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Google&#39;s Graveyard&lt;/a&gt;, and that&#39;s one of the main reasons major corporations are not switching to Flutter yet. Google&#39;s attention span for any new project is short, and Google either kills the project or &lt;a href=&quot;https://blog.angular.io/stable-angularjs-and-long-term-support-7e077635ee9c&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;releases a major version that breaks any backward compatibility&lt;/a&gt;. Aqueduct was affected by constant Dart updates, which are not bad but keeping up with so many updates will make a project very costly to maintain for an organization.&lt;/p&gt;&lt;p&gt;What to do now? If you are a good &lt;a href=&quot;https://www.howtodeal.dev/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;boss/project manager&lt;/a&gt;, you will rebuild your REST API services with either Symfony or Laravel. Yeah, you can call me &quot;old fashioned&quot; or &quot;stuck in the 90s&quot;, but I&#39;m not the one rushing to find a replacement of a critical backend system developed with Aqueduct. Right now, there are some developers that are trying to maintain it as a new
 project (ViaDuct/Conduit), but as you should already know by now, there isn&#39;t an organization behind them, no real leadership, and worst of all no real 
development roadmap.&lt;/p&gt;&lt;p&gt;What&#39;s the lesson here? Choose your framework very wisely. Read forums, users comments, and project managers please: Listen to your own developers. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/6910299401904446960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/6910299401904446960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/6910299401904446960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/6910299401904446960'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2021/04/aqueduct-for-dart-language-is-dead-now.html' title='Aqueduct for Dart is dead: Now what?'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_2lI6yYB4TFtgjriuVxdsnr-N0Wcm0K7ZpMiy4uxPB0E0QgwRHQ0ci7Pwm2ozycM1MpQXvAXOlMlu3vqTm-N6gKXWYAXLdNAzxU4Dj9u5UwqFGPV009k0KrahBfRy60hQKZ3Bq2RSsKw/s72-w640-h308-c/aqueduct-dart-sunsetting.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-656976949753888896</id><published>2021-03-16T08:35:00.005-06:00</published><updated>2021-03-17T09:02:45.319-06:00</updated><title type='text'>Updated Gentelella Admin Dashboard for Flutter</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9srCU_-h4kDf09he10coqxIZkxIALlhclN-0XIX7ABDJT3cXMmjvbFMPLh3Cb6aASDcA2UzW6fF3t_O-pAlD3Yq5rOZv0OlA8CyxhJlNXgykBVyombbYo0XODXqW4nPHHm5NwCGPEKYU/s1918/flutter-gentelella-admin.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1079&quot; data-original-width=&quot;1918&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9srCU_-h4kDf09he10coqxIZkxIALlhclN-0XIX7ABDJT3cXMmjvbFMPLh3Cb6aASDcA2UzW6fF3t_O-pAlD3Yq5rOZv0OlA8CyxhJlNXgykBVyombbYo0XODXqW4nPHHm5NwCGPEKYU/w640-h360/flutter-gentelella-admin.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;On a previous &lt;a href=&quot;https://rodolfohernan20.blogspot.com/2020/02/create-responsive-admin-template-for.html&quot; target=&quot;_blank&quot;&gt;post&lt;/a&gt;, I created an administration dashboard with Flutter using the Gentelella Admin Template as inspiration for the design. However, it wasn&#39;t responsive and the routing was badly made. In order to fix those things, instead of creating things from scratch, I grabbed the following code:&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/MaikuB/responsive_navigationdrawer_demo&quot;&gt;https://github.com/MaikuB/responsive_navigationdrawer_demo&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I&#39;m just going to explain the few modifications that I did, since the original author of the project explains everything in his blog:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://dexterx.dev/creating-a-responsive-flutter-application-with-a-navigation-drawer/&quot;&gt;https://dexterx.dev/creating-a-responsive-flutter-application-with-a-navigation-drawer/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After downloading the project, I made some slight color and font modifications:&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/825cf45099c236948413554286385f67.js&quot;&gt;&lt;/script&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the app_drawer.dart, I changed the custom drawer header that it had, with the one from the previous version of the gentelella theme:&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/9d6bb74ee561a2cee71e8241457167c3.js&quot;&gt;&lt;/script&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I also wrapped the Drawer inside a Container because I needed to change from the original color to one that matched the Gentelella theme:&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/c5ec752f4d377fc97cf7a55ec0433be1.js&quot;&gt;&lt;/script&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In each page, a content box was added, replacing the Text() widget from the original project, so that you can start building your own app with this template. This content box is the same from the previous Gentelella project:&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/ae28c91e95580c33e2a3e846c6cdb1f8.js&quot;&gt;&lt;/script&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I created a copy of one of the pages, and renamed to &quot;forms_page.dart&quot;. It has a stateful Widget, and also several forms fields, including a datepicker. Since this page is going to have text fields, the keyboard needs to go away when the user taps anywhere on the page. So, let&#39;s wrap the SingleChildScrollView in a GestureDetector, and call the FocusScope.of method to hide the soft keyboard:&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/876eea93cf5841aa3bd01af2fd9e7139.js&quot;&gt;&lt;/script&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Inside the content box, I added a two textfields: One for the first name, and another one for the last name:&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/9bc27030ebe96e1b5d8f72c21c430373.js&quot;&gt;&lt;/script&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now onto the datepicker, I used a simple approach nothing fancy since I just want to let the user pick his birthday. Create a DateTime variable, a function to show the datepicker (with initial and last date), and added a text controller to set the date picked:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/15f1e6444886d0268529d2665a545ac5.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then, since I wanted to keep the &quot;Gentelella&quot; look, I wrapped a TextField inside a Gesture Detector to display the DatePicker when the user taps on the field:&lt;/p&gt;&lt;p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/963c17e84b7b60522654b0a8f6fdc58e.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;And that&#39;s it! Our form is ready to be used!&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ5KU95xMMkh4p_kTVwxOfGV-ZNOAMBI3aWZQQKBIIFQjh09ww54z5NNH5KdF1qECOHE74CoN_CNOwMf8kNOLGvvsEKFpA7RrXiviocQfPxsQ1ZoP9zOtOqEYGWMKL9gX9Y97nBHQ_oAU/s1919/gentelella_form.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;936&quot; data-original-width=&quot;1919&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ5KU95xMMkh4p_kTVwxOfGV-ZNOAMBI3aWZQQKBIIFQjh09ww54z5NNH5KdF1qECOHE74CoN_CNOwMf8kNOLGvvsEKFpA7RrXiviocQfPxsQ1ZoP9zOtOqEYGWMKL9gX9Y97nBHQ_oAU/w640-h312/gentelella_form.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;This concludes the Updated Gentelella Admin Dashboard for Flutter.&lt;/p&gt;&lt;p&gt;Get the code here: &lt;a href=&quot;https://github.com/rjcalifornia/flutter_gentelella&quot;&gt;https://github.com/rjcalifornia/flutter_gentelella&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Demo: &lt;a href=&quot;http://development.milocker.com/gentelella/&quot;&gt;http://development.milocker.com/gentelella/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;(Just click on the sign in button)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/656976949753888896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/656976949753888896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/656976949753888896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/656976949753888896'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2021/03/flutter-admin-dashboard-for-flutter.html' title='Updated Gentelella Admin Dashboard for Flutter'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9srCU_-h4kDf09he10coqxIZkxIALlhclN-0XIX7ABDJT3cXMmjvbFMPLh3Cb6aASDcA2UzW6fF3t_O-pAlD3Yq5rOZv0OlA8CyxhJlNXgykBVyombbYo0XODXqW4nPHHm5NwCGPEKYU/s72-w640-h360-c/flutter-gentelella-admin.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-2316959380700238950</id><published>2020-09-25T22:02:00.003-06:00</published><updated>2020-09-25T22:02:55.443-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fos user symfony"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony command line"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony commands"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony fos user commands"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony fos user database"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony tutorials"/><title type='text'>Symfony Tutorial: FOSUserBundle Command Line Tools </title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiquhah3Lk16HiO3QdoCnaWOlu53J7Gi_PpzoAvz6U3ARuj_KDGQQlhvneRIkfkwO7K1T64SHIOmLmJ3RNxv-xg1sr1HOFgncJjOASiRQ_1RUq4hKXLU04PMp91kqN8QkMByIZmaM5tPyo/s1920/symfony-command-line.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1920&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiquhah3Lk16HiO3QdoCnaWOlu53J7Gi_PpzoAvz6U3ARuj_KDGQQlhvneRIkfkwO7K1T64SHIOmLmJ3RNxv-xg1sr1HOFgncJjOASiRQ_1RUq4hKXLU04PMp91kqN8QkMByIZmaM5tPyo/w640-h360/symfony-command-line.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;For some reason, Symfony removed the FOSUserBundle Command Line Tools from its site. If you are like me that has several projects depending of that bundle, you don&#39;t have the time to migrate from it, and someone needs to deploy those projects as soon as possible, you might be caught off guard. That&#39;s why I&#39;m creating this post, as a copy for those who might need it.&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Create a User&lt;/b&gt;&lt;/p&gt;&lt;p&gt;You can use the fos:user:create command to create a new user for your application. The command takes three arguments, the username, email, and password for the user you are creating.&lt;/p&gt;&lt;p&gt;For example if you wanted to create a user with username testuser, with email test@example.com and password p@ssword, you would run the command as follows.&lt;/p&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/71ca85b17bfedb05d9b6d71edf52a176.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;


&lt;p&gt;If any of the required arguments are not passed to the command, an interactive prompt will ask you to enter them. For example, if you ran the command as follows, then you would be prompted to enter the email and password for the user you want to create.&lt;/p&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/e20f35cc5c808ac330612846a9ac5e11.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;There are two options that you can pass to the command as well. They are --super-admin and --inactive.&lt;/p&gt;
&lt;p&gt;Specifying the --super-admin option will flag the user as a super admin when the user is created. A super admin has access to any part of your application. An example is provided below:&lt;/p&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/8a76980919dc001cbf2519d499f8a037.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;If you specify the --inactive option, then the user that you create will no be able to login until he is activated.&lt;/p&gt;

&lt;p&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/7a581e4dbfffcc38c8699cf1db94f480.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Activate a User&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Activate a UserThe fos:user:activate command activates an inactive user. The only argument that the command requires is the username of the user who should be activated. If no username is specified then an interactive prompt will ask you to enter one. An example of using this command is listed below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/d3fc3e694fd4e8154fbc50f5e9ac90b1.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/2316959380700238950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/2316959380700238950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2316959380700238950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2316959380700238950'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/09/symfony-tutorial-fosuserbundle-command.html' title='Symfony Tutorial: FOSUserBundle Command Line Tools '/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiquhah3Lk16HiO3QdoCnaWOlu53J7Gi_PpzoAvz6U3ARuj_KDGQQlhvneRIkfkwO7K1T64SHIOmLmJ3RNxv-xg1sr1HOFgncJjOASiRQ_1RUq4hKXLU04PMp91kqN8QkMByIZmaM5tPyo/s72-w640-h360-c/symfony-command-line.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-6180892135771244326</id><published>2020-06-29T11:22:00.003-06:00</published><updated>2020-06-29T11:31:52.743-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dart"/><category scheme="http://www.blogger.com/atom/ns#" term="dart language"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter app development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter dart"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter web"/><category scheme="http://www.blogger.com/atom/ns#" term="json flutter"/><title type='text'>Converting JSON response into correct encoding in Flutter/Dart</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkcKvqxuI3dralh4thXVOh-iVDr6vcTY6q-uLqxvNl-bK0YM4un6YTX98pq1ksCZ0JOd8kjTRzZAImdJiN9NjoQkiZrGXg20QUU5ijc4eufr-zF7dvuMWtOSPidp8l-sj47t7hZz4PmkI/s1280/flutter-json.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;351&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkcKvqxuI3dralh4thXVOh-iVDr6vcTY6q-uLqxvNl-bK0YM4un6YTX98pq1ksCZ0JOd8kjTRzZAImdJiN9NjoQkiZrGXg20QUU5ijc4eufr-zF7dvuMWtOSPidp8l-sj47t7hZz4PmkI/w625-h351/flutter-json.png&quot; width=&quot;625&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was surprising not finding clear instructions on how to properly display special characters from a JSON response, in Flutter. That&#39;s why I&#39;m posting this short article, for future reference.&lt;/div&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt; I had some words with accents such as &quot;café&quot;, or &quot;mañana&quot; in my JSON response. Turns out that when Flutter &quot;gets&quot; the response, it uses the default encoding to displays characters. Even if your JSON has the charset in its header, Flutter will fallback to its default encoding, which doesn&#39;t support special characters. So how to properly display characters?&amp;nbsp; Well, get the body bytes, decode it to UTF8, and then convert it. to use it in any way you want. Like this:&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;script src=&quot;https://gist.github.com/rjcalifornia/7c731e31f5ae62ffa867d9b9efc4b56e.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple as that. This works in Flutter Web, and I really hope it works on Mobile. I haven&#39;t tried it.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This concludes converting JSON response into correct encoding in Flutter/Dart. Any questions, feel free to drop a comment below.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/6180892135771244326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/6180892135771244326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/6180892135771244326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/6180892135771244326'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/06/converting-json-response-into-correct.html' title='Converting JSON response into correct encoding in Flutter/Dart'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkcKvqxuI3dralh4thXVOh-iVDr6vcTY6q-uLqxvNl-bK0YM4un6YTX98pq1ksCZ0JOd8kjTRzZAImdJiN9NjoQkiZrGXg20QUU5ijc4eufr-zF7dvuMWtOSPidp8l-sj47t7hZz4PmkI/s72-w625-h351-c/flutter-json.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-1890056486473914860</id><published>2020-02-02T11:01:00.001-06:00</published><updated>2020-03-08T10:35:56.615-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="dart language"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter admin dashboard"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter responsive"/><category scheme="http://www.blogger.com/atom/ns#" term="ios development"/><title type='text'>Create a Responsive Admin Template for Flutter</title><content type='html'>&lt;br /&gt;
Flutter&amp;nbsp;is an open-source UI software development kit created by Google that lets you create Android/iOS apps, as well as Web applications. If you want to create a web application, Flutter already offers some &lt;a href=&quot;https://github.com/flutter/samples/tree/master/gallery/gallery/lib/studies/starter&quot;&gt;starter apps&lt;/a&gt;, however its source code is not actually easy to follow for beginners. Well, I wanted to use the Responsive Layout Starter app, but to use it I had to major code refactoring, which was a letdown. That&#39;s why I decided to create a Responsive Admin Template for Flutter&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;

&lt;b&gt;Overview&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The design selected for the template is the &lt;a href=&quot;https://github.com/ColorlibHQ/gentelella&quot;&gt;Gentelella Admin Dashboard&lt;/a&gt; Template by ColorlibHQ:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://camo.githubusercontent.com/0fc2018c171a0d6e721ad421391c006f316eee03/68747470733a2f2f63646e2e636f6c6f726c69622e636f6d2f77702f77702d636f6e74656e742f75706c6f6164732f73697465732f322f67656e74656c656c6c612d61646d696e2d74656d706c6174652d707265766965772e6a7067&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;582&quot; data-original-width=&quot;800&quot; height=&quot;464&quot; src=&quot;https://camo.githubusercontent.com/0fc2018c171a0d6e721ad421391c006f316eee03/68747470733a2f2f63646e2e636f6c6f726c69622e636f6d2f77702f77702d636f6e74656e742f75706c6f6164732f73697465732f322f67656e74656c656c6c612d61646d696e2d74656d706c6174652d707265766965772e6a7067&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I settled for this design because is the one I always use for my Symfony projects for its clean design, and also because I already made a &lt;a href=&quot;https://elgg.org/plugins/2942682&quot;&gt;port for the elgg framework&lt;/a&gt;. Yeah, I really like this design.&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Getting Started:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. Start Visual Studio Code. Go to menu “&lt;b&gt;View -&amp;gt; Command Palette&lt;/b&gt;” and select the&amp;nbsp; “&lt;b&gt;Flutter: New Project&lt;/b&gt;” option:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;167&quot; data-original-width=&quot;640&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. Open the main.dart file, remove everything and use this code:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/fe817a3638f3ba9c07bc17a0a3e080eb.js&quot;&gt;&lt;/script&gt;

3.Create a folder apps and make a home.dart file:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_ACp8COvGP21klW0Ct44hcAdHfJk2GrwKbE3esWS8dgZWM3M0LQ-mh_2EtaqE-VP58tRk_EqWttweXtQe6woHk_jOX8EP7b314IsMfkO_oo9P8IvBslBugADxmOTNLkTefYdh5XDlZ3k/s1600/flutter-home-dart.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;92&quot; data-original-width=&quot;326&quot; height=&quot;112&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_ACp8COvGP21klW0Ct44hcAdHfJk2GrwKbE3esWS8dgZWM3M0LQ-mh_2EtaqE-VP58tRk_EqWttweXtQe6woHk_jOX8EP7b314IsMfkO_oo9P8IvBslBugADxmOTNLkTefYdh5XDlZ3k/s400/flutter-home-dart.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
4. Open the home.dart file. We will define the AppBar background color, the text color, and also we will be defining the home content, which will see soon:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/edef83a36ee61ca8c81d2f5408f53f1a.js&quot;&gt;&lt;/script&gt;

5. Now, create a &lt;b&gt;widgets&lt;/b&gt; folder, an inside it create two more folders: &lt;b&gt;screens&lt;/b&gt; and &lt;b&gt;ui&lt;/b&gt;:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinyctvejWHz3dh4Ju49V6bSm1BccGcIYFdnAeZQch0OxNN4ttutjmleO7UhViM19GYqWuNru3fZ1WF-aGaZ330K7GWHvraWICeXMWIXrNgaQd5scFYaA_DyaVJLjuNIyc1ObqyLPMzHmo/s1600/flutter-widgets-screens-ui.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;85&quot; data-original-width=&quot;300&quot; height=&quot;113&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinyctvejWHz3dh4Ju49V6bSm1BccGcIYFdnAeZQch0OxNN4ttutjmleO7UhViM19GYqWuNru3fZ1WF-aGaZ330K7GWHvraWICeXMWIXrNgaQd5scFYaA_DyaVJLjuNIyc1ObqyLPMzHmo/s400/flutter-widgets-screens-ui.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
6. Inside the ui folder, create a dashboard.dart file. Create a stateful widget, and create two variables:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;_currentPage:&lt;/b&gt; An int variable that will hold the page index&lt;br /&gt;
&lt;b&gt;_pages:&lt;/b&gt; List widget variable which will hold the pages of the app (&lt;b&gt;Homepage()&lt;/b&gt; and &lt;b&gt;ReceiptForm()&lt;/b&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/f37f92818007a7f071591d6d666d5b79.js&quot;&gt;&lt;/script&gt;

7. To accomplish the same look as the Gentelella Admin Template, the first thing that we need to work on is how to display both the sidebar and content in the same line. For that, we are going to return a row, and inside the row we will be having as Children a&amp;nbsp;&lt;b&gt;Container class&lt;/b&gt; (for the sidebar) and a &lt;b&gt;Expanded Class&lt;/b&gt; (for the AppBar and the page content):&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/5369d2528034e22b7320c2fd27a596e0.js&quot;&gt;&lt;/script&gt;

8. Inside the &lt;b&gt;Container class&lt;/b&gt;, we will add the &lt;b&gt;Drawer&lt;/b&gt; because we need to define the sidebar color and also the width. The drawer will contain the &lt;b&gt;DrawerHeader&lt;/b&gt; with the user information, and also a ListTile with links to each page that our app will have, which will set/change the index of the _currentPage variable:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/5db1de04a91addcfe57f7cf46547521a.js&quot;&gt;&lt;/script&gt;

9. The &lt;b&gt;Expanded Class&lt;/b&gt; will have the &lt;b&gt;AppBar&lt;/b&gt; with some action icons, and also the body of the page, which will change every time you click on a menu link:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/497d805465ab11e846be2952c6720e81.js&quot;&gt;&lt;/script&gt;

10. Now, in the screens folder, create two files: &lt;b&gt;add_users.dart&lt;/b&gt; and also &lt;b&gt;principal.dart&lt;/b&gt; which will be the pages of our web app. Both are very simple, with the main difference the body of each one will hold its content inside a &lt;b&gt;SingleChildScrollView&lt;/b&gt; class:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/611dcd95767198a63604facc4a34c7e6.js&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;https://gist.github.com/rjcalifornia/c36dfd32e79db9b78ebafe3a02d32fa4.js&quot;&gt;&lt;/script&gt;

11. And that&#39;s it! We just created a responsive admin dashboard for Flutter:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaqOvJmXezyLLn0_AXBHKgMJRiIEq2PHzGp9phsRoq03LikOJsJ7J5ABAVhC7r7tJcXkoy0qW2-nd0B3OAwMEwtmZyNRTQFeSp7xA1MWDjZcaFKXuSThmEnjwtwNeq5Ic2H_e7olAr8SE/s1600/gentelella_admin_dashboard.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;785&quot; data-original-width=&quot;1600&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaqOvJmXezyLLn0_AXBHKgMJRiIEq2PHzGp9phsRoq03LikOJsJ7J5ABAVhC7r7tJcXkoy0qW2-nd0B3OAwMEwtmZyNRTQFeSp7xA1MWDjZcaFKXuSThmEnjwtwNeq5Ic2H_e7olAr8SE/s640/gentelella_admin_dashboard.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
Grab the source code here: &lt;a href=&quot;https://github.com/rjcalifornia/gentelella_flutter&quot; target=&quot;_blank&quot;&gt;Gentelella Flutter&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can also see it in action here: &lt;a href=&quot;http://demo.swsocialweb.com/gentelella_buildjs/index.html#/&quot; target=&quot;_blank&quot;&gt;Flutter Responsive Demo&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/1890056486473914860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/1890056486473914860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/1890056486473914860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/1890056486473914860'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/02/create-responsive-admin-template-for.html' title='Create a Responsive Admin Template for Flutter'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s72-c/flutter-create-project.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-9136658942213649862</id><published>2020-01-30T07:40:00.000-06:00</published><updated>2020-01-30T17:27:54.915-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg community"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg community page"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg framework"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg github"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg php framework"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg plugins"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg themes"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Elgg Community Theme Proposal</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRkzMzM_N6kQQUZ_VOWDZ6juxQgcS4x0aGjP-WTbSp2k2Fur-JWgePXDnryDCxp3XHDu-KckJ7Ow-v3tfJyN2SsxSrdLwGLjFcvlLHuMXgaE8TvNsdCZjAnCivUl3Pck0FWJ0soqajflo/s1600/elgg-official-homepage.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1187&quot; data-original-width=&quot;1600&quot; height=&quot;474&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRkzMzM_N6kQQUZ_VOWDZ6juxQgcS4x0aGjP-WTbSp2k2Fur-JWgePXDnryDCxp3XHDu-KckJ7Ow-v3tfJyN2SsxSrdLwGLjFcvlLHuMXgaE8TvNsdCZjAnCivUl3Pck0FWJ0soqajflo/s640/elgg-official-homepage.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;Current elgg homepage&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The elgg community site needs a new design urgently. As you can see in the image above, current design is not attracting new users, and it is giving the vibe that the project is abandoned.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
I &lt;a href=&quot;https://github.com/Elgg/community_theme/issues/51&quot;&gt;already suggested on github&lt;/a&gt; to redesign the landing page of the elgg community site. However, I realized that not only the landing needs to be changed, but also the entire community site. So instead of just complaining, submitting issues to github or opening a discussion post in the elgg Feedback and Planning Group, I decided to start working on a proposal for the new design. I didn&#39;t want to reinventing the wheel, I used two opensource projects and integrated it with elgg. Without further due, here&#39;s the proposal:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPOuUltP7fGsyXZRkOtYrwJ3c8FfBalzo8I9-xwpXDvINZkqBMcUFoAntGQ6AlzQ-LEX6xM1dUk62re9gwNHfpr_F_S6qHwX5AJAyuriHSsjLX6oTIUkAQ51X5H89J_dDym193KROixs8/s1600/elgg-community-landing-slider.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;787&quot; data-original-width=&quot;1600&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPOuUltP7fGsyXZRkOtYrwJ3c8FfBalzo8I9-xwpXDvINZkqBMcUFoAntGQ6AlzQ-LEX6xM1dUk62re9gwNHfpr_F_S6qHwX5AJAyuriHSsjLX6oTIUkAQ51X5H89J_dDym193KROixs8/s640/elgg-community-landing-slider.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Landing Main Banner&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKQcLKk04xvTD6_ZHZIeAYyWpjHwtBBcraje96r7lKj3Wgipc465Tw6EHltc7Tcr3zyeU2GlXj7CyddX3ESS8RC6E0VkTISS0hWpm04v_VnPpTZqQT2n9NedtCKefzOO6FEfXRwvyVt6M/s1600/elgg-community-landing-getting-started.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;791&quot; data-original-width=&quot;1600&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKQcLKk04xvTD6_ZHZIeAYyWpjHwtBBcraje96r7lKj3Wgipc465Tw6EHltc7Tcr3zyeU2GlXj7CyddX3ESS8RC6E0VkTISS0hWpm04v_VnPpTZqQT2n9NedtCKefzOO6FEfXRwvyVt6M/s640/elgg-community-landing-getting-started.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Landing Guide Section&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8GRLWaTqPLDBg3Au5uUgrFncmOmdJZc-axON3oxDDHFS_dAj4acfC9ZnafFXVP17nLjfAc-BA4s-SYda1bvt_WwBcGrYOBCFCAutM92H9M5fR2ncUl40iBwdVADIigb0mlxEdo3_4bq4/s1600/elgg-community-landing-resources.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;789&quot; data-original-width=&quot;1600&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8GRLWaTqPLDBg3Au5uUgrFncmOmdJZc-axON3oxDDHFS_dAj4acfC9ZnafFXVP17nLjfAc-BA4s-SYda1bvt_WwBcGrYOBCFCAutM92H9M5fR2ncUl40iBwdVADIigb0mlxEdo3_4bq4/s640/elgg-community-landing-resources.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Landing Resources Section&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdaEVtZh4U682ZuI2IPz9ANxImNoJ8gvVVE7MTkpVdxc2DGLI1-pi9Sh75H7al4fKZxJba7c4nFjMKKLE8JsDyvBxa49QPVSiowRGKGNFBBTSAuCXN-3W1cgA18mhEz-NJ_GJwy3EBRf4/s1600/elgg-community-activity.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;765&quot; data-original-width=&quot;1600&quot; height=&quot;304&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdaEVtZh4U682ZuI2IPz9ANxImNoJ8gvVVE7MTkpVdxc2DGLI1-pi9Sh75H7al4fKZxJba7c4nFjMKKLE8JsDyvBxa49QPVSiowRGKGNFBBTSAuCXN-3W1cgA18mhEz-NJ_GJwy3EBRf4/s640/elgg-community-activity.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Activity Page&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;792&quot; data-original-width=&quot;1600&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hAASZ_VIyQ_kixf9tljBus3WWOOGJ5qvwWfPJKvdfV7Is2DU5fBufYmdIQfzjLgt6EnTZ6XFCzHoSgHMCEPH0fLSq2_hTJCs47c43J3cP6r_6onA-IrLEE7zHX7TuBWZ5OmL1XLYFLo/s640/elgg-community-profile.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;640&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Profile Page&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hAASZ_VIyQ_kixf9tljBus3WWOOGJ5qvwWfPJKvdfV7Is2DU5fBufYmdIQfzjLgt6EnTZ6XFCzHoSgHMCEPH0fLSq2_hTJCs47c43J3cP6r_6onA-IrLEE7zHX7TuBWZ5OmL1XLYFLo/s1600/elgg-community-profile.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hAASZ_VIyQ_kixf9tljBus3WWOOGJ5qvwWfPJKvdfV7Is2DU5fBufYmdIQfzjLgt6EnTZ6XFCzHoSgHMCEPH0fLSq2_hTJCs47c43J3cP6r_6onA-IrLEE7zHX7TuBWZ5OmL1XLYFLo/s1600/elgg-community-profile.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Both designs (landing page and community) are from&amp;nbsp;&lt;a href=&quot;https://github.com/BootstrapDash&quot; target=&quot;_blank&quot;&gt;BootstrapDash&lt;/a&gt;, both are under the &lt;a href=&quot;https://github.com/BootstrapDash/StarAdmin-Free-Bootstrap-Admin-Template/blob/master/LICENSE&quot; target=&quot;_blank&quot;&gt;MIT license&lt;/a&gt;, which means that they can be used for the elgg community.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://github.com/BootstrapDash/StarAdmin-Free-Bootstrap-Admin-Template&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Star Admin Template Source Code&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://www.bootstrapdash.com/product/simple-landing-page/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://www.bootstrapdash.com/product/simple-landing-page/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;BD Landing Page Source Code&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
It is still missing some features, elements, and it still has some designs from the Aalborg theme, which I used as foundation to built this theme. I don&#39;t know if this theme will be picked up or even considered, however I increased my skills with elgg, so I&#39;ve got that goin&#39; for me, which is nice.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://github.com/rjcalifornia/star-admin-theme&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Star Admin for elgg Source Code&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/9136658942213649862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/9136658942213649862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/9136658942213649862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/9136658942213649862'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/01/elgg-community-theme-proposal.html' title='Elgg Community Theme Proposal'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRkzMzM_N6kQQUZ_VOWDZ6juxQgcS4x0aGjP-WTbSp2k2Fur-JWgePXDnryDCxp3XHDu-KckJ7Ow-v3tfJyN2SsxSrdLwGLjFcvlLHuMXgaE8TvNsdCZjAnCivUl3Pck0FWJ0soqajflo/s72-c/elgg-official-homepage.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-2616217867513887826</id><published>2020-01-29T19:31:00.001-06:00</published><updated>2020-01-29T19:31:34.939-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="create stepper flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="ios development"/><category scheme="http://www.blogger.com/atom/ns#" term="simple flutter stepper"/><category scheme="http://www.blogger.com/atom/ns#" term="stepper form flutter"/><title type='text'>Create a Simple Stepper with Flutter</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0aFVSl7NpAZcjAEPOg2QL7kQ9ii_GOVNUlpLm5NDBsOBTkdqN-ekzr9ZOdur5I2vnA7kvsJhkS2nAYW4bsYeNvclOZ_x5x8la4TTvJ_FeLwcTRnls7MvVQiBug1KNhpdcvRaQKp71zlI/s1600/flutter-stepper-tutorial.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0aFVSl7NpAZcjAEPOg2QL7kQ9ii_GOVNUlpLm5NDBsOBTkdqN-ekzr9ZOdur5I2vnA7kvsJhkS2nAYW4bsYeNvclOZ_x5x8la4TTvJ_FeLwcTRnls7MvVQiBug1KNhpdcvRaQKp71zlI/s640/flutter-stepper-tutorial.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/monkik&quot; title=&quot;monkik&quot;&gt;monkik&lt;/a&gt;, &lt;a href=&quot;https://www.flaticon.com/authors/pixelmeetup&quot; title=&quot;Pixelmeetup&quot;&gt;Pixelmeetup&lt;/a&gt;, and &lt;a href=&quot;https://www.flaticon.com/authors/freepik&quot; title=&quot;Freepik&quot;&gt;Freepik&lt;/a&gt;  from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt; www.flaticon.com&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;1. Start Visual Studio Code. Go to menu “&lt;b&gt;View -&amp;gt; Command Palette&lt;/b&gt;” and select the  “&lt;b&gt;Flutter: New Project&lt;/b&gt;” option:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;167&quot; data-original-width=&quot;640&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. As usual the &quot;&lt;b&gt;Counter App Example&lt;/b&gt;&quot; will be created. In this occasion I will work here. Locate the body, and remove the content inside the Column&#39;s Children:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/f0a75c3a2b477c250de2ca9c2b7f8acc.js&quot;&gt;&lt;/script&gt;

3. Let&#39;s start creating the &lt;b&gt;Stepper&lt;/b&gt; by adding the &lt;b&gt;Stepper class&lt;/b&gt;. Add the type and also the steps:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/ad0303b927b10bd31b09081487a246ed.js&quot;&gt;&lt;/script&gt;

4. Pretty simple, am I right? If you try to run the app right now you will get an error, because our Stepper doesn&#39;t have steps:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQW933gbVZpNHARpArX4dcvu8rYvUhW6-1nGtn-Kzf9R1_gTayypR5K57vaLkV3I-xXiKIYnoOFnjNIEJvTwXm_P2mWcgM-lcU5d6lUbxrSHJfepBiriHSZIB-8h1-7vBcl_ELKQpKDyM/s1600/stepper-add-run-no-steps.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;415&quot; data-original-width=&quot;625&quot; height=&quot;424&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQW933gbVZpNHARpArX4dcvu8rYvUhW6-1nGtn-Kzf9R1_gTayypR5K57vaLkV3I-xXiKIYnoOFnjNIEJvTwXm_P2mWcgM-lcU5d6lUbxrSHJfepBiriHSZIB-8h1-7vBcl_ELKQpKDyM/s640/stepper-add-run-no-steps.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
5. Let&#39;s add our first step. Inside the &lt;b&gt;steps: []&lt;/b&gt; list, we will add a simple &lt;b&gt;TextFormField,&lt;/b&gt; in which we will allow the user to add any text, set a step state, give it a title (required), and also allow the autocorrect feature:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/0a4f2acabc6e28197b8b23dd0df5588b.js&quot;&gt;&lt;/script&gt;

6. You can run the app now. Go ahead, fire up the emulator and run without debugging:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWiyKn7ltgFdoaxJjvboLFGD6pvnRssyH8iodKQLWbwbQOITmDxwwBnlHuSk8PPaVDi0P9EIw23rNL-Rst7c8I1jVBu_8OfHhZugqPihNmB9uEFU8i63W09iJeVH9CzQNLuC0EHzpIYfs/s1600/first-step-flutter-app.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;603&quot; data-original-width=&quot;626&quot; height=&quot;612&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWiyKn7ltgFdoaxJjvboLFGD6pvnRssyH8iodKQLWbwbQOITmDxwwBnlHuSk8PPaVDi0P9EIw23rNL-Rst7c8I1jVBu_8OfHhZugqPihNmB9uEFU8i63W09iJeVH9CzQNLuC0EHzpIYfs/s640/first-step-flutter-app.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
7. Neat isn&#39;t it? However, the field is not explicit enough for the user. To solve that, let&#39;s add some input decoration, to &lt;b&gt;show a placeholder&lt;/b&gt;, a &lt;b&gt;field hint&lt;/b&gt; and also an &lt;b&gt;icon&lt;/b&gt; to make it prettier:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/60ac56adf692e51c4af9a3ce20cb42f1.js&quot;&gt;&lt;/script&gt;

Check out the complete step with decoration included:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/ee79931ae5bd114ebc8904bd1f2cc078.js&quot;&gt;&lt;/script&gt;

8. Run the app to see the changes:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBBKNY-S__0_a8TQGciWC0Fdm_J29kOob98-FMiOqlOgc_qQFQzvMsd518XYo_WN6GfaPvA4KRMIlM4MLgMkrfcPfSDky7Hkr8PFABfrfqx_o5KrXSBmijM8YmfmHmuIWvaLR2JA51ZMg/s1600/stepper-with-decoration-dart.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;404&quot; data-original-width=&quot;625&quot; height=&quot;410&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBBKNY-S__0_a8TQGciWC0Fdm_J29kOob98-FMiOqlOgc_qQFQzvMsd518XYo_WN6GfaPvA4KRMIlM4MLgMkrfcPfSDky7Hkr8PFABfrfqx_o5KrXSBmijM8YmfmHmuIWvaLR2JA51ZMg/s640/stepper-with-decoration-dart.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
9. Let&#39;s create an &lt;b&gt;Amount step&lt;/b&gt;, which will look exactly like the previous one, except for the title:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/0dfb0c87974bd0a76c33826d98d55c34.js&quot;&gt;&lt;/script&gt;

10. Now we have two steps but cannot move forward because that functionality has not been coded yet. First, declare a int variable called&amp;nbsp;&lt;b&gt;currStep&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/b6095eefc2bed10a520baa36990f264d.js&quot;&gt;&lt;/script&gt;

11. Now, let&#39;s go back to the &lt;b&gt;Stepper&lt;/b&gt;, and right below the &lt;b&gt;Stepper Type&lt;/b&gt;, add the following code that will set the current step, and also change the step index so that you can move between steps:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/eb1cb61b4c4512ba3a945ee5439578fd.js&quot;&gt;&lt;/script&gt;

12. Add functionality to the &quot;&lt;b&gt;Cancel&lt;/b&gt;&quot; button, and also allow the user to show the step when it is tapped:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/c82fc09603b0916c4f96d3abda3aec3b.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm4BQbPJ25ty7owSP-Piz635ou0kOlQcb6lkepCS9GW_kb4vv1yBCugvvqMkfScciBwxEIHcs4XyiqQrncvdq-Qp7nBfvpt24vEDP5zVx1nH5HCeqy99XuuNTQDqjZHlVYpYKDyRvKah8/s1600/flutter-stepper-continue-cancel-step.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;478&quot; data-original-width=&quot;620&quot; height=&quot;490&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm4BQbPJ25ty7owSP-Piz635ou0kOlQcb6lkepCS9GW_kb4vv1yBCugvvqMkfScciBwxEIHcs4XyiqQrncvdq-Qp7nBfvpt24vEDP5zVx1nH5HCeqy99XuuNTQDqjZHlVYpYKDyRvKah8/s640/flutter-stepper-continue-cancel-step.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
14. Finally, add a&lt;b&gt; button that will&lt;/b&gt; send the form information to the server:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/2c672acc90b8457d53a5544bef322040.js&quot;&gt;&lt;/script&gt;

15. And that&#39;s it! You just created a &lt;b&gt;Simple Stepper with Flutter&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-IWiVOMhrvR8HcGmWETtMjQAGYfxn2knmGBH7GWZNXcAVa9gdNz34cU1XHk42jItuO5Aeaj5cp4eSq5LW6uF0eL11eb9d9GwfFo6jzJ1T5SuK1yBkvC64S0rklCDdnWREsRhN-5cLQ7A/s1600/flutter-stepper-app-completed.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;591&quot; data-original-width=&quot;624&quot; height=&quot;606&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-IWiVOMhrvR8HcGmWETtMjQAGYfxn2knmGBH7GWZNXcAVa9gdNz34cU1XHk42jItuO5Aeaj5cp4eSq5LW6uF0eL11eb9d9GwfFo6jzJ1T5SuK1yBkvC64S0rklCDdnWREsRhN-5cLQ7A/s640/flutter-stepper-app-completed.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
16. As you noticed, this &lt;b&gt;Stepper&lt;/b&gt; doesn&#39;t have any type of validation, and doesn&#39;t save the data entered. This is intentional since it would be hard just to cram everything up in one post, and instead I explained how to create one without any complicated functionality so that you can understand how to create a Stepper. Next article &lt;b&gt;I will add validation&lt;/b&gt;, and how to send the information to the server.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Get the code here: &lt;a href=&quot;https://github.com/rjcalifornia/flutter_stepper_project&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Simple Stepper with Flutter&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/2616217867513887826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/2616217867513887826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2616217867513887826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2616217867513887826'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/01/create-simple-stepper-with-flutter.html' title='Create a Simple Stepper with Flutter'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0aFVSl7NpAZcjAEPOg2QL7kQ9ii_GOVNUlpLm5NDBsOBTkdqN-ekzr9ZOdur5I2vnA7kvsJhkS2nAYW4bsYeNvclOZ_x5x8la4TTvJ_FeLwcTRnls7MvVQiBug1KNhpdcvRaQKp71zlI/s72-c/flutter-stepper-tutorial.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-1942483590404941738</id><published>2020-01-26T22:43:00.000-06:00</published><updated>2020-02-02T11:03:18.027-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="El Salvador"/><category scheme="http://www.blogger.com/atom/ns#" term="Keto"/><category scheme="http://www.blogger.com/atom/ns#" term="keto diet"/><category scheme="http://www.blogger.com/atom/ns#" term="keto food"/><category scheme="http://www.blogger.com/atom/ns#" term="keto grocery shopping"/><category scheme="http://www.blogger.com/atom/ns#" term="keto meals"/><category scheme="http://www.blogger.com/atom/ns#" term="keto snacks"/><title type='text'>Keto: Week 1</title><content type='html'>&lt;!-- Compiled and minified CSS --&gt;
    &lt;link href=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css&quot; rel=&quot;stylesheet&quot;&gt;&lt;/link&gt;

    &lt;!-- Compiled and minified JavaScript --&gt;
    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMmi-vZVLhTfBaNV5MmMJ_qVNBiJzXJP8zvQDo2swACAXE56l8nLtfNBPeGGPHkWE5s-d5kYHIc9nfX1M0L2lu-pnHNBiCqXd34S-cRxDpyRPTaaCLdwNvJZJ7EJBWhGh4rO1I7fXC4Ro/s1600/keto-week-two.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMmi-vZVLhTfBaNV5MmMJ_qVNBiJzXJP8zvQDo2swACAXE56l8nLtfNBPeGGPHkWE5s-d5kYHIc9nfX1M0L2lu-pnHNBiCqXd34S-cRxDpyRPTaaCLdwNvJZJ7EJBWhGh4rO1I7fXC4Ro/s640/keto-week-two.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/photo3idea-studio&quot; title=&quot;photo3idea_studio&quot;&gt;photo3idea_studio&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
As I stated the last week, I will be updating each week with weight information, ways to deal with anxiety, and how much money I will be saving by not dinning out.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Let&#39;s start by saying that I dinned out, however as hard as it was, I ordered keto-friendly food. The things I ate at restaurants were:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;table class=&quot;striped&quot;&gt;
        &lt;thead&gt;
&lt;tr&gt;
              &lt;th&gt;Dish ordered&lt;/th&gt;
              &lt;th&gt;Quantity&lt;/th&gt;
              &lt;th&gt;Price&lt;/th&gt;
          &lt;/tr&gt;
&lt;/thead&gt;

        &lt;tbody&gt;
&lt;tr&gt;
            &lt;td&gt;Chicken soup&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD $3.55&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Fried Mozzarella fingers&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$4.50&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Sliced hot dogs with tomato sauce&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.50&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Fried tamal&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$0.75&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Vegan enchiladas&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$4.50&lt;/td&gt;
          &lt;/tr&gt;
&lt;/tbody&gt;
      &lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Total: USD $14.80&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
And for beverages I always had coffee. Black coffee without sugar. I&#39;m getting used to not using sugar but it is hard. Also, of all of the things I ate, the less keto was the tamal, but it was deep fried so I guess that was a 50/50?&lt;br /&gt;
&lt;br /&gt;
I had to replenish some things in my fridge. This is what I had to buy again:&lt;br /&gt;
&lt;br /&gt;
&lt;table class=&quot;striped&quot;&gt;
        &lt;thead&gt;
&lt;tr&gt;
              &lt;th&gt;Item Name&lt;/th&gt;
              &lt;th&gt;Quantity&lt;/th&gt;
              &lt;th&gt;Item Price&lt;/th&gt;
          &lt;/tr&gt;
&lt;/thead&gt;

        &lt;tbody&gt;
&lt;tr&gt;
            &lt;td&gt;Broccoli&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD $1.22&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Bacon&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.37&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Breakfast sausage&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.92&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Eggs (15 pack)&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$2.60&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Organic Dark Chocolate (for beverages)&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$0.90&lt;/td&gt;
          &lt;/tr&gt;
&lt;/tbody&gt;
      &lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Total: USD $8.01&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Now, for fighting my hunger anxiety (snacks), I bought the following items&lt;br /&gt;
&lt;br /&gt;
&lt;table class=&quot;striped&quot;&gt;
        &lt;thead&gt;
&lt;tr&gt;
              &lt;th&gt;Item Name&lt;/th&gt;
              &lt;th&gt;Quantity&lt;/th&gt;
              &lt;th&gt;Item Price&lt;/th&gt;
          &lt;/tr&gt;
&lt;/thead&gt;

        &lt;tbody&gt;
&lt;tr&gt;
            &lt;td&gt;Platano with salt&lt;/td&gt;
            &lt;td&gt;2&lt;/td&gt;
            &lt;td&gt;USD $1.26&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Party Dip of Loroco&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.43&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Dijon Mustard&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.95&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;GNC MP Combat Crunch Bars (Coconut and Chocolate)&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$35.99&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Bananas&lt;/td&gt;
            &lt;td&gt;12&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.00&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Tangerines&lt;/td&gt;
            &lt;td&gt;12&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$1.00&lt;/td&gt;
          &lt;/tr&gt;
&lt;/tbody&gt;
      &lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Total: USD $42.63&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I bought some snack bars from GNC, because I get some hunger attacks and I will any food (keto or not). It is kinda expensive but I wanted to give it a try, since I already had the lame GNC card. I already ate two of them (one saturday and one sunday), and it ended my hunger attacks, so it kinda works I guess?&lt;br /&gt;
&lt;br /&gt;
As for checking my weight, it is still too early to see any weight change, so I&#39;m postponing that until next week,&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/1942483590404941738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/1942483590404941738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/1942483590404941738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/1942483590404941738'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/01/keto-week-2.html' title='Keto: Week 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMmi-vZVLhTfBaNV5MmMJ_qVNBiJzXJP8zvQDo2swACAXE56l8nLtfNBPeGGPHkWE5s-d5kYHIc9nfX1M0L2lu-pnHNBiCqXd34S-cRxDpyRPTaaCLdwNvJZJ7EJBWhGh4rO1I7fXC4Ro/s72-c/keto-week-two.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-8342060971769838673</id><published>2020-01-19T13:24:00.000-06:00</published><updated>2020-01-19T13:24:11.221-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="free online image editor"/><category scheme="http://www.blogger.com/atom/ns#" term="free photoshop alternative"/><category scheme="http://www.blogger.com/atom/ns#" term="gimp alternative"/><category scheme="http://www.blogger.com/atom/ns#" term="image editing"/><category scheme="http://www.blogger.com/atom/ns#" term="online image editor"/><category scheme="http://www.blogger.com/atom/ns#" term="photoshop alternative"/><category scheme="http://www.blogger.com/atom/ns#" term="pixlr image editor"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type='text'>Pixlr: The best free online image editor</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKA52RURQ2ZsTlxTRES1OlPqw4YU3PehAp0-SsNUP2sbcvbrOv_FYbWpsxzqQhrbA-rTOuupaQ5FKoxx87X9c-iA7cMoM1UUmPCd7k7jjk9uKuj7VGhVL-Xwz0-_Z-l0uzT-fjXDScpA/s1600/pixlr-site-home.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;637&quot; data-original-width=&quot;1256&quot; height=&quot;324&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKA52RURQ2ZsTlxTRES1OlPqw4YU3PehAp0-SsNUP2sbcvbrOv_FYbWpsxzqQhrbA-rTOuupaQ5FKoxx87X9c-iA7cMoM1UUmPCd7k7jjk9uKuj7VGhVL-Xwz0-_Z-l0uzT-fjXDScpA/s640/pixlr-site-home.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Pixlr is labeled as the photo editor for everything, and it is true. It is not just an editor that lets you &quot;cut and paste&quot;. It actually brings the majority of features you find in major commercial and opensource image editor for free and without leaving eating up disk space in your computer.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;
Most of the reviews you see around, are just bloggers that do a one-time review and then forget about the software or site. This is not the case. Ever since I started writing articles here in Blogger again, I wanted every article to have a nice image, an attractive image. Since I have little money to spend on a regular image editor, I decided to search for a free one. Gimp was out of the question, since it looks dated, and other commercial alternatives are extremely expensive. I was in a very bad situation because majority of online editors were basic (yeah I know free), but I needed a powerful free image editor just for blogs. Then I found Pixlr, and it was fast, loaded with a wide variety of image manipulation tools, with a modern look and feel, and best of all: Free.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One of the best feature it has is the ability to add image as layers, something that you cannot find in the majority of online image editors. Besides that, it allows you to save images in full quality, in any resolution for free. Check it out:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQeppEei0gdsisUMzh9OEE_GWtKhdyQ_LAcUMYMlFn1ReHhhRo4q6ldt8KTmYgYtvw0V1vkKfZwJYfPedvJ3iW2THCXHZ22pgZtBdfc_8YDnbIUZZ5lJ1WIJt6j0cKH1xrRsNeClf6CqY/s1600/pixlr-homepage.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;683&quot; data-original-width=&quot;1280&quot; height=&quot;340&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQeppEei0gdsisUMzh9OEE_GWtKhdyQ_LAcUMYMlFn1ReHhhRo4q6ldt8KTmYgYtvw0V1vkKfZwJYfPedvJ3iW2THCXHZ22pgZtBdfc_8YDnbIUZZ5lJ1WIJt6j0cKH1xrRsNeClf6CqY/s640/pixlr-homepage.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Pixlr Editor Home Screen&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipWpcvKiSK7b2KimvA_CwTsMC59hWGoIugMPMdm182rTL6Giucx0BTZVSXZvu89e_xB4ZxOZM_mjpQ0JVmtKQxZbw7ggVos2kVYF9nvHzDARw3LtO8kLCYqlRwxA2u-pBl8CU_2kUL17w/s1600/editing-image-pixlr.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipWpcvKiSK7b2KimvA_CwTsMC59hWGoIugMPMdm182rTL6Giucx0BTZVSXZvu89e_xB4ZxOZM_mjpQ0JVmtKQxZbw7ggVos2kVYF9nvHzDARw3LtO8kLCYqlRwxA2u-pBl8CU_2kUL17w/s640/editing-image-pixlr.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Editing an image with multiple layers&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Since it has been a wonderful experience using Pixlr Editor, I will be getting the Pro version, which charges on a monthly basis and it is affordable.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/8342060971769838673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/8342060971769838673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/8342060971769838673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/8342060971769838673'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/01/pixlr-best-free-online-image-editor.html' title='Pixlr: The best free online image editor'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKA52RURQ2ZsTlxTRES1OlPqw4YU3PehAp0-SsNUP2sbcvbrOv_FYbWpsxzqQhrbA-rTOuupaQ5FKoxx87X9c-iA7cMoM1UUmPCd7k7jjk9uKuj7VGhVL-Xwz0-_Z-l0uzT-fjXDScpA/s72-c/pixlr-site-home.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-8683027913861041618</id><published>2020-01-19T12:59:00.000-06:00</published><updated>2020-02-02T11:03:08.855-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eating healthier"/><category scheme="http://www.blogger.com/atom/ns#" term="El Salvador"/><category scheme="http://www.blogger.com/atom/ns#" term="how to lose weight fast"/><category scheme="http://www.blogger.com/atom/ns#" term="Keto"/><category scheme="http://www.blogger.com/atom/ns#" term="keto diet"/><category scheme="http://www.blogger.com/atom/ns#" term="keto meals"/><category scheme="http://www.blogger.com/atom/ns#" term="keto reddit"/><category scheme="http://www.blogger.com/atom/ns#" term="one week meal plan keto"/><category scheme="http://www.blogger.com/atom/ns#" term="reddit"/><title type='text'>Keto: Week 0</title><content type='html'>&lt;!-- Compiled and minified CSS --&gt;
    &lt;link href=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css&quot; rel=&quot;stylesheet&quot;&gt;&lt;/link&gt;

    &lt;!-- Compiled and minified JavaScript --&gt;
    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js&quot;&gt;&lt;/script&gt;
            
&lt;br /&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirm1yEOQXSI3kjPHyMzXjyDUU6yMtr58DMkLB1XXyKXw9M7Oj9AsW3fwtJWit9IlFp8u4HC0ReI2qCh6iLYw4XL73NEZitHyTFUdfndYNSg9I87T9dpUBE-MwddX-neBTMnjt66CsULnA/s1600/keto-diet.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirm1yEOQXSI3kjPHyMzXjyDUU6yMtr58DMkLB1XXyKXw9M7Oj9AsW3fwtJWit9IlFp8u4HC0ReI2qCh6iLYw4XL73NEZitHyTFUdfndYNSg9I87T9dpUBE-MwddX-neBTMnjt66CsULnA/s640/keto-diet.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/freepik&quot; title=&quot;Freepik&quot;&gt;Freepik&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
After the holidays, I gained a lot of weight. I went from 225 to 250. Yeah I ate a lot of junk food, including a lot of bread and desserts. Now I&#39;m paying the consequences and I decided to start the Keto diet again. In this post I will share how I started Keto&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Before going grocery shopping, I had to do some research about Keto. I went to one of the best places to find out information about: &lt;a href=&quot;https://www.reddit.com/r/keto/&quot; target=&quot;_blank&quot;&gt;The Keto Subreddit&lt;/a&gt;. There&#39;s a lot of information there, the community is welcoming, and you can ask anything keto-related there. I would like to point out that they RECOMMEND to see a nutritionist before starting Keto. I also RECOMMEND to visit a nutritionist first before doing a drastic diet change like this one.&lt;br /&gt;
&lt;br /&gt;
That being said, I started again the &lt;a href=&quot;https://www.reddit.com/r/keto/wiki/one_week_meal_plan?utm_source=reddit&amp;amp;utm_medium=usertext&amp;amp;utm_name=keto&amp;amp;utm_content=t5_2rske&quot; target=&quot;_blank&quot;&gt;One-Week Meal Plan&lt;/a&gt;, which helped me lose around 30 pounds before, but because I love to eat pupusas, I gained them again. Anyways, this morning I went grocery shopping to get all the things I need for the diet. Since I live in El Salvador, I decided to not only write this post, but also share a table of everything I bought, so that if you ever decide to try the One-Week Meal Plan, you know how much money you have to pay for everything.&lt;br /&gt;
&lt;br /&gt;
&lt;table class=&quot;striped&quot;&gt;
        &lt;thead&gt;
&lt;tr&gt;
              &lt;th&gt;Item Name&lt;/th&gt;
              &lt;th&gt;Quantity&lt;/th&gt;
              &lt;th&gt;Item Price&lt;/th&gt;
          &lt;/tr&gt;
&lt;/thead&gt;

        &lt;tbody&gt;
&lt;tr&gt;
            &lt;td&gt;Bacon&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD $1.55&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;12 pack of Buffalo Chicken Chunks&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$3.66&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Container of Beef&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$2.84&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Bag of Frozen Vegetables&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$13.31&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Onion&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$0.69&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Green Pepper&lt;/td&gt;
            &lt;td&gt;2&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$0.78&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Container of Broccoli&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$0.99&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Napkins&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$0.50&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Salted Peanuts Bags&lt;/td&gt;
            &lt;td&gt;3&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$2.10&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Small plastic bags for food&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$2.44&lt;/td&gt;
          &lt;/tr&gt;
&lt;tr&gt;
            &lt;td&gt;Dozen of eggs&lt;/td&gt;
            &lt;td&gt;1&lt;/td&gt;
            &lt;td&gt;USD&amp;nbsp;$2.90&lt;/td&gt;
          &lt;/tr&gt;
&lt;/tbody&gt;
      &lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Total: USD $32.06&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I included napkins and the plastic bags because I didn&#39;t have any of those. I strongly suggest to get the normal 2 lb clear plastic bags which costs around USD $0.60&lt;br /&gt;
&lt;br /&gt;
By the way, I got the salted peanut bags (Diana brand) because it is very cheap. I suggest to rinse them to get rid of all the salt.&lt;br /&gt;
&lt;br /&gt;
This is it for week 1. As of right now my weight is 250 pounds. I will be updating each week with weight information, ways to deal with anxiety, and how much money I will be saving by not dinning out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/8683027913861041618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/8683027913861041618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/8683027913861041618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/8683027913861041618'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/01/keto-week-1.html' title='Keto: Week 0'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirm1yEOQXSI3kjPHyMzXjyDUU6yMtr58DMkLB1XXyKXw9M7Oj9AsW3fwtJWit9IlFp8u4HC0ReI2qCh6iLYw4XL73NEZitHyTFUdfndYNSg9I87T9dpUBE-MwddX-neBTMnjt66CsULnA/s72-c/keto-diet.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-7710672359863131930</id><published>2020-01-08T22:52:00.000-06:00</published><updated>2020-01-08T22:53:24.012-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter app development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter dart"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter scan qr codes"/><category scheme="http://www.blogger.com/atom/ns#" term="ios development"/><title type='text'>Create a QR based Identification Scanner App with Flutter</title><content type='html'>&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJhTR_F-cxn6gXDWcHUUEwvpY7-SLLx6k9uOPaPvPCpiuBUU7NZ5PfpPi3JApTFId6THYlUw2spL5fvDJnlhQ_5Vo8LEmtlSzFL9dIuI2pyWsmnwQN1j7ZZewC6cIqT233WWiO_M1xysw/s1600/flutter-qr-scanner-app.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJhTR_F-cxn6gXDWcHUUEwvpY7-SLLx6k9uOPaPvPCpiuBUU7NZ5PfpPi3JApTFId6THYlUw2spL5fvDJnlhQ_5Vo8LEmtlSzFL9dIuI2pyWsmnwQN1j7ZZewC6cIqT233WWiO_M1xysw/s640/flutter-qr-scanner-app.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/phatplus&quot; title=&quot;phatplus&quot;&gt;phatplus&lt;/a&gt;, &lt;a href=&quot;https://www.flaticon.com/authors/vectors-market&quot; title=&quot;Vectors Market&quot;&gt;Vectors Market&lt;/a&gt; and &lt;a href=&quot;https://www.flaticon.com/authors/nikita-golubev&quot; title=&quot;Nikita Golubev&quot;&gt;Nikita Golubev&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
On previous posts, I demonstrated how to display a &lt;a href=&quot;https://rodolfohernan20.blogspot.com/2019/12/create-auto-updating-dynamic-listview.html&quot;&gt;dynamic list view from a JSON&lt;/a&gt;, and also how to &lt;a href=&quot;https://rodolfohernan20.blogspot.com/2019/12/easy-qr-code-scanner-with-flutter.html&quot;&gt;create a QR code scanner&lt;/a&gt;. Those posts might seem as something easy to do, but I had main goal in mind. Initially what I had in mind was to create an QR-based user identification scanner app, and instead of just jumping into that, I decided to create two separate posts first, showing how to make basic things. Previously&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;I had the idea and the code ready to create the app, but I didn&#39;t have a nice design. If you see my previous posts, it is pretty clear that all the apps lack design. Luckily there are some people on Reddit that posts Flutter UI tutorials, which help me to save time and money. For this app, I used one of cybdom flutter designs: &lt;b&gt;&lt;a href=&quot;https://cybdom.tech/flutter-tutorial-flight-ticket-app/&quot; target=&quot;_blank&quot;&gt;Flight Ticket App&lt;/a&gt;&lt;/b&gt;&amp;nbsp;(my favorite btw) because looks and feels like a native app. Let&#39;s get started!&lt;br /&gt;
&lt;br /&gt;
1. First, let&#39;s clone the &lt;a href=&quot;https://github.com/cybdom/flight_app_ui&quot;&gt;Flight App UI project&lt;/a&gt;&lt;br /&gt;
2. Open the project with Visual Studio Code&lt;br /&gt;
3.&amp;nbsp;Inside lib, create a models folder, and inside it, create a &lt;b&gt;users.dart&lt;/b&gt; file:&lt;br /&gt;
&lt;img height=&quot;78&quot; src=&quot;https://lh4.googleusercontent.com/bidRiwj-RvSnuA2nmN7dS8COtpbxdKr6fvotscnKOztPypcljYI1E0WbfejW3smxmAg4hivPwMtq4H-iVe7l6zg3q4XFq-pXHyV0jWndFO23VokQ2AXG2w83oI_jf9dSvf_4_sQ7&quot; style=&quot;font-family: arial; font-size: 11pt; margin-left: 0px; margin-top: 0px; white-space: pre;&quot; width=&quot;355&quot; /&gt;&lt;br /&gt;
4.&amp;nbsp;Create the &lt;b&gt;UsersModel,&lt;/b&gt; which will help us to find the user when we scan a QR code. Add the id, name, and userName, email and phone. Also add a Map from Json:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/379163116e4bfbe803201b0aa373a712.js&quot;&gt;&lt;/script&gt;
5. Create an &lt;b&gt;api&lt;/b&gt; folder, and inside it create a&amp;nbsp;&lt;b&gt;active_users_api.dart&lt;/b&gt;&amp;nbsp;file. Here we are going to get our users from an API:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/6aea6e959890b2fbd29cbf914edfbda1.js&quot;&gt;&lt;/script&gt;
6. Now, add the &lt;a href=&quot;https://pub.dev/packages/http&quot;&gt;HTTP&lt;/a&gt; and &lt;a href=&quot;https://pub.dev/packages/qrscan&quot;&gt;QRscan&lt;/a&gt; library to your &lt;b&gt;pubspec.yaml&lt;/b&gt; file:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/398022aef366b9a713413b96089c9de3.js&quot;&gt;&lt;/script&gt;
7. Go to the folder &quot;&lt;b&gt;lib -&amp;gt; ui -&amp;gt; screens&lt;/b&gt;&quot; and open the &lt;b&gt;home.dart&lt;/b&gt; file:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpfdmX-f-UPoqjpX_g82tB6d4U4QcHhZofqWbcbg7JhnOWFIGOTaf9UuxJZwrlstwniFSV9PUK6iuWDKXplbnmD9uAzvqRe_QgdMWhJSJYp1WYDbVEWObDlDVl1aJe_tg9xNID8FgBV7g/s1600/home_dart.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;212&quot; data-original-width=&quot;408&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpfdmX-f-UPoqjpX_g82tB6d4U4QcHhZofqWbcbg7JhnOWFIGOTaf9UuxJZwrlstwniFSV9PUK6iuWDKXplbnmD9uAzvqRe_QgdMWhJSJYp1WYDbVEWObDlDVl1aJe_tg9xNID8FgBV7g/s320/home_dart.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
8. Import the following libraries/packages:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/73aeb2ff842ba3bd6abec4de71727835.js&quot;&gt;&lt;/script&gt;
9.&amp;nbsp;Create an &lt;b&gt;activeUsers&lt;/b&gt; variable, which will have our &lt;b&gt;UserModels&lt;/b&gt; as list. Also, add a timer variable (for updating the list), an &lt;b&gt;active&lt;/b&gt; variable, a &lt;b&gt;barcode&lt;/b&gt; variable (to store the value of the QR code):&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/0de1c1dfc19b7d67e562fbd3c8dd0fb2.js&quot;&gt;&lt;/script&gt;
10.&amp;nbsp;Create a &lt;b&gt;future asynchronous function&lt;/b&gt;, that will get the &lt;b&gt;json&lt;/b&gt; and will convert it to an &lt;b&gt;iterable list&lt;/b&gt;, then as a map and finally it will pass it to the model to make it a list:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/f15e222472c7d998ff0c3d5c68511c13.js&quot;&gt;&lt;/script&gt;
11. Load the active users by calling the &lt;b&gt;_getFromApi&lt;/b&gt; function when the widget is created, and also load the &lt;b&gt;timer&lt;/b&gt;. We will &lt;b&gt;load users every 5 seconds&lt;/b&gt; (you can change that) by calling the &lt;b&gt;_getFromApi function&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/6313ec7851bfd7b75dd1dded00f4af23.js&quot;&gt;&lt;/script&gt;
12.&amp;nbsp;Create a future asynchronous function called &lt;b&gt;_scanFromCamera&lt;/b&gt;, where you will await the response from the scanner and then set the value for the &lt;b&gt;barcode&lt;/b&gt; variable:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/91e20a1346dc57865d90a21f209e6d17.js&quot;&gt;&lt;/script&gt;
14. For the purposes of this example, &lt;b&gt;instead of sending the result of the scan to the backend&lt;/b&gt;, I will iterate through the users obtained from the API in Flutter, and search the user by ID with a for loop, and when the user has been found, &lt;b&gt;it will push&lt;/b&gt; the result to the &lt;b&gt;DetailScreen&lt;/b&gt; widget:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/893fecbdc792f467a270211a0e552590.js&quot;&gt;&lt;/script&gt;
15. Open the &lt;b&gt;details.dart&lt;/b&gt; file. Replace everything in that file with the code below, in which we change how the information is displayed, and some colors as well:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/b1321792af5f72944aefe3f1e9256c12.js&quot;&gt;&lt;/script&gt;
16. Finally, open the &lt;b&gt;passangercontainer.dart &lt;/b&gt;file, and replace everything there with the code below:&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/e4a2a2b004b4dff64ff826260e31f914.js&quot;&gt;&lt;/script&gt;
17. And that&#39;s it! You can run the app and scan QR codes:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKzsZcSyHlTI4zPQ9MJNoR8Z1eZjjBXziD5UZCXCQPpT4R4M5mBMqap-kYPlfhaslDPNp8IIWvI1LJxmCKq3q-wP7Zx42xm8Amix3Vd8fAO7WlGu6N0k3a-jscZ2_xBVHRjGVOFPwV80w/s1600/Screenshot_20200106-134847.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;720&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKzsZcSyHlTI4zPQ9MJNoR8Z1eZjjBXziD5UZCXCQPpT4R4M5mBMqap-kYPlfhaslDPNp8IIWvI1LJxmCKq3q-wP7Zx42xm8Amix3Vd8fAO7WlGu6N0k3a-jscZ2_xBVHRjGVOFPwV80w/s640/Screenshot_20200106-134847.png&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvHZtCxn02MCo7x0z1T03LbK2R1_faDVzPOGshExmoJj_Zu8EY-bNt3M7viI5jhpTux4ie8ITBXUC6fGtsrKtqJWDxDH4u4Tdm0L-a7HtLFwyvWN6009DJ5JaakOLkEP2Kn3eTFwVUtRQ/s1600/IMG_20200106_135213.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;961&quot; data-original-width=&quot;720&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvHZtCxn02MCo7x0z1T03LbK2R1_faDVzPOGshExmoJj_Zu8EY-bNt3M7viI5jhpTux4ie8ITBXUC6fGtsrKtqJWDxDH4u4Tdm0L-a7HtLFwyvWN6009DJ5JaakOLkEP2Kn3eTFwVUtRQ/s400/IMG_20200106_135213.jpg&quot; width=&quot;298&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDWrgt3itJRBzSmSHCRoseIICpQGrCBxL8_DqFbVl8WOkjsdeRubHUKew6UtKlyMW1kKHSA0jaJH_r2HdW6MaMdMgcZkFdMNADqt8la6lWN5gezVqAcI1nNMMpnVoApPQ0xnGEy__gt5s/s1600/Screenshot_20200106-134857.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;720&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDWrgt3itJRBzSmSHCRoseIICpQGrCBxL8_DqFbVl8WOkjsdeRubHUKew6UtKlyMW1kKHSA0jaJH_r2HdW6MaMdMgcZkFdMNADqt8la6lWN5gezVqAcI1nNMMpnVoApPQ0xnGEy__gt5s/s640/Screenshot_20200106-134857.png&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
18. As you can see, there are few explanations about the code and that&#39;s because it is mostly copy and paste from previous posts I linked at the beginning of this post. As you can see, Flutter is extremely flexible. I could just grab a Flutter design from github and integrate already working code in just few steps.&lt;br /&gt;
&lt;br /&gt;
You can grab the &lt;b&gt;full code&lt;/b&gt; for this app here: &lt;a href=&quot;https://github.com/rjcalifornia/card_scanner_app_ui&quot;&gt;&lt;b&gt;Card Scanner App UI&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Also, you can &lt;b&gt;view the article&lt;/b&gt; about the original design here: &lt;a href=&quot;https://cybdom.tech/flutter-tutorial-flight-ticket-app/&quot;&gt;&lt;b&gt;Flight Ticket App&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the&lt;b&gt;&amp;nbsp;Create a QR based Identification Scanner App with Flutter tutorial&lt;/b&gt;. If you have questions, drop a comment below!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/7710672359863131930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/7710672359863131930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/7710672359863131930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/7710672359863131930'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2020/01/create-qr-based-identification-scanner.html' title='Create a QR based Identification Scanner App with Flutter'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJhTR_F-cxn6gXDWcHUUEwvpY7-SLLx6k9uOPaPvPCpiuBUU7NZ5PfpPi3JApTFId6THYlUw2spL5fvDJnlhQ_5Vo8LEmtlSzFL9dIuI2pyWsmnwQN1j7ZZewC6cIqT233WWiO_M1xysw/s72-c/flutter-qr-scanner-app.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-3890993759138019340</id><published>2019-12-16T08:28:00.002-06:00</published><updated>2019-12-16T18:07:43.511-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter scan qr codes"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter web"/><category scheme="http://www.blogger.com/atom/ns#" term="ios development"/><category scheme="http://www.blogger.com/atom/ns#" term="qr code"/><category scheme="http://www.blogger.com/atom/ns#" term="qr code reader android"/><category scheme="http://www.blogger.com/atom/ns#" term="scan qr codes"/><title type='text'>Easy QR Code Scanner with Flutter</title><content type='html'>&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJabPhT6ZLIu4I39Lb5vc_mpcCCsMO1ZcEUczJYU2M3ks1kPSjGYF6SGIx_FtE33fZK28WZUl9KuRRIu-a7kwIJtZrGYebzuE4ZQxw_NqUicUeKdaMX10jPSkG1uaGrZVydicytvX0-F4/s1600/flutter-qr-code-reader-app.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;613&quot; data-original-width=&quot;1600&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJabPhT6ZLIu4I39Lb5vc_mpcCCsMO1ZcEUczJYU2M3ks1kPSjGYF6SGIx_FtE33fZK28WZUl9KuRRIu-a7kwIJtZrGYebzuE4ZQxw_NqUicUeKdaMX10jPSkG1uaGrZVydicytvX0-F4/s640/flutter-qr-code-reader-app.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/freepik&quot; title=&quot;Freepik&quot;&gt;Freepik&lt;/a&gt;, &lt;a href=&quot;https://www.flaticon.com/authors/smashicons&quot; title=&quot;Smashicons&quot;&gt;Smashicons&lt;/a&gt;, and &lt;a href=&quot;https://www.flaticon.com/authors/vectors-market&quot; title=&quot;Vectors Market&quot;&gt;Vectors Market&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
For a long time, I thought that reading a simple QR code was a complex task, but it actually isn&#39;t. If you are just starting developing apps for Android and iOS, you might face a requirement to add a QR scan code feature in your app. That&#39;s why in this post I will give you a step-by-step guide on how to create a QR code scanner with Flutter&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. Start Visual Studio Code. Go to menu “&lt;b&gt;View -&amp;gt; Command Palette&lt;/b&gt;” and select the&amp;nbsp; “&lt;b&gt;Flutter: New Project&lt;/b&gt;” option:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;167&quot; data-original-width=&quot;640&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. Create a folder called widgets inside the lib folder and create an&amp;nbsp;&lt;b&gt;scan_qr.dart&lt;/b&gt;&amp;nbsp;file. This is where we are going to work:
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIuUTbtX6GAioi27O7n0aIHlB-9qy7m4Uu7yyteJmtkA8etf-wPGaEO6i22ZHSQdZCZxbrDW9uCKuPXqP8AtderLcBZdFhidKtNZ7w9sJ1u1NFIWU3WrsIkl8TuYpNlPsmfoBpI9CNj4k/s1600/qr-flutter-widget.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;79&quot; data-original-width=&quot;367&quot; height=&quot;68&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIuUTbtX6GAioi27O7n0aIHlB-9qy7m4Uu7yyteJmtkA8etf-wPGaEO6i22ZHSQdZCZxbrDW9uCKuPXqP8AtderLcBZdFhidKtNZ7w9sJ1u1NFIWU3WrsIkl8TuYpNlPsmfoBpI9CNj4k/s320/qr-flutter-widget.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
3. Also, create a folder apps, and inside it create a&amp;nbsp;&lt;b&gt;main_app.dart&lt;/b&gt;&amp;nbsp;file:&lt;/div&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 101px; overflow: hidden; width: 385px;&quot;&gt;&lt;img height=&quot;101&quot; src=&quot;https://lh6.googleusercontent.com/9QIqRC8VMaB13bj3b5KkbF7u_T_8GpPlJGUCeYW4eNXOZq82DDzL-wuUEUcS41AvC-KVrNTKiZQ_3U_ZW-BihJYZaBZRwI0fg-7RKDtS34yrSMLlWsYBoKdhE3nD4LJhK6qf4ees&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;385&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
4. Remove anything from the main.dart file,&amp;nbsp;&lt;b&gt;import the main_app.dart&lt;/b&gt;&amp;nbsp;file and call your main app:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;package:flutter/material.dart&#39;;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;package:qr_reader_test/apps/main_app.dart&#39;;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; main&lt;/span&gt;&lt;span style=&quot;color: #f1c232;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; =&amp;gt; runApp&lt;/span&gt;&lt;span style=&quot;color: #f1c232;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;ScanApp()&lt;/span&gt;&lt;span style=&quot;color: #f1c232;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
5. Open the&amp;nbsp;&lt;b&gt;main_app.dart&lt;/b&gt;&amp;nbsp;and add a stateless widget that will return our main widget app:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;package:flutter/material.dart&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;package:qr_reader_test/widgets/scan_qr.dart&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; ScanApp &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; StatelessWidget{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;@override&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; Widget build(BuildContext context) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; MaterialApp(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;title:&lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt; &#39;My App&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; debugShowCheckedModeBanner: &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; theme: ThemeData(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fontFamily: &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;Quicksand&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; primarySwatch: Colors.purple,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; home:&amp;nbsp; ScannerApp&lt;/span&gt;&lt;span style=&quot;color: #f1c232;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; );&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; }&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
6. Open the scan_qr.dart widget and create the&amp;nbsp;&lt;b&gt;ScannerApp Stateful widget.&lt;/b&gt;&amp;nbsp;Copy the following code to create our widget skeleton:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; main() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; runApp(ScannerApp());&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; ScannerApp &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; StatefulWidget {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt; @override&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; _ScannerAppState createState() =&amp;gt; _ScannerAppState();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: white;&quot;&gt;class _ScannerAppState extends State&amp;lt;ScannerApp&amp;gt; {&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&amp;nbsp; @override&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; initState() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; super.initState();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&amp;nbsp; @override&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; Widget build(BuildContext context) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; MaterialApp(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; home: Scaffold(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; appBar: AppBar(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; title: Text(&lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;Our Custom QR Scanner&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; body: Center(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; child: Column(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mainAxisAlignment: MainAxisAlignment.end,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; crossAxisAlignment: CrossAxisAlignment.center,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; children: &amp;lt;Widget&amp;gt;[&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; );&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
7. In order to scan QR codes, import the &lt;b&gt;qrscan plugin&lt;/b&gt; to your flutter project. Open the &lt;b&gt;pubspec.yaml&lt;/b&gt; file, and add it as a dependency:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;qrscan: &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;^0.2.17
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
8. Go back to the scan_qr.dart widget. Import the &lt;b&gt;qrscan plugin&lt;/b&gt; as scanner, and in addition to that, import the async and typed_data libraries:&lt;br /&gt;
&lt;br /&gt;
9.test&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;package:qrscan/qrscan.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;scanner;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;dart:async&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc;&quot;&gt;import &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;dart:typed_data&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;;
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
10. Create two variables&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: white;&quot;&gt;String barcode = &lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;Uint8List bytes = Uint8List&lt;/span&gt;&lt;span style=&quot;color: magenta;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color: magenta;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
11. Create a future asynchronous function called &lt;b&gt;_scanFromCamera&lt;/b&gt;, where you will await the response from the scanner and then set the value for the barcode variable:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;span style=&quot;color: white;&quot;&gt;Future _scanFromCamera() &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;String barcode = &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; scanner.scan();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;setState(&lt;/span&gt;&lt;span style=&quot;color: #f1c232;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;.barcode = barcode);&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: white;&quot;&gt;
}
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
12. Let&#39;s go back to the widget, and create a RaisedButton that on pressed will call the _scanFromCamera function, and will read the content of the QR code:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black;&quot;&gt;
&lt;div style=&quot;color: white;&quot;&gt;
SizedBox(&amp;nbsp;&lt;/div&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;width: &lt;/span&gt;&lt;span style=&quot;color: #b4a7d6;&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;height: &lt;/span&gt;&lt;span style=&quot;color: #b4a7d6;&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: white;&quot;&gt;
&amp;nbsp;child: Image.memory(bytes),&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;color: white;&quot;&gt;
&amp;nbsp;),&amp;nbsp;&lt;/div&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: white;&quot;&gt;Text(&lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&#39;Result of reading QR:  $barcode&#39;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;),&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;RaisedButton(&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp;onPressed: _scanFromCamera,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;child: Text(&lt;/span&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;&quot;Scan QR Code&quot;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;),&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: white;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: white;&quot;&gt;
SizedBox(&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;color: white;&quot;&gt;
&amp;nbsp;height: 128,&lt;/div&gt;
&lt;div style=&quot;color: white;&quot;&gt;
&amp;nbsp;),
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
14. And that&#39;s it! You can scan QR codes with Flutter!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgduSWhtSEJJ_bxuUs7UunuVWu65C7vs92Pvt0BBueO1iUP-x909CjPyuP4qAPPwY4Iq9ktpj2W2pW7MjWOqHF_9lCGR5Yzn6KXKlG94gCxvYxqGf1MM6sDp7A7bCS2MGP0z1NcMXMQCLc/s1600/qr-give-permissions-flutter.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1388&quot; data-original-width=&quot;720&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgduSWhtSEJJ_bxuUs7UunuVWu65C7vs92Pvt0BBueO1iUP-x909CjPyuP4qAPPwY4Iq9ktpj2W2pW7MjWOqHF_9lCGR5Yzn6KXKlG94gCxvYxqGf1MM6sDp7A7bCS2MGP0z1NcMXMQCLc/s640/qr-give-permissions-flutter.jpg&quot; width=&quot;330&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKR426sp2mQ2vmt28pbtIjhzH7up3T_xkzaJUmq4oausrcyIR7LbZKwNaOByvZRk0pAQjjPtu8iWod4ml-K8Pr2okNgwN9fqK0zZPwDjOMwSwLTOkERLPC1lADit6qhJLn65WBQJlGeeM/s1600/qr-app-home-flutter.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1394&quot; data-original-width=&quot;720&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKR426sp2mQ2vmt28pbtIjhzH7up3T_xkzaJUmq4oausrcyIR7LbZKwNaOByvZRk0pAQjjPtu8iWod4ml-K8Pr2okNgwN9fqK0zZPwDjOMwSwLTOkERLPC1lADit6qhJLn65WBQJlGeeM/s640/qr-app-home-flutter.jpg&quot; width=&quot;330&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_p9aVE_vlwSv7BA_barUF3Bjh0orA4RoKvLzDF683kkSdricLHkC6S-cCz9DwbKNGkXTxWbZzc5mJMryTlnAa1Fzpxxztk5DjpUhIqKneJqZ_Rg5gwusmREQC8AEVeUilH_mgbUFrKSM/s1600/qr-scanning-flutter-app.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1389&quot; data-original-width=&quot;721&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_p9aVE_vlwSv7BA_barUF3Bjh0orA4RoKvLzDF683kkSdricLHkC6S-cCz9DwbKNGkXTxWbZzc5mJMryTlnAa1Fzpxxztk5DjpUhIqKneJqZ_Rg5gwusmREQC8AEVeUilH_mgbUFrKSM/s640/qr-scanning-flutter-app.jpg&quot; width=&quot;330&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAM6IcPY9RQp_F4IZB15wib1GqKOUGDSaduH-kHQRH2LkRw_61keOZP7WWHQUwc7eURjCb7BwPz8wHzYG4dar6vIdH3Mhmr9JTMxH-Z9ODLpBuJBQylg2GMLxWOgQKHkNKyfd3rnKqYkM/s1600/qr-result-reading-flutter-android.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1397&quot; data-original-width=&quot;720&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAM6IcPY9RQp_F4IZB15wib1GqKOUGDSaduH-kHQRH2LkRw_61keOZP7WWHQUwc7eURjCb7BwPz8wHzYG4dar6vIdH3Mhmr9JTMxH-Z9ODLpBuJBQylg2GMLxWOgQKHkNKyfd3rnKqYkM/s640/qr-result-reading-flutter-android.jpg&quot; width=&quot;328&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
15. If you have questions or suggestions, drop a comment below!&lt;br /&gt;
&lt;br /&gt;
Get the source code here:&amp;nbsp;&lt;a href=&quot;https://github.com/rjcalifornia/qr_reader_test&quot;&gt;https://github.com/rjcalifornia/qr_reader_test&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/3890993759138019340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/3890993759138019340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/3890993759138019340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/3890993759138019340'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/12/easy-qr-code-scanner-with-flutter.html' title='Easy QR Code Scanner with Flutter'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJabPhT6ZLIu4I39Lb5vc_mpcCCsMO1ZcEUczJYU2M3ks1kPSjGYF6SGIx_FtE33fZK28WZUl9KuRRIu-a7kwIJtZrGYebzuE4ZQxw_NqUicUeKdaMX10jPSkG1uaGrZVydicytvX0-F4/s72-c/flutter-qr-code-reader-app.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-2052209259244831993</id><published>2019-12-12T04:04:00.000-06:00</published><updated>2019-12-12T04:04:09.527-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="dart language"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter app development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter dart"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter listview"/><category scheme="http://www.blogger.com/atom/ns#" term="ios apps"/><category scheme="http://www.blogger.com/atom/ns#" term="ios development"/><category scheme="http://www.blogger.com/atom/ns#" term="listview builder flutter"/><title type='text'>Create an Auto-Updating Dynamic Listview with Flutter</title><content type='html'>&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijNK2zC19c8Mus9yVUOpV8MhiZCA8dUkHdcrmcVuV7iM5vBahcCvRUIe0b9dzpjTBEkFER-OcWK5o5A9rycvZYVZuHUL0BxJTBtDzA_q_iikXCKJ9BZ-72V6Q80L2vzPnm2M53JFlBNHs/s1600/flutter-list-view-builder.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;613&quot; data-original-width=&quot;1600&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijNK2zC19c8Mus9yVUOpV8MhiZCA8dUkHdcrmcVuV7iM5vBahcCvRUIe0b9dzpjTBEkFER-OcWK5o5A9rycvZYVZuHUL0BxJTBtDzA_q_iikXCKJ9BZ-72V6Q80L2vzPnm2M53JFlBNHs/s640/flutter-list-view-builder.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/vectors-market&quot; title=&quot;Vectors Market&quot;&gt;Vectors Market&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href=&quot;https://www.flaticon.com/authors/freepik&quot; title=&quot;Freepik&quot;&gt;Freepik&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
List are important when creating real world apps, since you will be required to show data in real&amp;nbsp; time in a user friendly way. That&#39;s why in this article I will give you a step-by-step guide on&amp;nbsp; how to Create an Auto-Updating Dynamic Listview with Flutter&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;1. Start Visual Studio Code. Go to menu “&lt;b&gt;View -&amp;gt; Command Palette&lt;/b&gt;” and select the&amp;nbsp; “&lt;b&gt;Flutter: New Project&lt;/b&gt;” option:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;167&quot; data-original-width=&quot;640&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. Create a folder called widgets inside the lib folder and create an &lt;b&gt;active_users.dart&lt;/b&gt; file. This is where we are going to work:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 129px; overflow: hidden; width: 501px;&quot;&gt;&lt;img height=&quot;129&quot; src=&quot;https://lh6.googleusercontent.com/aLJ6dx762HM3w9nRPAjOleTZiV0zo4I85t9GwiNRK8c39U1jZQ21-h-NACbNFNo2MqaTIVb1GEaF5bkE2hgup7rn7JUoC7EX4ili-XFBESF0Dy-xpd9qC-YvU9XY_mdi0XNVD2Ym&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;501&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
3. Also, create a folder apps, and inside it create a &lt;b&gt;main_app.dart&lt;/b&gt; file:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 101px; overflow: hidden; width: 385px;&quot;&gt;&lt;img height=&quot;101&quot; src=&quot;https://lh6.googleusercontent.com/9QIqRC8VMaB13bj3b5KkbF7u_T_8GpPlJGUCeYW4eNXOZq82DDzL-wuUEUcS41AvC-KVrNTKiZQ_3U_ZW-BihJYZaBZRwI0fg-7RKDtS34yrSMLlWsYBoKdhE3nD4LJhK6qf4ees&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;385&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
4. Remove anything from the main.dart file, &lt;b&gt;import the main_app.dart&lt;/b&gt; file and call your main app:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:json_auto_refresh/apps/main_app.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; main() =&amp;gt; runApp(UsersApp());&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
5. This is great! Our Flutter Web App is coming to life! It might look like a lot of files/steps but this will be a structure of our app. Open the &lt;b&gt;main_app.dart&lt;/b&gt; and add a stateless widget that will return our main widget app:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:json_auto_refresh/widgets/active_users.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; UsersApp &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; StatelessWidget{&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;@override&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;Widget build(BuildContext context) {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; MaterialApp(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;My Active Users Widget&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;debugShowCheckedModeBanner: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;theme: ThemeData(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fontFamily: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;Quicksand&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;primarySwatch: Colors.purple,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;home:&amp;nbsp; ActiveUsersList(),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
6. Open the web_upload.dart widget and create the &lt;b&gt;ActiveUsersList Stateful widget.&lt;/b&gt;&amp;nbsp;Copy the following code, and as you can see, we are returning a SafeArea with a body:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; ActiveUsersList &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; StatefulWidget {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;@override&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;createState() =&amp;gt; _ActiveUsersListState();&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; _ActiveUsersListState &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; State {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;@override&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;Widget build(BuildContext context) {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #6a9955; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;// TODO: implement build&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; SafeArea(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child: Scaffold(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;appBar: AppBar(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title: Text(&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;Active users list&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;body: Container(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child: Padding(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; EdgeInsets.only(top: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;16.0&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;, left: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;28&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; Container(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;350&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child: Column(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;children: [&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;} }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
7. Sweet! Let’s see it working in the web browser:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 431px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;431&quot; src=&quot;https://lh5.googleusercontent.com/YfT0EH2ZwQoGIlodoNmbtoVvLTeXWdwz2RpQ39qcOC2RjMQ3VGGFoDgzBHmiuml3RxEaODLR2EOnnbB8_XBOohtS8Y4FHFAt1c-PLIxh6CN8NTlw3_n0b2zYjHyGhsLMGIAghmbc&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
8. Inside lib, create a models folder, and inside it, create a &lt;b&gt;users.dart&lt;/b&gt; file:&lt;br /&gt;
&lt;br /&gt;
&lt;img height=&quot;78&quot; src=&quot;https://lh4.googleusercontent.com/bidRiwj-RvSnuA2nmN7dS8COtpbxdKr6fvotscnKOztPypcljYI1E0WbfejW3smxmAg4hivPwMtq4H-iVe7l6zg3q4XFq-pXHyV0jWndFO23VokQ2AXG2w83oI_jf9dSvf_4_sQ7&quot; style=&quot;font-family: arial; font-size: 11pt; margin-left: 0px; margin-top: 0px; white-space: pre;&quot; width=&quot;355&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
9. Let’s create our &lt;b&gt;UsersModel&lt;/b&gt;, which will help us build and use the active users list. Add the id, name, and userName and also a Map from Json:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;
&lt;span style=&quot;color: #569cd6;&quot;&gt;class&lt;/span&gt;&amp;nbsp;UsersModel&amp;nbsp;{
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: #569cd6;&quot;&gt;int&lt;/span&gt;&amp;nbsp;id;
String&amp;nbsp;name;
String&amp;nbsp;userName;&lt;/div&gt;
&lt;div&gt;
UsersModel(
&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.id,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.name,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.userName,&lt;/div&gt;
&lt;div&gt;
);&lt;/div&gt;
&lt;div&gt;
UsersModel.fromJson(Map&amp;nbsp;json)&lt;/div&gt;
&lt;div&gt;
json[&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;id&#39;&lt;/span&gt;],&lt;/div&gt;
&lt;div&gt;
name=json[&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;name&#39;&lt;/span&gt;],&lt;/div&gt;
&lt;div&gt;
userName&amp;nbsp;=&amp;nbsp;json[&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;username&#39;&lt;/span&gt;];&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp;Map&amp;nbsp;toJson()&amp;nbsp;{&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #569cd6;&quot;&gt;return&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;id&#39;&lt;/span&gt;:&amp;nbsp;id,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;name&#39;&lt;/span&gt;:&amp;nbsp;name,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;username&#39;&lt;/span&gt;:&amp;nbsp;userName,&lt;/div&gt;
&lt;div&gt;
};&lt;/div&gt;
&lt;div&gt;
}&lt;/div&gt;
&lt;div&gt;
}&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
10. Import the user model:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:json_auto_refresh/models/users.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
11. Create an &lt;b&gt;activeUsers variable&lt;/b&gt;, which will have our UserModels as list:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; activeUsers = &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; List&amp;lt;UsersModel&amp;gt;();&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
12. Before getting our users from an API, we must set up how are we getting the API first! In order to get the data from the API, &lt;b&gt;add the HTTP package to your pubspec.yaml &lt;/b&gt;as a dependency:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;http&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;^0.12.0+2&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
14. Create an api folder, and inside it create a &lt;b&gt;active_users_api.dart&lt;/b&gt; file:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 102px; overflow: hidden; width: 474px;&quot;&gt;&lt;img height=&quot;102&quot; src=&quot;https://lh5.googleusercontent.com/ru8AQxDzM7zKfZsUgFcoIqmlbJdiX6lluddLxmVEPG8fpoCUK4ngS09EsO_gpuZj9OYviUUHQ9WUrSfuq6vglmw85UZKHEyb9emlLub-jnvHtz5d26n37lZZNlY0MB4Y01oltmWo&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;474&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
15. Open the &lt;b&gt;active_users_api.dart&lt;/b&gt; file, and import the async and http libraries:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;dart:async&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;package:http/http.dart&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; http;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
16.&amp;nbsp; Create a const &lt;b&gt;api_v1 &lt;/b&gt;variable which will hold the&lt;b&gt; API URL&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; api_v1 = &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&quot;http://apiexample.com&quot;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
17. Create a &lt;b&gt;UserList&lt;/b&gt; class, and add a future function to get the Json list from the API:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; UsersList {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; Future getActiveUsers() {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; urlUsrList = api_v1 + &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&quot;/users&quot;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; http.&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;(urlUsrList);&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
18. Go back to the &lt;b&gt;active_users.dart&lt;/b&gt; widget, and import the async and convert libraries:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;dart:async&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&#39;dart:convert&#39;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
19. And create a future asynchronous function, that will get the json and will convert it to an iterable list, then as a map and finally it will pass it to the model to make it a list:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Future _getFromApi() &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UsersList.getActiveUsers().then((response) {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setState(() {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Iterable list = json.decode(response.body);&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;activeUsers = list.map((model) =&amp;gt; UsersModel.fromJson(model)).toList();&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #6a9955; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
20. Let’s load the active users by calling the &lt;b&gt;_getFromApi &lt;/b&gt;function when the widget is created:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;initState() {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;.initState();&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_getFromApi();&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
21. Go back to our widget, and let’s create a &lt;b&gt;Listview builder.&lt;/b&gt; Inside an Expanded class, add an itembuilder and iterate over each element like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Expanded(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child: ListView.builder(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemCount: activeUsers.length,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemBuilder: (BuildContext context, i) {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; Column(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crossAxisAlignment: CrossAxisAlignment.start,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;children: &amp;lt;Widget&amp;gt;[&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizedBox(height: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Text(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&quot;id: ${activeUsers[i].id}&quot;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;maxLines: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;overflow: TextOverflow.ellipsis,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizedBox(height: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Text(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&quot;Name: ${activeUsers[i].name}&quot;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;maxLines: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;overflow: TextOverflow.ellipsis,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizedBox(height: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Text(&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&quot;Username: ${activeUsers[i].userName}&quot;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;maxLines: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;overflow: TextOverflow.ellipsis,&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizedBox(height: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;15&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]);&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
If you notice, I add a &lt;b&gt;SizedBox&lt;/b&gt; between each element, for visual purposes. Besides that, I do not need to convert the items to string, I just display them like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #ce9178; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;${activeUsers[i].name}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
22. Finally, since we want the list to auto refresh, let’s add a&lt;b&gt; Timer variable &lt;/b&gt;and a&lt;b&gt; counter&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;Timer timer;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt; counter = &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
23. Again, let’s load the timer before the widget is created. We will load users &lt;b&gt;every 5 seconds&lt;/b&gt; (you can change that) by calling the &lt;b&gt;_getFromApi&lt;/b&gt; function:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;initState() {&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #569cd6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;.initState();&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_getFromApi();&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;timer = Timer.periodic(Duration(seconds: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #b5cea8; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;), (Timer t) =&amp;gt; _getFromApi());&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;background-color: #1e1e1e; line-height: 1.6285714285714286; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: #d4d4d4; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
24. You can run it in the emulator or as a Web App with Chrome:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 725px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;725&quot; src=&quot;https://lh5.googleusercontent.com/i4x1siTESzo77WXQKkMW4pVNYqbwbE96J72RqRUAchPYoo959bY79wTaLodCkeFQAk0NSI1ObzghAJIXixw__rAP2CapAjZZW0UMr3yVireqV56Vl5TsKzffUCrIFOmdW9aS5--B&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 687px; overflow: hidden; width: 378px;&quot;&gt;&lt;img height=&quot;687&quot; src=&quot;https://lh3.googleusercontent.com/QkhZK6pP6OUlF-ofv02L1Ij7aTrHW1DywTtZ2A_kpYNei5CpKb5PO3EbJF-n7bshqAlDnBpNPdvqY9N2L72QXPm5Jv7w_Mc1eIql20UqfsDLwZbTUVM_F0TQ7QEQiqF_HpIF1o-8&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;378&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
25. And that&#39;s it! You just created an auto-updating dynamic Listview with Flutter! If you have questions or suggestions, drop a comment!&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
You can get the source code here: &lt;a href=&quot;https://github.com/rjcalifornia/json_auto_refresh&quot;&gt;https://github.com/rjcalifornia/json_auto_refresh&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/2052209259244831993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/2052209259244831993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2052209259244831993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2052209259244831993'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/12/create-auto-updating-dynamic-listview.html' title='Create an Auto-Updating Dynamic Listview with Flutter'/><author><name>rjcalifornia</name><uri>http://www.blogger.com/profile/18080307591281324359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijNK2zC19c8Mus9yVUOpV8MhiZCA8dUkHdcrmcVuV7iM5vBahcCvRUIe0b9dzpjTBEkFER-OcWK5o5A9rycvZYVZuHUL0BxJTBtDzA_q_iikXCKJ9BZ-72V6Q80L2vzPnm2M53JFlBNHs/s72-c/flutter-list-view-builder.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-5119100693859390411</id><published>2019-12-04T21:18:00.002-06:00</published><updated>2020-01-01T17:39:30.904-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clipbucket video gallery"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg"/><category scheme="http://www.blogger.com/atom/ns#" term="elgg media gallery"/><category scheme="http://www.blogger.com/atom/ns#" term="photo gallery"/><category scheme="http://www.blogger.com/atom/ns#" term="picture gallery elgg"/><category scheme="http://www.blogger.com/atom/ns#" term="picture gallery wordpress"/><category scheme="http://www.blogger.com/atom/ns#" term="video gallery"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress media library"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress video gallery"/><title type='text'>Building a Video and Image Gallery with elgg</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbvD8lu6eD7TmuL65Nl4yAraz6O7CKKtCFG3c0jeOBJw1bOceETyHOsRUJz_3WNJCGLCK0zblVI6AkYgxLzFZyqsON2AcOD7O5LCYb2L0sJVvV2Y3unXjS7wJ2Gqgm6Oo5BVE6foMby4M/s1600/elgg-video-photo-gallery.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;601&quot; data-original-width=&quot;1264&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbvD8lu6eD7TmuL65Nl4yAraz6O7CKKtCFG3c0jeOBJw1bOceETyHOsRUJz_3WNJCGLCK0zblVI6AkYgxLzFZyqsON2AcOD7O5LCYb2L0sJVvV2Y3unXjS7wJ2Gqgm6Oo5BVE6foMby4M/s640/elgg-video-photo-gallery.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/kiranshastry&quot; title=&quot;Kiranshastry&quot;&gt;Kiranshastry&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;On a previous post, I suggested to consider elgg framework
for your projects, and described what you could build with it. However, I did
not post any code or examples on the things you can build with elgg. In this
article I will give you a step-by-step guide on how to build a video and image
gallery with elgg&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;1. First, you must install elgg 2.3.x in your server. You
can read about how to install elgg &lt;a href=&quot;https://blog.arvixe.com/how-to-properly-install-elgg-from-your-cpanel-using-softaculous/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;(If you prefer to do a manual installation, you can download
elgg&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://elgg.org/about/download&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;2. Once you have elgg up and running, you have to install
the following plugins:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3WxkhUt0qBlClAW3bjugZl2aceeoI_N32fsQ174zAGCdCmPC9pfmgVilzmMx2AyrSkUNy5qIV9ksZN6t45Btd-MWzvjyZU1XxCPXceDPMfgTGIvwGZyhkOVVAZAWMnmiKrMtfxVq9dyE/s1600/tidypics-for-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;619&quot; data-original-width=&quot;921&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3WxkhUt0qBlClAW3bjugZl2aceeoI_N32fsQ174zAGCdCmPC9pfmgVilzmMx2AyrSkUNy5qIV9ksZN6t45Btd-MWzvjyZU1XxCPXceDPMfgTGIvwGZyhkOVVAZAWMnmiKrMtfxVq9dyE/s640/tidypics-for-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;https://elgg.org/plugins/385077&quot; target=&quot;_blank&quot;&gt;Tidypics for elgg 2.3&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs1A69TfiSzcRVw1q2MDbcL1TRVuxdrEjtZO4i2x6iXHSTPMk1XyXdgDzqnIJMimuss7Gq91oM-Jg8Ff6tyfVmyenY_FlMsPN7ksmF4OHPVfYiVeM_rGpOUs2y-4v-w5j2SaFpfvryj3o/s1600/video-player-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;614&quot; data-original-width=&quot;921&quot; height=&quot;425&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs1A69TfiSzcRVw1q2MDbcL1TRVuxdrEjtZO4i2x6iXHSTPMk1XyXdgDzqnIJMimuss7Gq91oM-Jg8Ff6tyfVmyenY_FlMsPN7ksmF4OHPVfYiVeM_rGpOUs2y-4v-w5j2SaFpfvryj3o/s640/video-player-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;https://github.com/rjcalifornia/nubesoplayer&quot; target=&quot;_blank&quot;&gt;Nubeso Player&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;3. If you need help installing an elgg plugin, &lt;a href=&quot;https://blog.arvixe.com/how-to-install-a-plugin-in-elgg/&quot; target=&quot;_blank&quot;&gt;read this article&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;4. Log into elgg with your administrator account and open
the Administration Dashboard. Then go to menu &quot;&lt;b&gt;Configure -&amp;gt; Plugins&lt;/b&gt;&quot;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjmHDgR0susRsx_0mQ9Bnfv9I5EiWkaRGH_6MsQcS-dMgToaahSv5S4p4ujFCZd-eLuQz1pNlpEuhwAcMoJdAXPhXaxcvCsTnK_uHPewgmof30I4TkNKB2poJePrOxnA-fyC4t9tc5vHA/s1600/elgg-configure-plugins.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;929&quot; data-original-width=&quot;822&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjmHDgR0susRsx_0mQ9Bnfv9I5EiWkaRGH_6MsQcS-dMgToaahSv5S4p4ujFCZd-eLuQz1pNlpEuhwAcMoJdAXPhXaxcvCsTnK_uHPewgmof30I4TkNKB2poJePrOxnA-fyC4t9tc5vHA/s400/elgg-configure-plugins.png&quot; width=&quot;353&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=8448635219343547269&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=8448635219343547269&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;5. Activate both &lt;b&gt;Tidypics&lt;/b&gt; and &lt;b&gt;Nubesoplayer&lt;/b&gt; plugins:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji4Xcn5aFQCkev8W6vIeoKUhYJrL3syRPmXOdonKOrwuLpr_IAzOBBWOiFfdM2M9ysudwBwEcgpiFmJGpj2o-lMJVVHI7NEsEZL9IPzJzG5a_Mx1Yo1vyG9-pOVuQAwL0nTiVKuHdZGf0/s1600/activate-elgg-plugins-tidypics-nubeso.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;73&quot; data-original-width=&quot;921&quot; height=&quot;50&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji4Xcn5aFQCkev8W6vIeoKUhYJrL3syRPmXOdonKOrwuLpr_IAzOBBWOiFfdM2M9ysudwBwEcgpiFmJGpj2o-lMJVVHI7NEsEZL9IPzJzG5a_Mx1Yo1vyG9-pOVuQAwL0nTiVKuHdZGf0/s640/activate-elgg-plugins-tidypics-nubeso.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;6. Now let&#39;s upload some pictures. First, go back to the main site, and in the navigation menu click on &lt;b&gt;Photos&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfRHfFhXPZNc4nmn0skHj3HKeWCfTLRxRT4z9VpukAmbz5jidiNwrfcjfCjDrgFgNFhf35PuuLDaYV4cQl8kwLYZpU6mzC8HV8dm7rd0SZoIdA7EVXRAuv2kbljNQuvdIGul211E8eBuk/s1600/elgg-navigation-menu.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;97&quot; data-original-width=&quot;690&quot; height=&quot;88&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfRHfFhXPZNc4nmn0skHj3HKeWCfTLRxRT4z9VpukAmbz5jidiNwrfcjfCjDrgFgNFhf35PuuLDaYV4cQl8kwLYZpU6mzC8HV8dm7rd0SZoIdA7EVXRAuv2kbljNQuvdIGul211E8eBuk/s640/elgg-navigation-menu.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;7. Click on Create New Album to either select an existing album or create a new one. For the purposes of this guide, I will create a new album:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsw4hN_Z2mrS93JVPthKFaoQHJiTu8gjI7nmuG3WKOxJ64BM9ksnRaQqDz5vvQQtfs8oYHYcNcbghXTdFi1xR_VU-z2msM2V0D5miqMMi-8NzhZdl2TlC1_nocf4eolsAJrjfZ5zY6Om0/s1600/tidypics-create-album-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;393&quot; data-original-width=&quot;921&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsw4hN_Z2mrS93JVPthKFaoQHJiTu8gjI7nmuG3WKOxJ64BM9ksnRaQqDz5vvQQtfs8oYHYcNcbghXTdFi1xR_VU-z2msM2V0D5miqMMi-8NzhZdl2TlC1_nocf4eolsAJrjfZ5zY6Om0/s640/tidypics-create-album-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;8. Enter the &lt;b&gt;title&lt;/b&gt;, &lt;b&gt;descriptions&lt;/b&gt;, &lt;b&gt;tags&lt;/b&gt;, and &lt;b&gt;access&lt;/b&gt; for the new album:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj33BqObawFsxTYlLsLDANGjO0FoNe_BJy7zmytGoXciMO68rYZmhTt6plVCUXC-zrwEnM_nN1nvSdMKMOjgM9cjrN0C19RKX4ZyqpFGx71rBmRMeNwze3Cmk_54d8kEcq68YBt6iiU7ZY/s1600/tidypics-create-album-add-title-description.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;508&quot; data-original-width=&quot;921&quot; height=&quot;352&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj33BqObawFsxTYlLsLDANGjO0FoNe_BJy7zmytGoXciMO68rYZmhTt6plVCUXC-zrwEnM_nN1nvSdMKMOjgM9cjrN0C19RKX4ZyqpFGx71rBmRMeNwze3Cmk_54d8kEcq68YBt6iiU7ZY/s640/tidypics-create-album-add-title-description.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;9. The album has been created! Now, let&#39;s add some pictures by clicking on &lt;b&gt;Upload photos to this album&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMwOYfAHQUzuVUfDjGcKYqRJ_BgPqcAsRJ5JPMdH_v2RqMA52Dp-zE0SrQl8x3kPvCAAsQnWQ9F0J9o397jybcSMe7X6gNssTHEflJRG8SwdUoaTIaD4cRrj2MeT6seoB6logsY241ykA/s1600/tidypics-select-pictures-upload-album.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;422&quot; data-original-width=&quot;921&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMwOYfAHQUzuVUfDjGcKYqRJ_BgPqcAsRJ5JPMdH_v2RqMA52Dp-zE0SrQl8x3kPvCAAsQnWQ9F0J9o397jybcSMe7X6gNssTHEflJRG8SwdUoaTIaD4cRrj2MeT6seoB6logsY241ykA/s640/tidypics-select-pictures-upload-album.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;10. One of the main advantages of Tidypics is that it comes with an excellent tool to upload pictures, similar to what Flickr has. You can just drag and drop pictures and upload up to 10 photos at a time (that can be changed in the plugin&#39;s settings page):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGy4Ss_NYtyzAovDxVicqKa-fh7gn4zR1a3J9jc5EEt9Jq7xrpRAK_97dRBa_rkNA0ubx9cqXL2zLgtB9Nl96jzcG-XAIWM0b_eHCjwGciAnpEfpUWV5n0KRMtrz2_PYVY9QqwzmjKSec/s1600/tidypics-uploading-pictures-with-uploader-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;921&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGy4Ss_NYtyzAovDxVicqKa-fh7gn4zR1a3J9jc5EEt9Jq7xrpRAK_97dRBa_rkNA0ubx9cqXL2zLgtB9Nl96jzcG-XAIWM0b_eHCjwGciAnpEfpUWV5n0KRMtrz2_PYVY9QqwzmjKSec/s640/tidypics-uploading-pictures-with-uploader-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;11. After uploading the pictures, you can optionally add &lt;b&gt;titles&lt;/b&gt;, &lt;b&gt;tags&lt;/b&gt;, and &lt;b&gt;descriptions&lt;/b&gt; to each picture:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiubR-TBKq4Rdekd5_5vW_8FDGPHbVlHbwJJEYsBHiZxxOvcAE85CJ5YkWGMXSEMERmnbnDD0nhH0E2dIcG9JXtEE75Vd41Bvv972YhOYUXamWIek_el-O7vLSpNHSD8IdWgAXH8YSQXBk/s1600/tidypics-edit-photo-titles-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;598&quot; data-original-width=&quot;921&quot; height=&quot;414&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiubR-TBKq4Rdekd5_5vW_8FDGPHbVlHbwJJEYsBHiZxxOvcAE85CJ5YkWGMXSEMERmnbnDD0nhH0E2dIcG9JXtEE75Vd41Bvv972YhOYUXamWIek_el-O7vLSpNHSD8IdWgAXH8YSQXBk/s640/tidypics-edit-photo-titles-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;12. As you can see, now we have an album with some pictures in it:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7SuD9H22I5TeGEznEb_CPcFhrDUkqjQmcCkXCp-h33uLu0xOKofmLEw_JQvi2Txjs-3a9Wu3SIuBP4N8d6d2vGs_H-Wrp9Cc8lOFRtEcjWn8G6XXwQmZZRSTCaGTUTwlvVr2ABSyNdgg/s1600/tidypics-album-with-photos-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;573&quot; data-original-width=&quot;921&quot; height=&quot;398&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7SuD9H22I5TeGEznEb_CPcFhrDUkqjQmcCkXCp-h33uLu0xOKofmLEw_JQvi2Txjs-3a9Wu3SIuBP4N8d6d2vGs_H-Wrp9Cc8lOFRtEcjWn8G6XXwQmZZRSTCaGTUTwlvVr2ABSyNdgg/s640/tidypics-album-with-photos-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;13. Let&#39;s add a video now! To upload videos, we will use the core Files plugin, which activates on install. To upload a video, in the navigation menu, click on Files:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2SJbNEOQd5H6_PuVP8T6fffs7cUoGUl0PJQnI4MrQYbWGp2eiCHWDC1QnOeBft9VzziZdbuBDfuu23po9bESbZNi_oyX0NxwTlEMep215_4WU1RzFaLueWJpwgdwTiOZ1WqGBY0N6tw/s1600/elgg-file-navigation-menu.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;100&quot; data-original-width=&quot;517&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2SJbNEOQd5H6_PuVP8T6fffs7cUoGUl0PJQnI4MrQYbWGp2eiCHWDC1QnOeBft9VzziZdbuBDfuu23po9bESbZNi_oyX0NxwTlEMep215_4WU1RzFaLueWJpwgdwTiOZ1WqGBY0N6tw/s640/elgg-file-navigation-menu.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;14. In the upload for, choose a file, enter a title, description and tags. Click on save to upload the file:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikj-W7DdoZeILB8sKB1NM3vowak6H0i_oJyZvE56sGJ8QLbbZhYBJqQjWE7W126CHn_srZGoZy-TJc3l-uuZ1q-Yz48wpKG40SCGD8MsgXY8m1NdKA7C9_Cg5_l0xLKA7Spgg67xRcUzY/s1600/elgg-file-select-upload-file.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;618&quot; data-original-width=&quot;921&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikj-W7DdoZeILB8sKB1NM3vowak6H0i_oJyZvE56sGJ8QLbbZhYBJqQjWE7W126CHn_srZGoZy-TJc3l-uuZ1q-Yz48wpKG40SCGD8MsgXY8m1NdKA7C9_Cg5_l0xLKA7Spgg67xRcUzY/s640/elgg-file-select-upload-file.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;15. After uploading the file, you will be redirected to a list with all the files uploaded:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPIDqPfV2z4yslQOBHtKv8S4ANBYJMCFfbFdVObZBnrfYKrIG_T0VA4lrQsbwbdrQvSkwROyb_Ee5R0ByLsrUW_MefjFujZmocItmfl8dIEQJRI2W0fYGaN1e5pez2q6ScQfGrfb34Nyw/s1600/elgg-uploaded-file-list.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;293&quot; data-original-width=&quot;921&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPIDqPfV2z4yslQOBHtKv8S4ANBYJMCFfbFdVObZBnrfYKrIG_T0VA4lrQsbwbdrQvSkwROyb_Ee5R0ByLsrUW_MefjFujZmocItmfl8dIEQJRI2W0fYGaN1e5pez2q6ScQfGrfb34Nyw/s640/elgg-uploaded-file-list.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;16. Now you have a Video and Photo gallery!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfT_cc7NsgVZstgugTDt99R9JcyotZ_CEM0vgyQr7KLnYM7qFEQcu-NL8ZcCUCjQtxSyl_q9InGxbCu-5_UVJ4WRNZXhwlcUxIGonx18deoFKBkmLgI5jzJ3Jav6EO1o3BsWXGfzJQVbQ/s1600/elgg-main-activity-page.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;630&quot; data-original-width=&quot;921&quot; height=&quot;436&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfT_cc7NsgVZstgugTDt99R9JcyotZ_CEM0vgyQr7KLnYM7qFEQcu-NL8ZcCUCjQtxSyl_q9InGxbCu-5_UVJ4WRNZXhwlcUxIGonx18deoFKBkmLgI5jzJ3Jav6EO1o3BsWXGfzJQVbQ/s640/elgg-main-activity-page.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;17. It doesn&#39;t look appealing right?&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Even though the site &quot;works&quot;, i&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;t actually looks like a project from late 2008, and such design will drive visitors away. However, no need to worry about that, since I developed a theme specifically for a site like this one. I integrated the TailWind CSS framework to port the GhostWind CSS template and I made it a theme for elgg. Get it from here:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQv3lHuZ88j1brPhcR3fxPe661ScBDwNKzuBAVm0Cx6a7gDuNlxgaD06uSW-pDvS5rS14spROH01Bs1zqS6kDWbJf6nByAOpEC5hT0BNTDpRqWIhsgV9zhJjrMK4X-eoHzu5lpVVU1nPo/s1600/ghostwind-css-elgg-tailwindcss-template.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;617&quot; data-original-width=&quot;921&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQv3lHuZ88j1brPhcR3fxPe661ScBDwNKzuBAVm0Cx6a7gDuNlxgaD06uSW-pDvS5rS14spROH01Bs1zqS6kDWbJf6nByAOpEC5hT0BNTDpRqWIhsgV9zhJjrMK4X-eoHzu5lpVVU1nPo/s640/ghostwind-css-elgg-tailwindcss-template.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;b&gt;Download here:&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;https://github.com/rjcalifornia/ghost-theme&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;https://github.com/rjcalifornia/ghost-theme&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;18. Install the theme as described in step 3, and then go to menu &quot;&lt;b&gt;Configure -&amp;gt; Plugins&lt;/b&gt;&quot; and activate the theme:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbq7EVQj8InQYSMnGMrycaPDrZX1Dg01eRT45VpqLpyf1ms_jDokQE3td-j6VI9DpajIxtQzrgzqRtPl35uPzksERr7FtczJmmasi_edHu2rYsX3xNhwfgxElMIXTeSPF7N8Ae5Aa558/s1600/ghost-theme-for-elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;70&quot; data-original-width=&quot;921&quot; height=&quot;48&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbq7EVQj8InQYSMnGMrycaPDrZX1Dg01eRT45VpqLpyf1ms_jDokQE3td-j6VI9DpajIxtQzrgzqRtPl35uPzksERr7FtczJmmasi_edHu2rYsX3xNhwfgxElMIXTeSPF7N8Ae5Aa558/s640/ghost-theme-for-elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;19. And that&#39;s it! Now the site has a modern, clean, and responsive design:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihVI4gcDdZwuOtY7hZQGGESRt2OcoiOu7HkhXwjfUM3gmQnU5ZlZHdOeEW6G6hzPaAi9HN9AKt-2nzF6SYhMGpvyiKUmd5EMam14eXSMFDPSqIonehgK3euLZqEcFkYUSWsSoCzkFkcLI/s1600/elgg-ghostwind-theme-preview.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;402&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihVI4gcDdZwuOtY7hZQGGESRt2OcoiOu7HkhXwjfUM3gmQnU5ZlZHdOeEW6G6hzPaAi9HN9AKt-2nzF6SYhMGpvyiKUmd5EMam14eXSMFDPSqIonehgK3euLZqEcFkYUSWsSoCzkFkcLI/s1600/elgg-ghostwind-theme-preview.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;20. And that&#39;s it, you just created a video and image gallery with elgg!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;You can get the source code for the theme here: &lt;a href=&quot;https://github.com/rjcalifornia/ghost-theme&quot; target=&quot;_blank&quot;&gt;Ghost Theme for elgg&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/5119100693859390411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/5119100693859390411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/5119100693859390411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/5119100693859390411'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/12/building-video-and-image-gallery-with.html' title='Building a Video and Image Gallery with elgg'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbvD8lu6eD7TmuL65Nl4yAraz6O7CKKtCFG3c0jeOBJw1bOceETyHOsRUJz_3WNJCGLCK0zblVI6AkYgxLzFZyqsON2AcOD7O5LCYb2L0sJVvV2Y3unXjS7wJ2Gqgm6Oo5BVE6foMby4M/s72-c/elgg-video-photo-gallery.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-1959173236710134329</id><published>2019-12-04T19:11:00.003-06:00</published><updated>2023-08-01T22:06:36.143-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="android development"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="dart"/><category scheme="http://www.blogger.com/atom/ns#" term="dart language"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter app development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter web"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter web upload"/><category scheme="http://www.blogger.com/atom/ns#" term="iOS"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony"/><category scheme="http://www.blogger.com/atom/ns#" term="upload files flutter web"/><title type='text'>Upload files to server with Flutter Web</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeUw5qNyJxq_r9h9vcERe5eCgq4b8Aj8Chfd5wf5r0RnR2U4FYL8xt1VYzSWcD0OXK4KfNcLtJYPQ12BHrCrqkPJj5oz5fVVglMzB8M1R8r08xZ_BsrfsWJVEJdqGxhAhlWveL-g_GzhY/s1600/flutter-web-development.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;614&quot; data-original-width=&quot;1600&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeUw5qNyJxq_r9h9vcERe5eCgq4b8Aj8Chfd5wf5r0RnR2U4FYL8xt1VYzSWcD0OXK4KfNcLtJYPQ12BHrCrqkPJj5oz5fVVglMzB8M1R8r08xZ_BsrfsWJVEJdqGxhAhlWveL-g_GzhY/s640/flutter-web-development.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/dinosoftlabs&quot; title=&quot;DinosoftLabs&quot;&gt;DinosoftLabs&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
For the last couple of weeks, I&#39;ve been looking for a way to upload files with Flutter Web. I even &lt;a href=&quot;https://github.com/flutter/flutter/issues/45782&quot; target=&quot;_blank&quot;&gt;opened two&lt;/a&gt; Github issues. I searched in StackOverflow and I only found examples with the dart:io library, which is not compatible with Flutter Web. Finally I found a way to send my files to an API, and it seemed to me that it wouldn&#39;t be bad to share my solution with others, just in case. That&#39;s why in this article I will give you a step-by-step guide on how to Upload Files to a server with Flutter Web&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
1. Start Visual Studio Code. Go to menu “&lt;b&gt;View -&amp;gt; Command
Palette&lt;/b&gt;” and select the “Flutter: New Project” option:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s1600/flutter-create-project.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;241&quot; data-original-width=&quot;921&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNnFpyAfy1m3H7iTnj2WVE_Kk2anCnuO1W7ED7MXwM6ND-HHnP0L9_Q1CA4V165ELvJh5vFyMxXFVJytJGIPBP_LBs3p6Nlzd9N_ZyvNAVSbT_Gj1leMirhHAwOukI9ZuE69A40_N4Ywc/s640/flutter-create-project.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
2. Create a folder called widgets inside the lib folder and
create a &lt;b&gt;web_upload.dart&lt;/b&gt; file. This is where we are going to work:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyWCzYuNur9eaFK6BfLs5yefWJm0afBZT9m9UBOr9_O7Di9WlxyZPrCtobWyHftfxkZjEQTDH2SPACRuv6TIW_Rmtv8q1UhIHWkUSSCis2HCyF019k5inMCvcnpBY_M-LUh41vST06bds/s1600/flutter-widget-structure.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;225&quot; data-original-width=&quot;696&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyWCzYuNur9eaFK6BfLs5yefWJm0afBZT9m9UBOr9_O7Di9WlxyZPrCtobWyHftfxkZjEQTDH2SPACRuv6TIW_Rmtv8q1UhIHWkUSSCis2HCyF019k5inMCvcnpBY_M-LUh41vST06bds/s640/flutter-widget-structure.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
3. Also, create a folder apps, and inside it create a
main_app.dart file:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCbWYQnjbO4T-MP8DhEY5huyR7mCbV_4pIPisD3_5Zh_RV2GyOZJR473ahdLGUUnE1olb-1UlbyrRbT1mCYuou427lDrxKBinUKgJgRiZIau1Xpyvj9OGQk1JjeL3-8gj9t63U3OwSX2Q/s1600/flutter-app-structure-main.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;296&quot; data-original-width=&quot;669&quot; height=&quot;282&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCbWYQnjbO4T-MP8DhEY5huyR7mCbV_4pIPisD3_5Zh_RV2GyOZJR473ahdLGUUnE1olb-1UlbyrRbT1mCYuou427lDrxKBinUKgJgRiZIau1Xpyvj9OGQk1JjeL3-8gj9t63U3OwSX2Q/s640/flutter-app-structure-main.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;4. &lt;/span&gt;Remove anything
from the &lt;b&gt;main.dart &lt;/b&gt;file, import the &lt;b&gt;main_app.dart&lt;/b&gt; file and call your main app:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:web_upload/apps/main_app.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;main()&amp;nbsp;=&amp;gt;&amp;nbsp;runApp(UploadApp());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
5. This is great! Our Flutter Web App is coming to life! It
might look like a lot of files/steps but this will be a structure of our app.
Open the &lt;b&gt;main_app.dart&lt;/b&gt; and add a stateless widget that will return our main
widget app: &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:web_upload/widgets/web_upload.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;UploadApp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;StatelessWidget{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;@override&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;Widget&amp;nbsp;build(BuildContext&amp;nbsp;context)&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;MaterialApp(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;My&amp;nbsp;App&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;debugShowCheckedModeBanner:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;ThemeData(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fontFamily:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;Quicksand&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;primarySwatch:&amp;nbsp;Colors.purple,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;home:&amp;nbsp;&amp;nbsp;FileUploadApp(),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 14.25pt;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
6. Open the &lt;b&gt;web_upload.dart&lt;/b&gt; widget and create the &lt;b&gt;FileUploadApp&lt;/b&gt; Stateful widget (a form will be in it). Copy the following code, and as you can see, we
are returning a &lt;b&gt;SafeArea&lt;/b&gt; with a Form in the body:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:flutter/material.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;FileUploadApp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;StatefulWidget&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;@override&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;createState()&amp;nbsp;=&amp;gt;&amp;nbsp;_FileUploadAppState();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;_FileUploadAppState&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;State&lt;fileuploadapp&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/fileuploadapp&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;@override&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;Widget&amp;nbsp;build(BuildContext&amp;nbsp;context)&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #6a9955; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;//&amp;nbsp;TODO:&amp;nbsp;implement&amp;nbsp;build&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;SafeArea(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;Scaffold(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;appBar:&amp;nbsp;AppBar(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title:&amp;nbsp;Text(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;A&amp;nbsp;Flutter&amp;nbsp;Web&amp;nbsp;file&amp;nbsp;picker&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;body:&amp;nbsp;Container(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;Form(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;Padding(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;EdgeInsets.only(top:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;16.0&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;left:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;28&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;Container(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;350&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;Column(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;children:&amp;nbsp;&lt;widget&gt;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/widget&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 14.25pt;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
7. Sweet! Let’s see it working in the web browser:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd1yYcxrjYF6mqtuCV6bBvFEWB3bfrRTYQDpqxG_3DgaHRkBR4FDL0j19a1vtCLpQ3CebwgQc1NI4PnxgqTQYfODlY4-fTne2xlOOMAMIlMTiWexfvWa7lVMpdHuilskyfgo6XLDFUVk4/s1600/flutter-web-app-demo.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;493&quot; data-original-width=&quot;921&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd1yYcxrjYF6mqtuCV6bBvFEWB3bfrRTYQDpqxG_3DgaHRkBR4FDL0j19a1vtCLpQ3CebwgQc1NI4PnxgqTQYfODlY4-fTne2xlOOMAMIlMTiWexfvWa7lVMpdHuilskyfgo6XLDFUVk4/s640/flutter-web-app-demo.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
8. Inside our widget, create a better widget structure by
adding a &lt;b&gt;column&lt;/b&gt;, and inside it a &lt;b&gt;Widget&lt;/b&gt;, which will hold the &lt;b&gt;upload button&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Column(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crossAxisAlignment:&amp;nbsp;CrossAxisAlignment.start,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;children:&amp;nbsp;&lt;widget&gt;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/widget&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 14.25pt;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
9. Add a material button, which&amp;nbsp;will be used to open up a dialog to select a file:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;MaterialButton(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;Colors.pink,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elevation:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;highlightElevation:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;shape:&amp;nbsp;RoundedRectangleBorder(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;borderRadius:&amp;nbsp;BorderRadius.circular(&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;)),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textColor:&amp;nbsp;Colors.white,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;Text(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;Select&amp;nbsp;a&amp;nbsp;file&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onPressed:&amp;nbsp;()&amp;nbsp;{},&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV_PMB4R-xLGqJVDNJJXEKrV9Qb3cmmMldefLsPi0-PJ-JYOv9gc5EovXkgRmYFhIKjd6r303rm0XATs9ihNPk_JOiIpPwE_wjwYskfnf8NE0mAz642H5id6WbtULk6jL7CvwhS0VowUE/s1600/flutter-web-material-button-file-dialog.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;651&quot; data-original-width=&quot;921&quot; height=&quot;452&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV_PMB4R-xLGqJVDNJJXEKrV9Qb3cmmMldefLsPi0-PJ-JYOv9gc5EovXkgRmYFhIKjd6r303rm0XATs9ihNPk_JOiIpPwE_wjwYskfnf8NE0mAz642H5id6WbtULk6jL7CvwhS0VowUE/s640/flutter-web-material-button-file-dialog.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
10. In order to be able to select a file in Flutter Web,
import the &lt;b&gt;HTML library, Async library, Convert library &lt;/b&gt;and also the&lt;b&gt; Typed Data
library&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;dart:html&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;html;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;dart:typed_data&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;dart:async&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;dart:convert&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:http_parser/http_parser.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
11. Create an async function &lt;b&gt;startWebFilePicker&lt;/b&gt; and call the&lt;b&gt;
File Upload Input Element&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;startWebFilePicker()&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;html.InputElement&amp;nbsp;uploadInput&amp;nbsp;=&amp;nbsp;html.FileUploadInputElement();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;uploadInput.multiple&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;uploadInput.draggable&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;uploadInput.click();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
12. Go back to the material button created in&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;b&gt;step 9,&lt;/b&gt; and in the onPressed event, call the
startWebFilePicker function:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onPressed:&amp;nbsp;()&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;startWebFilePicker();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
14. If you start the &lt;b&gt;Web App right now&lt;/b&gt;, and click on the select file button, a
file picker dialog will open:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Ent09lQFiW4kDTHaCcfYiJDmrYacLhbPJtx0wukJ83ZreoiWMTcrTs4JydtrUtt3qePCsZfUBu7ENtqEjQ7Cc6Lkod_0xBI8LqWpi_6VzwplUOkDwpO020-E9LoaJ1yq_fGecywendk/s1600/flutter-web-select-file-dialog-dart.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;921&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Ent09lQFiW4kDTHaCcfYiJDmrYacLhbPJtx0wukJ83ZreoiWMTcrTs4JydtrUtt3qePCsZfUBu7ENtqEjQ7Cc6Lkod_0xBI8LqWpi_6VzwplUOkDwpO020-E9LoaJ1yq_fGecywendk/s640/flutter-web-select-file-dialog-dart.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
15.So far, what we have done will only open the dialog but
will not select the file. Let’s create a List&lt;int&gt; variable that will
hold the file as indexable collection of objects with a length, and also a
fixed-length list variable:&lt;o:p&gt;&lt;/o:p&gt;&lt;/int&gt;&lt;br /&gt;
&lt;int&gt;&lt;br /&gt;&lt;/int&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;List&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&amp;nbsp;_selectedFile;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Uint8List&amp;nbsp;_bytesData;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
16. Now, go back to the &lt;b&gt;startWebFilePicker async function&lt;/b&gt;,
and add an &lt;b&gt;onChange listener&lt;/b&gt;
in which we will get the file content as data URL:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;uploadInput.onChange.listen((e)&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;final&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;files&amp;nbsp;=&amp;nbsp;uploadInput.files;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;final&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;file&amp;nbsp;=&amp;nbsp;files[&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;final&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;html.FileReader();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;});&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
17. Create a &lt;b&gt;_handleResult function&lt;/b&gt; which will be called in
the &lt;b&gt;startWebFilePicker’s onChange&lt;/b&gt; listener so that it can convert the file as
set is as bytes data:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;_handleResult(Object&amp;nbsp;result)&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;setState(()&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_bytesData&amp;nbsp;=&amp;nbsp;Base64Decoder().convert(result.toString().split(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;).last);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_selectedFile&amp;nbsp;=&amp;nbsp;_bytesData;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;});&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Note: With this method, to convert from Base64 to byte data, you &lt;b&gt;MUST&lt;/b&gt; use &lt;b&gt;.tostring().split(&quot;,&quot;).last&lt;/b&gt; otherwise you &lt;b&gt;WILL NOT &lt;/b&gt;be able to send the file.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
18. Inside the &lt;b&gt;startWebFilePicker&lt;/b&gt; function, add a reader to load
the file and call the data handler (our &lt;b&gt;_handleResult&lt;/b&gt; function):&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;reader.onLoadEnd.listen((e)&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_handleResult(reader.result);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reader.readAsDataUrl(file);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
19. The file selection is now ready. Let’s prepare our app
to send the file to the server. First, prepare the form by creating a global
form key:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;GlobalKey&lt;formstate&gt;&amp;nbsp;_formKey&amp;nbsp;=&amp;nbsp;&lt;/formstate&gt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;GlobalKey&lt;formstate&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/formstate&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
20. In the form, add the global key to the form and also set
the autovalidation to true:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;child:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;Form(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;autovalidate:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; key:&amp;nbsp;_formKey,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
21. Below the &lt;b&gt;Upload button&lt;/b&gt;, add a &lt;b&gt;Divider&lt;/b&gt; and another
&lt;b&gt;button that will call a function to send&lt;/b&gt; the file to the server on its
onPressed event:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Divider(color:&amp;nbsp;Colors.teal,),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RaisedButton(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;Colors.purple,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elevation:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;8.0&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textColor:&amp;nbsp;Colors.white,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onPressed:&amp;nbsp;()&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;makeRequest();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;Text(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;Send&amp;nbsp;file&amp;nbsp;to&amp;nbsp;server&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; ),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
22. Create a future async function called &lt;b&gt;makeRequest&lt;/b&gt; (added
to the send button in &lt;b&gt;step 21&lt;/b&gt;):&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Future&lt;string&gt;&amp;nbsp;makeRequest()&amp;nbsp;&lt;/string&gt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
22. Before getting into the makeRequest function, you have
to use the &lt;b&gt;HTTP library&lt;/b&gt;. Open your &lt;b&gt;pubspecs.yaml&lt;/b&gt; file and add it as a
dependency:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;http&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;^0.12.0+2&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
23. Import the library in the &lt;b&gt;web_upload.dart&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;package:http/http.dart&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;http;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
24. Now, in the &lt;b&gt;makeRequest&lt;/b&gt; function, set your &lt;b&gt;API url&lt;/b&gt; in a
variable:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;url&amp;nbsp;=&amp;nbsp;Uri.parse(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;http://192.168.23.10/upload_api/web/app_dev.php/api/save-file/&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
25.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Create a &lt;b&gt;request
&lt;/b&gt;variable which will have the &lt;b&gt;MultiPart Request&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;request&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;http.MultipartRequest(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;url);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
26. Alright, this part is tricky since there almost no
documentation about how to handle files with Flutter Web. In &lt;b&gt;step 17&lt;/b&gt; the file
was converted from &lt;b&gt;base64 to a stream of bytes&lt;/b&gt;, and this was done because this
is the only way right now to upload files. To send the file you need to use
&lt;b&gt;request.files.add&lt;/b&gt; and also use the &lt;b&gt;HTTP library&lt;/b&gt; from &lt;b&gt;step 22&lt;/b&gt; like this: &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;request.files.add(&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;http.MultipartFile.fromBytes(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;file&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;_selectedFile,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contentType:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;MediaType(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;application&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;octet-stream&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filename:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;file_up&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;http.MultipartFile.fromBytes&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
No, &lt;b&gt;you cannot use dart:io&lt;/b&gt;, and &lt;b&gt;you cannot use .fromPath&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
You must specify the content type. You could either detect
the mime type of the file or just do it the KISS way like I did above&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Note:&lt;/b&gt; &lt;i&gt;I’m using a hard-coded word as the filename, you can
extract the name in the startWebFilePicker function&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
27. Finally send the form and wait for a response:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;request.send().then((response)&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(response.statusCode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;(response.statusCode&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;)&amp;nbsp;print(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;Uploaded!&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
28. Finally, add a simple dialog to let the user know the
file was uploaded:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;showDialog(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;barrierDismissible:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context:&amp;nbsp;context,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;AlertDialog(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;Text(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;Details&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #6a9955; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;//content:&amp;nbsp;new&amp;nbsp;Text(&quot;Hello&amp;nbsp;World&quot;),&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;SingleChildScrollView(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;ListBody(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;children:&amp;nbsp;&lt;widget&gt;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/widget&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;Text(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;Upload&amp;nbsp;successfull&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;actions:&amp;nbsp;&lt;widget&gt;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/widget&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;FlatButton(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;child:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;Text(&lt;/span&gt;&lt;span style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;Aceptar&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onPressed:&amp;nbsp;()&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Navigator.pushAndRemoveUntil(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MaterialPageRoute(builder:&amp;nbsp;(context)&amp;nbsp;=&amp;gt;&amp;nbsp;UploadApp()),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(Route&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;dynamic&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&amp;nbsp;route)&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: rgb(30, 30, 30); line-height: 14.25pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
29. That’s it! You now can upload files using Flutter Web!&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguiR5T3IUPkvFPwjlXC_Qs8MmNN72Rw2eiFRKK4nkKGdmBAsQ6SgIUc3ueRw51-X9tq6pm28dHpjKTFyW5gVVr6Y0b6ZOfoICapXjJBsoW-hcSdQWT-JP4vK27DE4uTbr-85B9HtCQgCM/s1600/Untitled.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;532&quot; data-original-width=&quot;921&quot; height=&quot;368&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguiR5T3IUPkvFPwjlXC_Qs8MmNN72Rw2eiFRKK4nkKGdmBAsQ6SgIUc3ueRw51-X9tq6pm28dHpjKTFyW5gVVr6Y0b6ZOfoICapXjJBsoW-hcSdQWT-JP4vK27DE4uTbr-85B9HtCQgCM/s640/Untitled.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-H3OYSYeOZDlKzkU-2T7QFX4zU-9yQVC6a7oXSAyAz_2r2Cqnj_pn5cLmKnzTOyGwkBMuOLUsaANW_91Q5fvBrdGTv21TqyK0rvL9F8dJKFJxLEoglzihTsgNsvcwVntWzZVM5d5xXyo/s1600/2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;569&quot; data-original-width=&quot;921&quot; height=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-H3OYSYeOZDlKzkU-2T7QFX4zU-9yQVC6a7oXSAyAz_2r2Cqnj_pn5cLmKnzTOyGwkBMuOLUsaANW_91Q5fvBrdGTv21TqyK0rvL9F8dJKFJxLEoglzihTsgNsvcwVntWzZVM5d5xXyo/s640/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuXlsTlhzuQdL1BFZ94YpP6MzX6DNhdMEVsJU2t6vnt4aGxXI79NeyuoqXM4q_O6-YFQNkWkzjXQOph5xgj8AeF-3SiYx6eBW-5uQO4Nk3OfWSj0mrwtCs8ItOlgsWNNGKKWMrFkHbbBk/s1600/4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;349&quot; data-original-width=&quot;738&quot; height=&quot;302&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuXlsTlhzuQdL1BFZ94YpP6MzX6DNhdMEVsJU2t6vnt4aGxXI79NeyuoqXM4q_O6-YFQNkWkzjXQOph5xgj8AeF-3SiYx6eBW-5uQO4Nk3OfWSj0mrwtCs8ItOlgsWNNGKKWMrFkHbbBk/s640/4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFP8DjC9kh29RaMK4jVTCKYQ3z0FR1TjGEwzI3ededu9ZETTrBWyRCgnTMUhwmb7oaSCIMys5POmuKD7Wqa1tRyWyN3aAjesWd1xtxp4b-B5abPU2b1ib-SJJ0utFfV9GCGAAi3UvgKyo/s1600/3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;462&quot; data-original-width=&quot;921&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFP8DjC9kh29RaMK4jVTCKYQ3z0FR1TjGEwzI3ededu9ZETTrBWyRCgnTMUhwmb7oaSCIMys5POmuKD7Wqa1tRyWyN3aAjesWd1xtxp4b-B5abPU2b1ib-SJJ0utFfV9GCGAAi3UvgKyo/s640/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
You can get the source code here:&amp;nbsp;&lt;b&gt;&lt;a href=&quot;https://github.com/rjcalifornia/web_upload&quot;&gt;https://github.com/rjcalifornia/web_upload&lt;/a&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
If you want to know how the files are being handled in the
backend, I used Symfony and MySQL.&lt;br /&gt;
&lt;br /&gt;
Get the source code for the API here:&amp;nbsp;&lt;b&gt;&lt;a href=&quot;https://github.com/rjcalifornia/file-upload-api&quot;&gt;https://github.com/rjcalifornia/file-upload-api&lt;/a&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/1959173236710134329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/1959173236710134329' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/1959173236710134329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/1959173236710134329'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/12/upload-files-to-server-with-flutter-web.html' title='Upload files to server with Flutter Web'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeUw5qNyJxq_r9h9vcERe5eCgq4b8Aj8Chfd5wf5r0RnR2U4FYL8xt1VYzSWcD0OXK4KfNcLtJYPQ12BHrCrqkPJj5oz5fVVglMzB8M1R8r08xZ_BsrfsWJVEJdqGxhAhlWveL-g_GzhY/s72-c/flutter-web-development.png" height="72" width="72"/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-5193894312486519032</id><published>2019-11-24T10:58:00.001-06:00</published><updated>2020-05-21T20:50:47.088-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Apps"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter dart"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter dependent drop down field"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter development"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter multilevel dependent drop down"/><category scheme="http://www.blogger.com/atom/ns#" term="iOS"/><category scheme="http://www.blogger.com/atom/ns#" term="ios apps"/><title type='text'>Create a dependent drop down field in Flutter</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO8JARV7MWuCwNdne-7cwmBXGD76rUnzKC2uHi0rL-koa5-iNL0OmZarqf0lRZg197BeTytRs-o1Jh1Or6ld35eoZs4huuxGvPieD-Na9Ij6l9lTrgwumFgucOntf5CNF7hxsR2BUqUEE/s1600/smartphone.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;512&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO8JARV7MWuCwNdne-7cwmBXGD76rUnzKC2uHi0rL-koa5-iNL0OmZarqf0lRZg197BeTytRs-o1Jh1Or6ld35eoZs4huuxGvPieD-Na9Ij6l9lTrgwumFgucOntf5CNF7hxsR2BUqUEE/s320/smartphone.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;b&gt;Icons made by &lt;a href=&quot;https://www.flaticon.com/authors/pixel-perfect&quot; title=&quot;Pixel perfect&quot;&gt;Pixel perfect&lt;/a&gt; from &lt;a href=&quot;https://www.flaticon.com/&quot; title=&quot;Flaticon&quot;&gt;www.flaticon.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Although the Flutter documentation is extremely helpful, it is still lacking some key tutorials about some things that might look simple, however are critical in real world applications, specially in the corporate field. There are some tutorials that cover this topic, however none of them are easy to follow for newbies. In this article I will give you a step-by-step guide on how to create a dependent drop down field in Flutter&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. Start Visual Studio Code. Go to menu “&lt;b&gt;View -&amp;gt; Command
Palette&lt;/b&gt;” and select the “Flutter: New Project” option:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN751XhhGC7TP8gu0ISpACeiW2qxoWgSrffINx-mUjywhztWLMt85bRJGXHyGVAqOvTp-_VqZubHJoH_p3Prc6tN2ssxr4gNwx1f-3uM92gVK_cvEyu2Vu2h7psGd9Pjt02TiZ9BLkNkc/s1600/flutter-visual-studio-create-new-project.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;241&quot; data-original-width=&quot;921&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN751XhhGC7TP8gu0ISpACeiW2qxoWgSrffINx-mUjywhztWLMt85bRJGXHyGVAqOvTp-_VqZubHJoH_p3Prc6tN2ssxr4gNwx1f-3uM92gVK_cvEyu2Vu2h7psGd9Pjt02TiZ9BLkNkc/s640/flutter-visual-studio-create-new-project.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Imagen_x0020_1&quot; o:spid=&quot;_x0000_i1034&quot; style=&quot;height: 116pt; mso-wrap-style: square; visibility: visible; width: 442pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image001.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;span lang=&quot;ES-SV&quot; style=&quot;mso-ansi-language: ES-SV;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
2. Create a folder called widgets inside the lib folder and
create a drop_down.dart file. This is where we are going to work:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-bvNLZR5TZFMOW38paD2engV_FqU-pa1OSMXWNuzOu-6ZK9RtDpy2iMUsI6_pFZtXC87WlAObMYpBFk8HZRf71FavDZK8oiHZcSJsAk8y7A6QTXWHN5pOnM0laBbLYnCeM-275qJet-g/s1600/flutter-widgets.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;104&quot; data-original-width=&quot;310&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-bvNLZR5TZFMOW38paD2engV_FqU-pa1OSMXWNuzOu-6ZK9RtDpy2iMUsI6_pFZtXC87WlAObMYpBFk8HZRf71FavDZK8oiHZcSJsAk8y7A6QTXWHN5pOnM0laBbLYnCeM-275qJet-g/s1600/flutter-widgets.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_3&quot; o:spid=&quot;_x0000_i1033&quot; style=&quot;height: 50pt; mso-wrap-style: square; visibility: visible; width: 149pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image002.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
3. Also, create a folder apps, and inside it create a
main_app.dart file:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJX5Yvhlu0VbsTojZwOjYquKhJevIRE2IeJ5E0F451Hce_urA1aowpW8brlZgzQOKGAjKQDBnjoVokep7Y3dneJN0_JEMPIaqApg67l-ZQ_xWQJRcGYK7ebOmxptqhf7y8mjcZ8SAWEn4/s1600/flutter-main-app.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;116&quot; data-original-width=&quot;365&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJX5Yvhlu0VbsTojZwOjYquKhJevIRE2IeJ5E0F451Hce_urA1aowpW8brlZgzQOKGAjKQDBnjoVokep7Y3dneJN0_JEMPIaqApg67l-ZQ_xWQJRcGYK7ebOmxptqhf7y8mjcZ8SAWEn4/s320/flutter-main-app.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_5&quot; o:spid=&quot;_x0000_i1032&quot; style=&quot;height: 56pt; mso-wrap-style: square; visibility: visible; width: 175pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image003.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
4. Remove anything from the main.dart file, import the main_app.dart
file and call your main app:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDk6F3amzB8xSKw30cgfHZVRlDZkY-f_wuzhlsBeJAo8CAyGFK8q4BSjWZ4B7mxzpYw4BMsZBKRzYMUoqNCOQIQmZ8j87L21i5Fz3SlJoap5S0rjU585tPisJm_6bRfwaKWdn8ZCpoSWM/s1600/flutter-main-app.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;116&quot; data-original-width=&quot;365&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDk6F3amzB8xSKw30cgfHZVRlDZkY-f_wuzhlsBeJAo8CAyGFK8q4BSjWZ4B7mxzpYw4BMsZBKRzYMUoqNCOQIQmZ8j87L21i5Fz3SlJoap5S0rjU585tPisJm_6bRfwaKWdn8ZCpoSWM/s320/flutter-main-app.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_6&quot; o:spid=&quot;_x0000_i1031&quot; style=&quot;height: 89pt; mso-wrap-style: square; visibility: visible; width: 336pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image004.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
5. So far so good right? It might look like a lot of
files/steps but this will be a structure of our app. Open the main_app.dart and
add a stateless widget that will return our main widget app: &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib2Ty3UgXi4PD23N_lG9VtxEc1ksFwRO4WZlPmvQ_Fu2Q9bGbGtmXx2b-9KxosWlrRLnAa11UiS6q-5mc5JtdU9sDx9DI1ZS1trFiQZ77nNQL6u456Gu-zl_28CRyL0oL1tOSfg8cMeXg/s1600/flutter-main-widget-app-stateless.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;605&quot; data-original-width=&quot;619&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib2Ty3UgXi4PD23N_lG9VtxEc1ksFwRO4WZlPmvQ_Fu2Q9bGbGtmXx2b-9KxosWlrRLnAa11UiS6q-5mc5JtdU9sDx9DI1ZS1trFiQZ77nNQL6u456Gu-zl_28CRyL0oL1tOSfg8cMeXg/s320/flutter-main-widget-app-stateless.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_7&quot; o:spid=&quot;_x0000_i1030&quot; style=&quot;height: 290pt; mso-wrap-style: square; visibility: visible; width: 297pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image005.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
6. Open the drop_down.dart and create our Main App widget.
We will create a form in our widget. Copy the following code, and as you can
see we are returning a SafeArea with a Form in the body:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/333324a81ae9d2d69ee7befb52cdac35.js&quot;&gt;&lt;/script&gt;

7. Things are going well. You can even start the app right
now:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghyphenhyphen6WpGHVcAkAz81rxmV1Bi-tf7igKTHfpUSKrbU643J0p9bfvXFK_UYH4fWB-tBcStfWVxvPLqdArBPWmfSVqkKIXZyV_t3K5Qj374jyVP6g2vEL7uOJDqrJC0UIaR3VFyP0htMRBKC4/s1600/flutter-run-blank-app-android.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1110&quot; data-original-width=&quot;519&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghyphenhyphen6WpGHVcAkAz81rxmV1Bi-tf7igKTHfpUSKrbU643J0p9bfvXFK_UYH4fWB-tBcStfWVxvPLqdArBPWmfSVqkKIXZyV_t3K5Qj374jyVP6g2vEL7uOJDqrJC0UIaR3VFyP0htMRBKC4/s400/flutter-run-blank-app-android.png&quot; width=&quot;186&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_8&quot; o:spid=&quot;_x0000_i1029&quot; style=&quot;height: 533pt; mso-wrap-style: square; visibility: visible; width: 249pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image006.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
8. Lets add an Padding class, and inside it, create a child
with a new Container specifying the width, and another column that will have
our widget as children:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/0bae7e5eb95ce33b8c2fb1bdff2b0e43.js&quot;&gt;&lt;/script&gt;

9. For purposes of this example, lets add a text field
inside the widget:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/121e297ac4cdaf9eaa8e5caf7c65fc9f.js&quot;&gt;&lt;/script&gt;

10. Now, before adding our dropdown fields, we will create
our models, that we will need to populate our dependable dropdown fields. I
will use in this example the Provinces and States of my home country, so that
each time you select a State in the first dropdown field, the second one will
only show the Provinces that belongs only to the State selected. Let’s create a
Models folder, and inside it a localization_model.dart file:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_11&quot; o:spid=&quot;_x0000_i1028&quot; style=&quot;height: 50pt; mso-wrap-style: square; visibility: visible; width: 202pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image007.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Open that file, and create three classes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Localization (Main)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;States&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Provinces&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Let’s build our&lt;b&gt; Provinces Class &lt;/b&gt;first, like this:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/ca83b6adbdc4069cf1b28ee9c434dca4.js&quot;&gt;&lt;/script&gt;

And then our &lt;b&gt;States Class&lt;/b&gt; like this:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/1c2c41b5d5559d964edf4b83d8551bb3.js&quot;&gt;&lt;/script&gt;

You might be wondering why I’m using fromJson, and this is
because I will be using a Json file to get all the values. &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;Finally, build the &lt;b&gt;Localization Class&lt;/b&gt; like
this:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/1be3e3592417222be488935008e3f380.js&quot;&gt;&lt;/script&gt;

11. Create a folder outside of lib called “&lt;b&gt;json&lt;/b&gt;”, there you
will save the JSON file (Available in the Github repository). Also add the Assets in the &lt;b&gt;pubspec.yaml&lt;/b&gt;&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/f5cdb0ae2469e04199e06c7d7601d344.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
Since you are in the pubspec, add the HTTP library as
dependency:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/34b25d82154c5812436b27c3e4229a7f.js&quot;&gt;&lt;/script&gt;

12. Now that we have everything ready (Models and Assets),
go back to the drop_down.dart, there you need to import the following
libraries and the model class:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/cc09ab561bd1a3e9ccf01cae905a2021.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
14. Create two variables: &lt;b&gt;statesList &lt;/b&gt;and &lt;b&gt;provincesLis&lt;/b&gt;t as
List variables, and also a &lt;b&gt;tempList&lt;/b&gt; where the filtered provinces will be saved
temporarily:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/3904c5145e97da4d5a3d915efd4f3295.js&quot;&gt;&lt;/script&gt;

Tip: Add the &lt;b&gt;_state &lt;/b&gt;and &lt;b&gt;_province&lt;/b&gt; variables to save the
selected options for each dropdown&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
15. Create a Future function that will be called when we
need to get the contents of the JSON file:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/2c78a2df206fa896ebe683b25e4758c3.js&quot;&gt;&lt;/script&gt;

16. Create another Future function that will use the
previous function to get the contents of the JSON file, decode it, and make it
an iterable list:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/2fbba92067e235820b1170170112afe6.js&quot;&gt;&lt;/script&gt;

17. Override the initState method to initialize the
&lt;b&gt;_populateDropdown &lt;/b&gt;function:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/e56f8fb6113da1344d37c813247d30d5.js&quot;&gt;&lt;/script&gt;

18. Add a new &lt;b&gt;dropdown field&lt;/b&gt;, where we will map the states
that we got from the JSON and add each item to the dropdown list:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/a57cbe8ad1764af7bf7226a73e77d566.js&quot;&gt;&lt;/script&gt;

I am already adding the provinces filter in the onChanged
call back, so that each time the user changes state, the correct provinces will
be added to the other dropdown.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
19. Look how is the app going right now:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6kisYa0frvZi66Kpp2A1uJIex7mChaXxU2L5GHOGeoPFn-lOt0I1sW40x8W8bIyjnhSnnM-dJc7lq0sTz42V7aePXBuYwhUo0mf-fneBzJhgcMo1VzzgvvNYQwqNEH37ewBLJvIAZHQ/s1600/flutter-dependable-dropdown-list-menu.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;186&quot; data-original-width=&quot;323&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6kisYa0frvZi66Kpp2A1uJIex7mChaXxU2L5GHOGeoPFn-lOt0I1sW40x8W8bIyjnhSnnM-dJc7lq0sTz42V7aePXBuYwhUo0mf-fneBzJhgcMo1VzzgvvNYQwqNEH37ewBLJvIAZHQ/s320/flutter-dependable-dropdown-list-menu.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlKFN9l2FpoFZXx-fj7B0dGX8cKWDppoFdiuFy_WAJ6kH9ryJCQsDAvlSmfLw9Na2pmk2adJOGZokNS4OU3rGlvbke_U0h5eZ4Gn6935kBcC74O1-fMK_8sXx1wvHSMZbbB-QrGq1vUZg/s1600/flutter-create-dependable-dropdown-list-dart.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;445&quot; data-original-width=&quot;295&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlKFN9l2FpoFZXx-fj7B0dGX8cKWDppoFdiuFy_WAJ6kH9ryJCQsDAvlSmfLw9Na2pmk2adJOGZokNS4OU3rGlvbke_U0h5eZ4Gn6935kBcC74O1-fMK_8sXx1wvHSMZbbB-QrGq1vUZg/s320/flutter-create-dependable-dropdown-list-dart.png&quot; width=&quot;212&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_13&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 89pt; mso-wrap-style: square; visibility: visible; width: 155pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image009.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Imagen_x0020_14&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 213pt; mso-wrap-style: square; visibility: visible; width: 142pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file://localhost/Users/MacBook/Library/Caches/TemporaryItems/msoclip/0clip_image010.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
20. Now, add the &lt;b&gt;Provinces drop down field,&lt;/b&gt; using the&lt;b&gt; tempList&lt;/b&gt; to
build its items:&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjcalifornia/27ecb732b825af40eda9fbf5b2b4291d.js&quot;&gt;&lt;/script&gt;

And that’s it! You just created a dependable drop down field with Flutter!&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Any questions or suggestions, just drop a comment!&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
You can get the code here: &lt;a href=&quot;https://github.com/rjcalifornia/drop_example&quot; target=&quot;_blank&quot;&gt;Dependable Drop Down Field with Flutter&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;
By the way, the code has been updated. The DropDownFormField cannot be used for this specific purpose.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:RelyOnVML/&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;--&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;276&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:8.0pt;
 mso-para-margin-left:0in;
 line-height:107%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:Calibri;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;



&lt;!--StartFragment--&gt;













































































































































































































































































































































































































































































































































&lt;!--EndFragment--&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/5193894312486519032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/5193894312486519032' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/5193894312486519032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/5193894312486519032'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/11/create-dependent-drop-down-field-in.html' title='Create a dependent drop down field in Flutter'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO8JARV7MWuCwNdne-7cwmBXGD76rUnzKC2uHi0rL-koa5-iNL0OmZarqf0lRZg197BeTytRs-o1Jh1Or6ld35eoZs4huuxGvPieD-Na9Ij6l9lTrgwumFgucOntf5CNF7hxsR2BUqUEE/s72-c/smartphone.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-7588016661933605332</id><published>2019-10-26T12:53:00.001-06:00</published><updated>2019-10-26T18:16:44.494-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="elgg"/><category scheme="http://www.blogger.com/atom/ns#" term="flutter"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="node"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="react"/><category scheme="http://www.blogger.com/atom/ns#" term="requirejs"/><category scheme="http://www.blogger.com/atom/ns#" term="social networking"/><category scheme="http://www.blogger.com/atom/ns#" term="tailwind css"/><category scheme="http://www.blogger.com/atom/ns#" term="video platform"/><category scheme="http://www.blogger.com/atom/ns#" term="vue"/><category scheme="http://www.blogger.com/atom/ns#" term="web apps"/><category scheme="http://www.blogger.com/atom/ns#" term="web development"/><title type='text'>Why you should consider Elgg</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdHljYE_O03tNFSQMdf9LqVTfoL9WAjlET6x_w0FgbTp8yRPOdbT8pPE_fcLAfEd4_0MxWqU31Z_CtAvkaeIO-QbxFUMrhUxgcQ3l6MHXquSl3BHSiImyhGbaPvItPMjJuccxf2KgmY-Q/s1600/elgg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;547&quot; data-original-width=&quot;1600&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdHljYE_O03tNFSQMdf9LqVTfoL9WAjlET6x_w0FgbTp8yRPOdbT8pPE_fcLAfEd4_0MxWqU31Z_CtAvkaeIO-QbxFUMrhUxgcQ3l6MHXquSl3BHSiImyhGbaPvItPMjJuccxf2KgmY-Q/s640/elgg.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Recently with new technologies such as Node, React, and Flutter have built up a lot of hype in the
developers community and outside it as well. Other technologies have been left
behind because they are no longer “cool”. One of them is elgg. Why am I talking
about elgg?&amp;nbsp; Should small-to-medium
businesses consider using elgg for their applications or projects? Let’s take a
look.&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;b&gt;What is elgg?&lt;/b&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;First off, let’s take a look at the official description of
the framework:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;Elgg is an award-winning open source social networking
engine that provides a robust framework with the core components needed to
build a socially aware web application.&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Here are some key elements from that description:&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;“&lt;b&gt;robust framework&lt;/b&gt;” : elgg is a modular OOP framework that is
driven by DI services, but unlike other alternatives, it features Symfony
components, and uses RequireJS to manage and assemble different Javascript
files from different modules.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;“&lt;b&gt;socially aware web application&lt;/b&gt;” : You don’t have to
reinvent the wheel, elgg comes with all the elements required for user
interaction and user authentication. Thanks to that, you can focus your resources in actually building the features you need for your application.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;Elgg isn&#39;t only focused on providing social networking elements, it’s focused more on being a better way of building a web application. Other frameworks like WordPress and Joomla, have some inherent security and design issues, a lot of which developers will not have workarounds to solve those issues.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;But still, &lt;b&gt;why should you consider Elgg for your next web application?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;It gets things done. It might surprise what an almost forgotten social networking framework can do&amp;nbsp;nowadays. Elgg is not &quot;cool&quot;or &quot;shiny&quot;. It has been written in PHP, which has a bad connotation by the majority of &quot;hipster&quot; developers. However, it lets you create robust web apps really fast.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Around five months ago I was asked to provide a multimedia publishing platform, able to handle video playback and photo galleries. In a matter of a week I had a fully functional multimedia publishing platform, scalable and able to handle multiple visitors at the same time. Later on I was asked to extend the same platform except this time will be only for pictures. I successfully integrated TailWind CSS and implemented a beautiful and modern design in elgg. Essentially what I needed was install and activate only five plugins and one theme (the theme was custom made by me). That&#39;s it just five plugins, no useless dependencies (I&#39;m looking at you is-left package), not even 200 dependencies, just that. And the best thing is that if I&#39;m not available to make changes, you can easily find someone who knows PHP that can keep giving support to both platforms (this is very important, specially for small-to-medium size companies)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Next time you get a request for a web application, consider elgg. You will surprise your boss when you show up with a fully functional demo app in less than a week!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
Happy Coding!&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;--&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;276&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin:0in;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:Cambria;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;



&lt;!--StartFragment--&gt;



























&lt;!--EndFragment--&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/7588016661933605332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/7588016661933605332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/7588016661933605332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/7588016661933605332'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/10/why-you-should-consider-elgg.html' title='Why you should consider Elgg'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdHljYE_O03tNFSQMdf9LqVTfoL9WAjlET6x_w0FgbTp8yRPOdbT8pPE_fcLAfEd4_0MxWqU31Z_CtAvkaeIO-QbxFUMrhUxgcQ3l6MHXquSl3BHSiImyhGbaPvItPMjJuccxf2KgmY-Q/s72-c/elgg.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-9034611661034940560</id><published>2019-07-01T00:08:00.000-06:00</published><updated>2019-07-01T00:08:08.322-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="duolingo"/><category scheme="http://www.blogger.com/atom/ns#" term="El Salvador"/><category scheme="http://www.blogger.com/atom/ns#" term="high school duolingo"/><category scheme="http://www.blogger.com/atom/ns#" term="learn english"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type='text'>Revisiting my Duolingo Experience</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnKkpuwdoDW7CrOG9mGXfh_xcs329Ggty62-cpbMOiWAKUoZ-iqvy3suVcRiHwwxfZRIgq7hg17Wd7enArtM51oBegkT7jnSmEWfWMRWjHTsOkk8BtHHIga4ccnwxZpcv7f0AzBFGilwM/s1600/Screen+shot+2019-06-30+at+11.22.16+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;1280&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnKkpuwdoDW7CrOG9mGXfh_xcs329Ggty62-cpbMOiWAKUoZ-iqvy3suVcRiHwwxfZRIgq7hg17Wd7enArtM51oBegkT7jnSmEWfWMRWjHTsOkk8BtHHIga4ccnwxZpcv7f0AzBFGilwM/s640/Screen+shot+2019-06-30+at+11.22.16+PM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Almost three years ago, I shared my experience using Duolingo in the classroom. Reading again that post, I realized that I shared few details about the implementation of the project. In this post I will give you some tips about how to bring the &quot;Duolingo Challenge&quot; project to your classroom in El Salvador&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;b&gt;How to get started?&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Before announcing that you want to use Duolingo in your classroom, you have to lay the groundwork. What does that mean? Well, first you must get the English teacher on board, otherwise you will not be able to teach English with Duolingo. After that, you have to sit down and write a project proposal that you must submit to your school&#39;s principal for approval. If you want to get an idea of how to write a proposal, you can check mine&amp;nbsp;&lt;a href=&quot;https://www.slideshare.net/anaritavelez5/proyecto-duolingo-challenge-centro-escolar-ana-rita-vlez-de-moreira&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. It is not perfect but you can get a general idea of what you need to submit to your principal.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Once you get the approval, you have to plan the logistics to launch the project. That means preparing the IT equipment, creating two Teacher Accounts, and creating the accounts for the students. If the students lack IT knowledge, you must plan ahead and put some time aside to improve their technology skills. It will be a lot of work, but it will be worth it.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
After getting everything up and ready, bring the students in and teach them how to use Duolingo. It will be very difficult the first two weeks, but after that it will be a cake walk. Students learn fast, don&#39;t underestimate their skills. At the same time, start preparing a separate virtual classroom where you will create online exams to test their newly acquired knowledge. You can use Claroline, Moodle, or you could use mine: PiGo LMS.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;b&gt;Why giving the students online exams if Duolingo already scores their knowledge?&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
You need to gather data in order to know whether or not Duolingo is working. Even though we already know that Duolingo is somewhat effective, you need to demonstrate the progress of the project. After all, the continuity of any project depends on the results and that&#39;s why you must do it with online exams. Talk with the English teacher and ask for help in building the exams. I recommend a 50 questions test each month and one final exam at the end of the project.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;b&gt;Finally, why should do this?&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
If you are wondering this, you are working in the wrong field. Teachers improve the life of students with knowledge. Everything you teach them, will help them to get a good life, a better life. Of course students will not recognize this effort, and some will not care. However, as the years go by, they will appreciate everything you did for them.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
If you wanna read more about my experience with Duolingo in the classroom, you can do that&amp;nbsp;&lt;a href=&quot;http://sitiosescolares.miportal.edu.sv/12944/noticias/posts/arranca-duolingo-challenge-quelepa.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/9034611661034940560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/9034611661034940560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/9034611661034940560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/9034611661034940560'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2019/07/revisiting-my-duolingo-experience.html' title='Revisiting my Duolingo Experience'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnKkpuwdoDW7CrOG9mGXfh_xcs329Ggty62-cpbMOiWAKUoZ-iqvy3suVcRiHwwxfZRIgq7hg17Wd7enArtM51oBegkT7jnSmEWfWMRWjHTsOkk8BtHHIga4ccnwxZpcv7f0AzBFGilwM/s72-c/Screen+shot+2019-06-30+at+11.22.16+PM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-2612725516914561641</id><published>2018-07-11T23:43:00.000-06:00</published><updated>2018-07-11T23:45:59.917-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="armbian"/><category scheme="http://www.blogger.com/atom/ns#" term="Debian"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="install symfony"/><category scheme="http://www.blogger.com/atom/ns#" term="laravel"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="orange pi"/><category scheme="http://www.blogger.com/atom/ns#" term="orange pi pc"/><category scheme="http://www.blogger.com/atom/ns#" term="orange pi web server"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="raspberry pi"/><category scheme="http://www.blogger.com/atom/ns#" term="symfony"/><category scheme="http://www.blogger.com/atom/ns#" term="vagrant"/><category scheme="http://www.blogger.com/atom/ns#" term="xampp"/><title type='text'>Running Symfony in Orange Pi PC</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4mfe4EybpkHY1zuUf1as5yrcjxtJ3bfFTL3_qnh7oeXn5BTACrqKSJvvrRwm9IoxmqDgrOCelxeyuX3FkIOadZqdmpKePqoC-bqwbVbVqLh8ub6esh19ySRWiXobzhhxVv03MhRfUmKU/s1600/IMG-20180711-WA0000.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4mfe4EybpkHY1zuUf1as5yrcjxtJ3bfFTL3_qnh7oeXn5BTACrqKSJvvrRwm9IoxmqDgrOCelxeyuX3FkIOadZqdmpKePqoC-bqwbVbVqLh8ub6esh19ySRWiXobzhhxVv03MhRfUmKU/s640/IMG-20180711-WA0000.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I&#39;ve been trying to find information about running Symfony on small single-board computers, such as OrangePi or Raspberry Pi, because why not? I already have an Orange Pi PC which I use to watch Youtube (Android OS), and I can use it to learn how to set up a web server.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
The only information about Symfony and hardware requirements I could find was this one:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://stackoverflow.com/questions/30553842/systems-hardware-requirements-for-symfony2&quot;&gt;https://stackoverflow.com/questions/30553842/systems-hardware-requirements-for-symfony2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
That was a good place to start. User Joe Yahchouchi mentioned that an application built with Symfony can run with at least 512 MB of RAM, and at least a Quad core for multiple users. I ordered a case for the Orange Pi, and I bought a cheap 8 GB MicroSDHC (Class 4).&lt;br /&gt;
&lt;br /&gt;
After spending three hours setting everything up, voil&lt;span style=&quot;background-color: white; color: #006621; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; white-space: nowrap;&quot;&gt;à&lt;/span&gt;!! Symfony 3.4 was up and running better than I anticipated. I ran both dev and prod enviroment, and it was very fast. The custom application I&#39;ve been developing for the past six months ran without issues on the Orange Pi, which I did not expect since my local development environment with XAMPP was painfully slow at times.&lt;br /&gt;
&lt;br /&gt;
Later this month I will write a step-by-step guide(both Spanish and English) on how to make an Orange Pi web server to run any Symfony Application. In the meantime, check out some pics I took while testing the web server:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJNBO6YfoYILYExc_7AkGtqrK_7i5LqSE1-Ogqd346QemYxTQeAE0TFaMIl0_D546DZmqecLGEN_NSXPQgcT8Y-ngCNoIPJDJ_ymS4wzFgIMLYzpzfPRDBlZ8jMDYi41tnZuoWxAyDb0/s1600/IMG-20180711-WA0002.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJNBO6YfoYILYExc_7AkGtqrK_7i5LqSE1-Ogqd346QemYxTQeAE0TFaMIl0_D546DZmqecLGEN_NSXPQgcT8Y-ngCNoIPJDJ_ymS4wzFgIMLYzpzfPRDBlZ8jMDYi41tnZuoWxAyDb0/s640/IMG-20180711-WA0002.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4yVXEZddHh4aCOdNzbZ6LFMHTl5fvzZhegxs0Uv0QGaBu_PkqhtTAkxzr7bzGBe5eiXfEgszPPpWpfhd0n4NCJJdV2mQYW5TSlAparKoLxmIpaccmghu8HINLdLciyTY4M9OV-js02PM/s1600/WP_20180710_001.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;901&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4yVXEZddHh4aCOdNzbZ6LFMHTl5fvzZhegxs0Uv0QGaBu_PkqhtTAkxzr7bzGBe5eiXfEgszPPpWpfhd0n4NCJJdV2mQYW5TSlAparKoLxmIpaccmghu8HINLdLciyTY4M9OV-js02PM/s640/WP_20180710_001.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyCixNflHd_6_UzaMrRFJynVPtR6Wt-ykPeEEOhlK67fb0Agz9BhqxjAqNR5lNV8oP-6JkqPysfLP5oJHWRcfZQUDUcMPkIffGZ0G-9gLhPwiMwePbPJSSCNjhfXB35pLPj7ZjKFdcums/s1600/WP_20180710_002.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;901&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyCixNflHd_6_UzaMrRFJynVPtR6Wt-ykPeEEOhlK67fb0Agz9BhqxjAqNR5lNV8oP-6JkqPysfLP5oJHWRcfZQUDUcMPkIffGZ0G-9gLhPwiMwePbPJSSCNjhfXB35pLPj7ZjKFdcums/s640/WP_20180710_002.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKYw4VYacHg7U3HZ5h7Eg2a8wZsZGVPA2ZjLkiGcIyRQ_A5zjCz7CxTmGjAOhSkEpYXmRMMg2UUiD_G7c5375H1LzgTXADMNsm-ZVp-BTrVoxHZglUUhBzeCrq5nIgo2dwWcPvtxkP0RM/s1600/WP_20180710_003.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;901&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKYw4VYacHg7U3HZ5h7Eg2a8wZsZGVPA2ZjLkiGcIyRQ_A5zjCz7CxTmGjAOhSkEpYXmRMMg2UUiD_G7c5375H1LzgTXADMNsm-ZVp-BTrVoxHZglUUhBzeCrq5nIgo2dwWcPvtxkP0RM/s640/WP_20180710_003.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUoxhkxkHEoQ0KlqA8myg1eOvVO_jYc7q1eKloPRXFeuchB7TVSh5HgdniAsu3y1c5fuCKz58dx6s03dYZiOQibO9aT4y9ZhrJWnR3HQ1-8pLpRe-Y03T8I4XDV4OXMkfb8TZADI76wU/s1600/WP_20180710_004.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;901&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUoxhkxkHEoQ0KlqA8myg1eOvVO_jYc7q1eKloPRXFeuchB7TVSh5HgdniAsu3y1c5fuCKz58dx6s03dYZiOQibO9aT4y9ZhrJWnR3HQ1-8pLpRe-Y03T8I4XDV4OXMkfb8TZADI76wU/s640/WP_20180710_004.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/2612725516914561641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/2612725516914561641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2612725516914561641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/2612725516914561641'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2018/07/running-symfony-in-orangepi-pc.html' title='Running Symfony in Orange Pi PC'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4mfe4EybpkHY1zuUf1as5yrcjxtJ3bfFTL3_qnh7oeXn5BTACrqKSJvvrRwm9IoxmqDgrOCelxeyuX3FkIOadZqdmpKePqoC-bqwbVbVqLh8ub6esh19ySRWiXobzhhxVv03MhRfUmKU/s72-c/IMG-20180711-WA0000.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8448635219343547269.post-3989286234504290468</id><published>2018-07-08T11:35:00.000-06:00</published><updated>2018-07-08T11:35:22.792-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="composer"/><category scheme="http://www.blogger.com/atom/ns#" term="composer libraries"/><category scheme="http://www.blogger.com/atom/ns#" term="getting started composer"/><category scheme="http://www.blogger.com/atom/ns#" term="installing composer"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><category scheme="http://www.blogger.com/atom/ns#" term="using composer"/><title type='text'>Installing Composer</title><content type='html'>When working with Frameworks, it is necessary to learn how to correctly handle the packages you are going to use in your project. In this post I will show you how to install Composer in Windows 7&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What is Composer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Composer is a dependency manager for PHP libraries that can be used for the installation of extensions and libraries required in a project (MediaWiki). For example, if your project needs a library to send emails, simply install it with Composer, and this will be responsible for downloading and installing the library, including any other dependency that allows proper operation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Benefits of using Composer&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The dependencies required by a package that is being downloaded are automatically installed by Composer, without you having to intervene in the process&lt;/li&gt;
&lt;li&gt;The process to update packages is much easier and faster&lt;/li&gt;
&lt;li&gt;Automation of the package installation process&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Requirements:&lt;/b&gt;&lt;br /&gt;
PHP (Using XAMPP)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Getting Started&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. Download the installer for Windows de Composer:&lt;br /&gt;
&lt;a href=&quot;https://getcomposer.org/download/&quot;&gt;https://getcomposer.org/download/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgebDhwd3lzC5JP8dpGqTTvHTlXW4F5sb4LekBBGC_aynENOKZq-BEwurWg8Us64aDDoZL7fp6V9FC4wKk-QLJ_ZDapNbxUajAiy4vkZsJf499Gh_og0yAwOa9QrzlE1XAarHlHXcvu9S0/s1600/descargar-composer-windows.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;340&quot; data-original-width=&quot;881&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgebDhwd3lzC5JP8dpGqTTvHTlXW4F5sb4LekBBGC_aynENOKZq-BEwurWg8Us64aDDoZL7fp6V9FC4wKk-QLJ_ZDapNbxUajAiy4vkZsJf499Gh_og0yAwOa9QrzlE1XAarHlHXcvu9S0/s640/descargar-composer-windows.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. After downloading Composer, install it as Administrator:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlEs9TQC0UVPdboHuED0jeWQf93Bn-fasKrEIFwU1y6EjF8YqJYbPZqpfXdQcYhu7Tajx_aFH3MOOLCOebPLwf47B75dOTUJAog6F3141U-s5gAgTAwEtKMC2ns841QB2uI5iyWN6bgO4/s1600/instalar-composer.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;1004&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlEs9TQC0UVPdboHuED0jeWQf93Bn-fasKrEIFwU1y6EjF8YqJYbPZqpfXdQcYhu7Tajx_aFH3MOOLCOebPLwf47B75dOTUJAog6F3141U-s5gAgTAwEtKMC2ns841QB2uI5iyWN6bgO4/s640/instalar-composer.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Select the PHP command line you must use (You must already have installed PHP in your Windows environment):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBVXcrsinmvpVpxxnq5LhvaaW4TepshuBmcon5Q0oWbcedsUvIO5t_eMshw_7iymLgA3bhejxwwKBW8hkvbGnopa5Xl7e5tp_c0ESkupMKRcPmQ9iG-WsauQFOsXqAkb9DsadOWajBAnI/s1600/seleccionar+php+composer.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;536&quot; data-original-width=&quot;752&quot; height=&quot;281&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBVXcrsinmvpVpxxnq5LhvaaW4TepshuBmcon5Q0oWbcedsUvIO5t_eMshw_7iymLgA3bhejxwwKBW8hkvbGnopa5Xl7e5tp_c0ESkupMKRcPmQ9iG-WsauQFOsXqAkb9DsadOWajBAnI/s400/seleccionar+php+composer.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
3. If desired, add a Proxy server:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9TMCZ3FCg2u-4oLwyOZDVuESvXruwAPhZDIzv-2xRF-A0D8LUGUOTehy2zldV0q1_xDJ19WXa3e0lLrCFJiVCbS2_DWMiO5nZXRI2Es5rfoSbp9YxLHoq3eo8J1VHN_coajcmOLsjcX4/s1600/proxy+composer.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;571&quot; height=&quot;504&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9TMCZ3FCg2u-4oLwyOZDVuESvXruwAPhZDIzv-2xRF-A0D8LUGUOTehy2zldV0q1_xDJ19WXa3e0lLrCFJiVCbS2_DWMiO5nZXRI2Es5rfoSbp9YxLHoq3eo8J1VHN_coajcmOLsjcX4/s640/proxy+composer.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
4. Install Composer:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6PnFuciN_C0vqfwlNNNdcHYeH_3flzncZWJUk9L9bRRWMHGFn2GAJLP4S8mNYBoK1IrnA-G_0nah4ZyiIrl0-eZmzBax9ffopNt8bTvNhcpoJAY1bK72PZKvEcAEhz5P6RH69MBAiwL4/s1600/instalar+composer+ultimo+paso.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;505&quot; data-original-width=&quot;693&quot; height=&quot;466&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6PnFuciN_C0vqfwlNNNdcHYeH_3flzncZWJUk9L9bRRWMHGFn2GAJLP4S8mNYBoK1IrnA-G_0nah4ZyiIrl0-eZmzBax9ffopNt8bTvNhcpoJAY1bK72PZKvEcAEhz5P6RH69MBAiwL4/s640/instalar+composer+ultimo+paso.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
5.Composer will show an alert about the use of the program. You must log out and restart to be able to use it correctly:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfyjgtDTzuR0Bkzy6dyydswJiPEBcx-DdxtAFxKdFIsa3ZJQQ5nlpP-D2QtIlzopfAV2FF832KGWi9_qMsy9DrQduSMzo27B0PRVynyhyphenhyphen8-RZ7GcP2kX2CB49vzsHldzDX0tKKp8cvFmQ/s1600/descargando+composer+instalacion.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;523&quot; data-original-width=&quot;690&quot; height=&quot;484&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfyjgtDTzuR0Bkzy6dyydswJiPEBcx-DdxtAFxKdFIsa3ZJQQ5nlpP-D2QtIlzopfAV2FF832KGWi9_qMsy9DrQduSMzo27B0PRVynyhyphenhyphen8-RZ7GcP2kX2CB49vzsHldzDX0tKKp8cvFmQ/s640/descargando+composer+instalacion.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
6. And that&#39;s it! Now you can use Composer!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCCgy8NSGdkr-cJ8q0ic3RT8sxI7ltIBXhYRGWvmMQa3LmRWknlx1YSSQhW30WQeJzw5OSHFzZcShWM9aZmTh-L6BoWqPD6M_Y8EehqFzdK_Ejpmxv0m7U8miHJNkNo_NyTcEZi2riSBk/s1600/composer+finalizado+windows.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;488&quot; data-original-width=&quot;610&quot; height=&quot;510&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCCgy8NSGdkr-cJ8q0ic3RT8sxI7ltIBXhYRGWvmMQa3LmRWknlx1YSSQhW30WQeJzw5OSHFzZcShWM9aZmTh-L6BoWqPD6M_Y8EehqFzdK_Ejpmxv0m7U8miHJNkNo_NyTcEZi2riSBk/s640/composer+finalizado+windows.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Sources:&lt;/b&gt;&lt;br /&gt;
MediaWiki &quot;Composer / Es.&quot; Composer / Es - MediaWiki, 11 Mar. 2016, www.mediawiki.org/wiki/Composer/en.</content><link rel='replies' type='application/atom+xml' href='http://rodolfohernan20.blogspot.com/feeds/3989286234504290468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8448635219343547269/3989286234504290468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/3989286234504290468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8448635219343547269/posts/default/3989286234504290468'/><link rel='alternate' type='text/html' href='http://rodolfohernan20.blogspot.com/2018/07/installing-composer.html' title='Installing Composer'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgebDhwd3lzC5JP8dpGqTTvHTlXW4F5sb4LekBBGC_aynENOKZq-BEwurWg8Us64aDDoZL7fp6V9FC4wKk-QLJ_ZDapNbxUajAiy4vkZsJf499Gh_og0yAwOa9QrzlE1XAarHlHXcvu9S0/s72-c/descargar-composer-windows.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>