CINXE.COM
About Flutter – Medium
<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>About Flutter – Medium</title><link rel="canonical" href="https://medium.com/flutter/about"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/flutter"><meta name="robots" content="index,follow"><meta name="title" content="About Flutter – Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="Read more about Flutter. Flutter is Google's UI framework for crafting high-quality native interfaces on iOS, Android, web, and desktop. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.dev."><meta name="theme-color" content="#000000"><meta property="og:title" content="About Flutter – Medium"><meta property="twitter:title" content="About Flutter – Medium"><meta property="og:url" content="https://medium.com/flutter/about"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Read more about Flutter. Flutter is Google's UI framework for crafting high-quality native interfaces on iOS, Android, web, and desktop. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.dev."><meta name="twitter:description" content="Read more about Flutter. Flutter is Google's UI framework for crafting high-quality native interfaces on iOS, Android, web, and desktop. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.dev."><meta name="twitter:image:src" content=""><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://flutter"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://flutter"><meta property="al:android:url" content="medium://flutter"><meta property="al:web:url" content="https://medium.com/flutter/about"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/flutter" /><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.ouwh4uMviI3QQWIjxRhkHA.12.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js"></script><![endif]--><link rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*5-aoK8IBmXve5whBQM90GA.png"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*5-aoK8IBmXve5whBQM90GA.png"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*5-aoK8IBmXve5whBQM90GA.png"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*5-aoK8IBmXve5whBQM90GA.png"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class=" browser-ie os-windows v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix u-boxShadow4px12pxBlackLighter u-textColorTransparentWhiteDarker js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--wordmarkMedium svgIcon--120x26px u-flex"><svg class="svgIcon-use" width="120" height="26" ><path d="M29.57 1.404l.036-.008V1.12h-7.27l-6.75 15.979-6.75-15.98H1.003v.278l.035.008c1.327.302 2 .752 2 2.374v18.993c0 1.623-.676 2.073-2.003 2.374L1 25.153v.279h5.315v-.278l-.035-.008c-1.327-.302-2-.751-2-2.374V4.88l8.67 20.552h.492l8.924-21.125V23.24c-.114 1.282-.782 1.677-1.983 1.95l-.036.009v.275h9.259V25.2l-.036-.008c-1.203-.274-1.886-.67-2-1.95l-.006-19.464h.006c0-1.622.674-2.072 2-2.374zm4.23 12.582c.15-3.412 1.367-5.875 3.41-5.918.629.01 1.157.219 1.568.62.872.852 1.282 2.634 1.219 5.298h-6.198zm-.092.962h10.85v-.046c-.03-2.61-.78-4.64-2.228-6.033-1.25-1.204-3.103-1.867-5.048-1.867h-.043c-1.01 0-2.248.246-3.13.693a7.316 7.316 0 00-2.623 2.086c-1.185 1.479-1.903 3.477-2.078 5.724a13.717 13.717 0 00-.04.755c-.004.195-.005.39-.001.587.117 5.087 2.846 9.153 7.692 9.153 4.254 0 6.73-3.132 7.348-7.336l-.312-.11c-1.085 2.259-3.034 3.628-5.252 3.461-3.028-.228-5.347-3.32-5.137-7.066m23.122 6.893c-.356.85-1.099 1.319-2.094 1.319-.995 0-1.905-.689-2.552-1.939-.694-1.342-1.06-3.24-1.06-5.487 0-4.678 1.445-7.704 3.68-7.704.937 0 1.674.468 2.026 1.284v12.527zm7.198 3.335c-1.327-.316-2-.787-2-2.492V0l-8.062 2.392v.293l.05-.004c1.111-.09 1.866.064 2.304.472.343.32.51.809.51 1.498v3.11C56.033 7.25 55.088 7 53.94 7c-2.326 0-4.453.987-5.986 2.779-1.599 1.867-2.444 4.42-2.444 7.38 0 5.287 2.584 8.84 6.43 8.84 2.25 0 4.06-1.242 4.888-3.336v2.811h7.233v-.29l-.035-.008zM70.94 3.085c0-1.65-1.236-2.896-2.875-2.896-1.632 0-2.908 1.272-2.908 2.896 0 1.624 1.278 2.896 2.908 2.896 1.64 0 2.875-1.245 2.875-2.896zm1.903 22.092c-1.327-.316-2-.787-2-2.492h-.006V7.055l-7.234 2.092v.284l.043.004c1.566.14 1.994.683 1.994 2.525v13.515h7.24v-.29l-.037-.008zm18.536 0c-1.327-.316-2-.787-2-2.492V7.055L82.49 9.078v.285l.04.004c1.28.136 1.65.71 1.65 2.56v9.88c-.426.85-1.227 1.356-2.196 1.39-1.573 0-2.439-1.07-2.439-3.012V7.055l-7.234 2.092v.284l.044.004c1.565.14 1.994.683 1.994 2.525v8.362a9.443 9.443 0 00.15 1.741l.13.57C75.243 24.845 76.848 26 79.362 26c2.129 0 3.996-1.328 4.818-3.405v2.885h7.233v-.291l-.034-.012zm28.102.298v-.291l-.035-.009c-1.44-.334-2.001-.964-2.001-2.248V12.295C117.445 8.98 115.597 7 112.5 7c-2.257 0-4.16 1.314-4.893 3.36-.582-2.168-2.257-3.36-4.734-3.36-2.175 0-3.88 1.156-4.612 3.11V7.056l-7.233 2.006v.286l.043.004c1.547.138 1.994.697 1.994 2.492v13.631h6.75v-.29l-.037-.01c-1.148-.271-1.519-.767-1.519-2.04V10.95c.304-.715.917-1.562 2.127-1.562 1.504 0 2.266 1.05 2.266 3.116v12.972h6.751v-.29l-.035-.01c-1.149-.271-1.52-.767-1.52-2.04V12.294a7.107 7.107 0 00-.095-1.21c.322-.777.97-1.696 2.23-1.696 1.524 0 2.265 1.02 2.265 3.116v12.972h7.233z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/flutter%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fflutter%2Fabout&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/flutter/about" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fflutter%2Fabout&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/flutter/about" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div><div class="u-tintBgColor u-tintSpectrum " ><div class="metabar-inner u-marginAuto u-maxWidth1032 u-paddingHorizontal20 js-metabarBottom"><nav role="navigation" class="metabar-block metabar-block--below u-flexCenter u-overflowHidden u-height54"><div class="u-flexCenter u-overflowHidden"><div class="u-marginRight40"><a href="https://medium.com/flutter?source=logo-lo_7df5646346b8---4da7dfd21a33" class="u-flexCenter js-collectionLogoOrName"><img height="36" width="137" src="https://cdn-images-1.medium.com/letterbox/274/72/50/50/1*KvnfbD1F5CzEsU9wSmRZyA.png?source=logoAvatar-lo_7df5646346b8---4da7dfd21a33" alt="Flutter" /></a></div><div class="u-overflowHidden u-xs-hide"><ul class="u-textAlignLeft u-noWrap u-overflowX u-height80 u-marginTop40 js-collectionNavItems"><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/flutter/tagged/announcements">Announcements</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/flutter/tagged/performance">Performance</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/flutter/tagged/material-design">Material Design</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/flutter/tagged/web-development">Web Development</a></li><span class="u-borderLeft1 u-baseColor--borderLight"></span><li class="metabar-navItem js-collectionNavItem is-external u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darkenOnHover u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://flutter.dev/" rel="nofollow noopener" target="_blank">flutter.dev</a></li></ul></div></div></nav></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-tintBgColor u-height119 u-xs-height110"></div><div class="container u-maxWidth1072 u-marginTop20 js-masthead"><div class="row u-paddingTop10"><div class="col"><div class="infoCard u-clearfix js-infoCardCollection infoCard--padded"><div class="infoCard-avatar"><a class="link u-baseColor--link js-collectionLogoOrName" href="https://medium.com/flutter" title="Go to Flutter" aria-label="Go to Flutter" data-action-source="footer"><img class="u-width60 u-height60 u-backgroundColorWhite" alt="Go to Flutter" src="https://cdn-images-1.medium.com/fit/c/120/120/1*5-aoK8IBmXve5whBQM90GA.png" /></a></div><div class="infoCard-info "><div class="infoCard-wrapper"><div class="infoCard-title u-textColorNormal u-fontSize11">About</div><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal js-collectionLogoOrName" href="https://medium.com/flutter" title="Go to Flutter" aria-label="Go to Flutter" data-action-source="footer">Flutter</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Flutter is Google's UI framework for crafting high-quality native interfaces on iOS, Android, web, and desktop. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at <a rel="nofollow" href="https://flutter.dev">https://flutter.dev</a></div></div></div></div></div></div><div class="row"><div class="col"><header class="heading heading--borderedTop heading--allCaps heading--light" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title heading-title--bold">Note from the editor</span></div></div></header><p class="u-contentSerifRegular u-breakWord js-editorsNote">Flutter is Google’s mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.io</p></div></div><div class="row"><div class="col"><header class="heading heading--borderedTop heading--allCaps heading--light" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title heading-title--bold">Editors</span></div></div></header><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="a6d788faa5e5"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@mit.mit?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="a6d788faa5e5" data-action-type="hover" data-user-id="a6d788faa5e5" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Y_CFLc1qadgr3tPK." class="avatar-image avatar-image--small" alt="Go to the profile of Michael Thomsen"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@mit.mit?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="a6d788faa5e5" data-action-type="hover" data-user-id="a6d788faa5e5" dir="auto">Michael Thomsen</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Product Manager working on Dart and Flutter. Helping developers is my passion!</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="a6d788faa5e5"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/a6d788faa5e5" data-action-source="collection_editor_card-a6d788faa5e5"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="26a19a14addb"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@redbrogdon?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="26a19a14addb" data-action-type="hover" data-user-id="26a19a14addb" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*UfXdwppirgDYRNaj." class="avatar-image avatar-image--small" alt="Go to the profile of Andrew Brogdon"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@redbrogdon?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="26a19a14addb" data-action-type="hover" data-user-id="26a19a14addb" dir="auto">Andrew Brogdon</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Engineer at Google, currently cranking out code for the Flutter developer relations team.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="26a19a14addb"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/26a19a14addb" data-action-source="collection_editor_card-26a19a14addb"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="dfd5de850c70"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@domesticmouse?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="dfd5de850c70" data-action-type="hover" data-user-id="dfd5de850c70" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*R7VUzyb9_HQm9afP.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of Brett Morgan"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@domesticmouse?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="dfd5de850c70" data-action-type="hover" data-user-id="dfd5de850c70" dir="auto">Brett Morgan</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">I am a developer relations engineer for Google’s Flutter and Dart programming language.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="dfd5de850c70"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/dfd5de850c70" data-action-source="collection_editor_card-dfd5de850c70"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="6b9d8506b756"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@npcteam2021?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="6b9d8506b756" data-action-type="hover" data-user-id="6b9d8506b756" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Uol4BSSNgjkV_29i" class="avatar-image avatar-image--small" alt="Go to the profile of Jane Doe"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@npcteam2021?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="6b9d8506b756" data-action-type="hover" data-user-id="6b9d8506b756" dir="auto">Jane Doe</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="6b9d8506b756"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/6b9d8506b756" data-action-source="collection_editor_card-6b9d8506b756"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="35da22255b65"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@stefl_96362?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="35da22255b65" data-action-type="hover" data-user-id="35da22255b65" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*bvZP3-WXR76-u7lG" class="avatar-image avatar-image--small" alt="Go to the profile of Stefanie Luo"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@stefl_96362?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="35da22255b65" data-action-type="hover" data-user-id="35da22255b65" dir="auto">Stefanie Luo</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="35da22255b65"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/35da22255b65" data-action-source="collection_editor_card-35da22255b65"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="68e9dc5e47d5"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@atsansone?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="68e9dc5e47d5" data-action-type="hover" data-user-id="68e9dc5e47d5" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*NZQx_Sj47YNmnPcq" class="avatar-image avatar-image--small" alt="Go to the profile of Anthony Sansone"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@atsansone?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="68e9dc5e47d5" data-action-type="hover" data-user-id="68e9dc5e47d5" dir="auto">Anthony Sansone</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="68e9dc5e47d5"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/68e9dc5e47d5" data-action-source="collection_editor_card-68e9dc5e47d5"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="2df4e577749c"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@flutterblog?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="2df4e577749c" data-action-type="hover" data-user-id="2df4e577749c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*NDwANf5EtonxPpWVGXyt7Q.png" class="avatar-image avatar-image--small" alt="Go to the profile of Flutter Blog Admin"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@flutterblog?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="2df4e577749c" data-action-type="hover" data-user-id="2df4e577749c" dir="auto">Flutter Blog Admin</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="2df4e577749c"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/2df4e577749c" data-action-source="collection_editor_card-2df4e577749c"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="4631513e40c0"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@shaza?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="4631513e40c0" data-action-type="hover" data-user-id="4631513e40c0" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*LHz-9FgHd3doKgCM." class="avatar-image avatar-image--small" alt="Go to the profile of Shams Zakhour"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@shaza?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="4631513e40c0" data-action-type="hover" data-user-id="4631513e40c0" dir="auto">Shams Zakhour</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">I write Flutter docs.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="4631513e40c0"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/4631513e40c0" data-action-source="collection_editor_card-4631513e40c0"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="ae996dbdd76e"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@mbelanger_65682?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="ae996dbdd76e" data-action-type="hover" data-user-id="ae996dbdd76e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*dvfKkfTnezv7BhXgB51pGA.png" class="avatar-image avatar-image--small" alt="Go to the profile of Marya Belanger"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@mbelanger_65682?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="ae996dbdd76e" data-action-type="hover" data-user-id="ae996dbdd76e" dir="auto">Marya Belanger</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Technical Writer for Dart</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="ae996dbdd76e"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/ae996dbdd76e" data-action-source="collection_editor_card-ae996dbdd76e"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="aa31f520c7ec"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@kkboateng?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="aa31f520c7ec" data-action-type="hover" data-user-id="aa31f520c7ec" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*IxpUINuAJhraX2My" class="avatar-image avatar-image--small" alt="Go to the profile of Kelvin Boateng"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@kkboateng?source=collection_editor_card" data-action="show-user-card" data-action-source="collection_editor_card" data-action-value="aa31f520c7ec" data-action-type="hover" data-user-id="aa31f520c7ec" dir="auto">Kelvin Boateng</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="aa31f520c7ec"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_editor_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/aa31f520c7ec" data-action-source="collection_editor_card-aa31f520c7ec"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div></div></div><div class="row"><div class="col"><header class="heading heading--borderedTop heading--allCaps heading--light" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title heading-title--bold">Writers</span></div></div></header><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="3df949742a3b"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@xster?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3df949742a3b" data-action-type="hover" data-user-id="3df949742a3b" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*h_lwkzhaAtW5WTkM750_Xw.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of xster"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@xster?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3df949742a3b" data-action-type="hover" data-user-id="3df949742a3b" dir="auto">xster</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="3df949742a3b"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/3df949742a3b" data-action-source="collection_writer_card-3df949742a3b"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="883356bdfc50"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@lukeaf?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="883356bdfc50" data-action-type="hover" data-user-id="883356bdfc50" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*osRrOD-rpUZlVPFwpn2_GQ.png" class="avatar-image avatar-image--small" alt="Go to the profile of Luke Freeman"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@lukeaf?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="883356bdfc50" data-action-type="hover" data-user-id="883356bdfc50" dir="auto">Luke Freeman</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Maker of software and hardware. Cranky Australian. Founder @ Yakka (<a rel="nofollow" href="https://theyakka.com">https://theyakka.com</a>).</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="883356bdfc50"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/883356bdfc50" data-action-source="collection_writer_card-883356bdfc50"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="4099de83b041"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@devoncarew?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="4099de83b041" data-action-type="hover" data-user-id="4099de83b041" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*Wio_YseYYApcaC6FSU52aQ.png" class="avatar-image avatar-image--small" alt="Go to the profile of Devon Carew"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@devoncarew?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="4099de83b041" data-action-type="hover" data-user-id="4099de83b041" dir="auto">Devon Carew</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Software Engineer @ Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="4099de83b041"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/4099de83b041" data-action-source="collection_writer_card-4099de83b041"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="49be9fe426e"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@swav.kulinski?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="49be9fe426e" data-action-type="hover" data-user-id="49be9fe426e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Qgrum-sTozr6lXCm." class="avatar-image avatar-image--small" alt="Go to the profile of Swav Kulinski"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@swav.kulinski?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="49be9fe426e" data-action-type="hover" data-user-id="49be9fe426e" dir="auto">Swav Kulinski</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Computer enthusiast since 80s, Android developer since Eclair, now Flutter enthusiast. <a rel="nofollow" href="https://gitlab.com/swav-kulinski">https://gitlab.com/swav-kulinski</a></div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="49be9fe426e"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/49be9fe426e" data-action-source="collection_writer_card-49be9fe426e"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="a6d788faa5e5"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@mit.mit?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a6d788faa5e5" data-action-type="hover" data-user-id="a6d788faa5e5" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Y_CFLc1qadgr3tPK." class="avatar-image avatar-image--small" alt="Go to the profile of Michael Thomsen"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@mit.mit?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a6d788faa5e5" data-action-type="hover" data-user-id="a6d788faa5e5" dir="auto">Michael Thomsen</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Product Manager working on Dart and Flutter. Helping developers is my passion!</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="a6d788faa5e5"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/a6d788faa5e5" data-action-source="collection_writer_card-a6d788faa5e5"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="61ffa50a01de"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@konstantin.scheglov?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="61ffa50a01de" data-action-type="hover" data-user-id="61ffa50a01de" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*m23OLfjD-pystWVb." class="avatar-image avatar-image--small" alt="Go to the profile of Konstantin Scheglov"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@konstantin.scheglov?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="61ffa50a01de" data-action-type="hover" data-user-id="61ffa50a01de" dir="auto">Konstantin Scheglov</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Software Engineer @ Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="61ffa50a01de"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/61ffa50a01de" data-action-source="collection_writer_card-61ffa50a01de"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="ccb73ea506cc"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@ezra-sandzer-bell?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="ccb73ea506cc" data-action-type="hover" data-user-id="ccb73ea506cc" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*tTlm5zfgYWqtvLbIzUByLQ.png" class="avatar-image avatar-image--small" alt="Go to the profile of Ezra Sandzer-Bell"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@ezra-sandzer-bell?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="ccb73ea506cc" data-action-type="hover" data-user-id="ccb73ea506cc" dir="auto">Ezra Sandzer-Bell</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Web Developer</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="ccb73ea506cc"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/ccb73ea506cc" data-action-source="collection_writer_card-ccb73ea506cc"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="adc0de80a214"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@maryx?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="adc0de80a214" data-action-type="hover" data-user-id="adc0de80a214" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*9Ub8P3iIx6Ji3hUUrSCZlg.png" class="avatar-image avatar-image--small" alt="Go to the profile of Mary"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@maryx?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="adc0de80a214" data-action-type="hover" data-user-id="adc0de80a214" dir="auto">Mary</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="adc0de80a214"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/adc0de80a214" data-action-source="collection_writer_card-adc0de80a214"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="50dd805ce3b8"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@jayoung.lee?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="50dd805ce3b8" data-action-type="hover" data-user-id="50dd805ce3b8" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*09ekgauj46kjGlHoi94FwA.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of JaYoung Lee"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@jayoung.lee?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="50dd805ce3b8" data-action-type="hover" data-user-id="50dd805ce3b8" dir="auto">JaYoung Lee</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">UX Researcher at Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="50dd805ce3b8"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/50dd805ce3b8" data-action-source="collection_writer_card-50dd805ce3b8"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="338f470535d3"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@yegorj?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="338f470535d3" data-action-type="hover" data-user-id="338f470535d3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*8pUBYXbTsN324CAB." class="avatar-image avatar-image--small" alt="Go to the profile of Yegor Jbanov"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@yegorj?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="338f470535d3" data-action-type="hover" data-user-id="338f470535d3" dir="auto">Yegor Jbanov</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Software Engineer <a href="http://twitter.com/Google" target="_blank" title="Twitter profile for @Google">@Google</a> <a href="http://twitter.com/Flutter" target="_blank" title="Twitter profile for @Flutter">@Flutter</a>, <a rel="nofollow" href="https://twitter.com/yegorjbanov">https://twitter.com/yegorjbanov</a></div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="338f470535d3"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/338f470535d3" data-action-source="collection_writer_card-338f470535d3"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="d46c128329ea"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@kenzieschmoll?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d46c128329ea" data-action-type="hover" data-user-id="d46c128329ea" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*6siHzzkrp68l6H-V" class="avatar-image avatar-image--small" alt="Go to the profile of Kenzie Davisson"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@kenzieschmoll?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d46c128329ea" data-action-type="hover" data-user-id="d46c128329ea" dir="auto">Kenzie Davisson</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Lead for the Flutter DevTools team at Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="d46c128329ea"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/d46c128329ea" data-action-source="collection_writer_card-d46c128329ea"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="26a19a14addb"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@redbrogdon?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="26a19a14addb" data-action-type="hover" data-user-id="26a19a14addb" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*UfXdwppirgDYRNaj." class="avatar-image avatar-image--small" alt="Go to the profile of Andrew Brogdon"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@redbrogdon?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="26a19a14addb" data-action-type="hover" data-user-id="26a19a14addb" dir="auto">Andrew Brogdon</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Engineer at Google, currently cranking out code for the Flutter developer relations team.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="26a19a14addb"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/26a19a14addb" data-action-source="collection_writer_card-26a19a14addb"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="31a1e64bd9c5"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@arbullard?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="31a1e64bd9c5" data-action-type="hover" data-user-id="31a1e64bd9c5" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*tNv4NL4miSZG0eeS.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of Anthony Bullard"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@arbullard?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="31a1e64bd9c5" data-action-type="hover" data-user-id="31a1e64bd9c5" dir="auto">Anthony Bullard</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="31a1e64bd9c5"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/31a1e64bd9c5" data-action-source="collection_writer_card-31a1e64bd9c5"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="441fe70f4b5e"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@kevmoo?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="441fe70f4b5e" data-action-type="hover" data-user-id="441fe70f4b5e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*iUVmcyWC2Pj7ERaoSF-Onw.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Kevin Moore"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@kevmoo?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="441fe70f4b5e" data-action-type="hover" data-user-id="441fe70f4b5e" dir="auto">Kevin Moore</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Google Product Manager working on Dart and Flutter web technologies. Find all of my social links at <a rel="nofollow" href="https://j832.com">https://j832.com</a></div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="441fe70f4b5e"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/441fe70f4b5e" data-action-source="collection_writer_card-441fe70f4b5e"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="5d35ab1fce7d"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@justinjmcc?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="5d35ab1fce7d" data-action-type="hover" data-user-id="5d35ab1fce7d" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*6L6xLJHqC5vlGBrTFHc6xg.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Justin McCandless"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@justinjmcc?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="5d35ab1fce7d" data-action-type="hover" data-user-id="5d35ab1fce7d" dir="auto">Justin McCandless</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Software engineer in San Francisco contributing to Flutter.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="5d35ab1fce7d"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/5d35ab1fce7d" data-action-source="collection_writer_card-5d35ab1fce7d"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="40a15fe2c58f"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@clocksmith?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="40a15fe2c58f" data-action-type="hover" data-user-id="40a15fe2c58f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*fcJn7cFYnwInCzoug_PoDA.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Anthony Robledo"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@clocksmith?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="40a15fe2c58f" data-action-type="hover" data-user-id="40a15fe2c58f" dir="auto">Anthony Robledo</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">4 * (1 - 1/3 + 1/5 - 1/7 + 1/9 -1/11 + 1/13 - 1/15 + 1/17 - 1/19 + 1/21 - 1/23 + 1/25 - 1/27 + 1/29 - 1/31 + 1/33 - 1/35 + 1/37 - 1/39 + 1/41 -1/43 + ... )</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="40a15fe2c58f"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/40a15fe2c58f" data-action-source="collection_writer_card-40a15fe2c58f"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="b25029b54709"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@taodong?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="b25029b54709" data-action-type="hover" data-user-id="b25029b54709" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*jbYlQ-K9Yh-HVUBp.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of Tao Dong"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@taodong?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="b25029b54709" data-action-type="hover" data-user-id="b25029b54709" dir="auto">Tao Dong</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">UX Lead at Google, transforming how developers build GUI with Flutter. Personal website: <a rel="nofollow" href="https://www.taodong.net/">https://www.taodong.net/</a>.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="b25029b54709"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/b25029b54709" data-action-source="collection_writer_card-b25029b54709"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="a0552d713018"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@yanchenum?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a0552d713018" data-action-type="hover" data-user-id="a0552d713018" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*PSrFnoWOMMa0YZUM.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of Yan Chen"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@yanchenum?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a0552d713018" data-action-type="hover" data-user-id="a0552d713018" dir="auto">Yan Chen</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">A learner</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="a0552d713018"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/a0552d713018" data-action-source="collection_writer_card-a0552d713018"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="95debe19f9f3"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@kf6gpe?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="95debe19f9f3" data-action-type="hover" data-user-id="95debe19f9f3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/2*stkoPD1JQ5tooR-s76YSmw.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Ray Rischpater, KF6GPE"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@kf6gpe?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="95debe19f9f3" data-action-type="hover" data-user-id="95debe19f9f3" dir="auto">Ray Rischpater, KF6GPE</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">I'm a software engineer, writer, husband, father, Quaker, and ham radio operator. Presently employed by Google as a TPM for Flutter.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="95debe19f9f3"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/95debe19f9f3" data-action-source="collection_writer_card-95debe19f9f3"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="fb2878892151"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@mariam.hasnany?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="fb2878892151" data-action-type="hover" data-user-id="fb2878892151" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*TDttyOKULZENb7QG-0Wl3w.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Mariam Hasnany"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@mariam.hasnany?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="fb2878892151" data-action-type="hover" data-user-id="fb2878892151" dir="auto">Mariam Hasnany</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">product manager <a href="http://twitter.com/Google" target="_blank" title="Twitter profile for @Google">@Google</a> #flutter |👩🏾🎓 UVA ’13 | 📚currently reading Fair Play by Eve Rodsky</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="fb2878892151"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/fb2878892151" data-action-source="collection_writer_card-fb2878892151"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="a8e501ba3326"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@josealba199675?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a8e501ba3326" data-action-type="hover" data-user-id="a8e501ba3326" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*hPHb0U1EVsdSI-ZK" class="avatar-image avatar-image--small" alt="Go to the profile of Jose Alba"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@josealba199675?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a8e501ba3326" data-action-type="hover" data-user-id="a8e501ba3326" dir="auto">Jose Alba</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Recently graduated from university and now works on maintaining the Flutter Material Library.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="a8e501ba3326"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/a8e501ba3326" data-action-source="collection_writer_card-a8e501ba3326"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="4cad326de3d7"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@perclasson?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="4cad326de3d7" data-action-type="hover" data-user-id="4cad326de3d7" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/2*d-UpSVU0saEV2On5JBvYaQ.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Per Classon"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@perclasson?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="4cad326de3d7" data-action-type="hover" data-user-id="4cad326de3d7" dir="auto">Per Classon</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Software Engineer 👨🏼💻</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="4cad326de3d7"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/4cad326de3d7" data-action-source="collection_writer_card-4cad326de3d7"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="6410de8e01c6"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@zoeyfan_43394?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="6410de8e01c6" data-action-type="hover" data-user-id="6410de8e01c6" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/2*Cl8MkXie_Fr91CEmLGzQtw.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Zoey Fan"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@zoeyfan_43394?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="6410de8e01c6" data-action-type="hover" data-user-id="6410de8e01c6" dir="auto">Zoey Fan</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Senior Product Manager for Flutter, Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="6410de8e01c6"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/6410de8e01c6" data-action-source="collection_writer_card-6410de8e01c6"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="1964dae92713"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@ktjlee?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="1964dae92713" data-action-type="hover" data-user-id="1964dae92713" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*vRMW7uCsV7VsqqC6dIghNA.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Katie Lee"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@ktjlee?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="1964dae92713" data-action-type="hover" data-user-id="1964dae92713" dir="auto">Katie Lee</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">DA intern on the Flutter team</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="1964dae92713"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/1964dae92713" data-action-source="collection_writer_card-1964dae92713"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="e3bf847b45be"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@guidez?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="e3bf847b45be" data-action-type="hover" data-user-id="e3bf847b45be" dir="auto"><img src="https://cdn-images-1.medium.com/proxy/1*dmbNkD5D-u45r44go_cf0g.png" class="avatar-image avatar-image--small" alt="Go to the profile of Pierre-Louis Guidez"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@guidez?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="e3bf847b45be" data-action-type="hover" data-user-id="e3bf847b45be" dir="auto">Pierre-Louis Guidez</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Software engineer</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="e3bf847b45be"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/e3bf847b45be" data-action-source="collection_writer_card-e3bf847b45be"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="d003e69419cc"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@ryjohn_16185?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d003e69419cc" data-action-type="hover" data-user-id="d003e69419cc" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*YVG3ScT4FfHbabkM" class="avatar-image avatar-image--small" alt="Go to the profile of John Ryan"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@ryjohn_16185?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d003e69419cc" data-action-type="hover" data-user-id="d003e69419cc" dir="auto">John Ryan</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="d003e69419cc"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/d003e69419cc" data-action-source="collection_writer_card-d003e69419cc"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="e1ef2db635a3"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@tianguang?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="e1ef2db635a3" data-action-type="hover" data-user-id="e1ef2db635a3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*xV6b-152TcEMSjUr" class="avatar-image avatar-image--small" alt="Go to the profile of Tianguang Zhang"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@tianguang?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="e1ef2db635a3" data-action-type="hover" data-user-id="e1ef2db635a3" dir="auto">Tianguang Zhang</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="e1ef2db635a3"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/e1ef2db635a3" data-action-source="collection_writer_card-e1ef2db635a3"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="af756e7eb6ac"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@haddadniaj?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="af756e7eb6ac" data-action-type="hover" data-user-id="af756e7eb6ac" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*gNIf0pPqSsP1oOcM" class="avatar-image avatar-image--small" alt="Go to the profile of Justin Haddadnia"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@haddadniaj?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="af756e7eb6ac" data-action-type="hover" data-user-id="af756e7eb6ac" dir="auto">Justin Haddadnia</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="af756e7eb6ac"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/af756e7eb6ac" data-action-source="collection_writer_card-af756e7eb6ac"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="df52ddf23910"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@andremobilelabonte?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="df52ddf23910" data-action-type="hover" data-user-id="df52ddf23910" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*MWQEEWaslbr-PNFW" class="avatar-image avatar-image--small" alt="Go to the profile of André Labonté"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@andremobilelabonte?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="df52ddf23910" data-action-type="hover" data-user-id="df52ddf23910" dir="auto">André Labonté</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Product Manager — Material Design</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="df52ddf23910"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/df52ddf23910" data-action-source="collection_writer_card-df52ddf23910"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="d2b5932b85ed"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@katelovett?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d2b5932b85ed" data-action-type="hover" data-user-id="d2b5932b85ed" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*0yA7OjxKWthRwjK2.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of Kate Lovett"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@katelovett?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d2b5932b85ed" data-action-type="hover" data-user-id="d2b5932b85ed" dir="auto">Kate Lovett</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="d2b5932b85ed"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/d2b5932b85ed" data-action-source="collection_writer_card-d2b5932b85ed"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="7d3adf840bf0"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@nikkitagandhi?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7d3adf840bf0" data-action-type="hover" data-user-id="7d3adf840bf0" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/2*G__H_oe3299HvlPy7YkpKg.png" class="avatar-image avatar-image--small" alt="Go to the profile of Nikita Gandhi"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@nikkitagandhi?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7d3adf840bf0" data-action-type="hover" data-user-id="7d3adf840bf0" dir="auto">Nikita Gandhi</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Community Manager at Google For Developers, Flutter Enthusiast, Avid Writer, Apathetic at Social Gatherings! Can make round dosas!</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="7d3adf840bf0"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/7d3adf840bf0" data-action-source="collection_writer_card-7d3adf840bf0"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="73a5d73f751e"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@JayDChang?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="73a5d73f751e" data-action-type="hover" data-user-id="73a5d73f751e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*9D8dvL1B2-hjr-btP6fYIg.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Jay Chang"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@JayDChang?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="73a5d73f751e" data-action-type="hover" data-user-id="73a5d73f751e" dir="auto">Jay Chang</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Developer Product Marketer <a href="http://twitter.com/Google" target="_blank" title="Twitter profile for @Google">@Google</a> for <a href="http://twitter.com/Flutter" target="_blank" title="Twitter profile for @Flutter">@Flutter</a> moonlighting Foodie, Chef, & Instagrammer <a href="http://twitter.com/BehindTheKnife" target="_blank" title="Twitter profile for @BehindTheKnife">@BehindTheKnife</a> on IG</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="73a5d73f751e"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/73a5d73f751e" data-action-source="collection_writer_card-73a5d73f751e"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="d31b31424478"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@gskinner?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d31b31424478" data-action-type="hover" data-user-id="d31b31424478" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*QrcTxiCCIAj38rUnnPTryg.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Grant Skinner"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@gskinner?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d31b31424478" data-action-type="hover" data-user-id="d31b31424478" dir="auto">Grant Skinner</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">I run gskinner (gskinner.com), a nimble team of designers, developers, and strategic thinkers building innovative digital solutions for smart clients.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="d31b31424478"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/d31b31424478" data-action-source="collection_writer_card-d31b31424478"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="bd78eebef416"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@felangelov?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="bd78eebef416" data-action-type="hover" data-user-id="bd78eebef416" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*lcR8NNnnKzOS6Ma-VJJTCQ.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Felix Angelov"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@felangelov?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="bd78eebef416" data-action-type="hover" data-user-id="bd78eebef416" dir="auto">Felix Angelov</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Principal Engineer at Very Good Ventures (<a rel="nofollow" href="https://verygood.ventures">https://verygood.ventures</a>) and creator of the bloc library (<a rel="nofollow" href="https://github.com/felangel">https://github.com/felangel</a>)</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="bd78eebef416"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/bd78eebef416" data-action-source="collection_writer_card-bd78eebef416"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="7781c543301e"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@vgv_team?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7781c543301e" data-action-type="hover" data-user-id="7781c543301e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*XUX_mTFnhm4BKyT9q9sOUQ.png" class="avatar-image avatar-image--small" alt="Go to the profile of Very Good Ventures Team"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@vgv_team?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7781c543301e" data-action-type="hover" data-user-id="7781c543301e" dir="auto">Very Good Ventures Team</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Team at Very Good Ventures (<a rel="nofollow" href="https://verygood.ventures">https://verygood.ventures</a>), a leading Flutter app development consultancy.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="7781c543301e"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/7781c543301e" data-action-source="collection_writer_card-7781c543301e"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="b8f2d7406660"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@gaaclarke?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="b8f2d7406660" data-action-type="hover" data-user-id="b8f2d7406660" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*ALqtMy61v8ANAVWO" class="avatar-image avatar-image--small" alt="Go to the profile of Aaron Clarke"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@gaaclarke?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="b8f2d7406660" data-action-type="hover" data-user-id="b8f2d7406660" dir="auto">Aaron Clarke</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Currently a developer at Google, working on Flutter. A lover of all things software.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="b8f2d7406660"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/b8f2d7406660" data-action-source="collection_writer_card-b8f2d7406660"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="dac0918655bd"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@jensj_41626?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="dac0918655bd" data-action-type="hover" data-user-id="dac0918655bd" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Qp4aTK0f2iGxt-UF" class="avatar-image avatar-image--small" alt="Go to the profile of Jens Johansen"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@jensj_41626?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="dac0918655bd" data-action-type="hover" data-user-id="dac0918655bd" dir="auto">Jens Johansen</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="dac0918655bd"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/dac0918655bd" data-action-source="collection_writer_card-dac0918655bd"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="3d95ff22deb"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@ptruiz?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3d95ff22deb" data-action-type="hover" data-user-id="3d95ff22deb" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*CWReIG9XfZJ-sLKco8j3_Q.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Paul Ruiz"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@ptruiz?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3d95ff22deb" data-action-type="hover" data-user-id="3d95ff22deb" dir="auto">Paul Ruiz</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Developer Programs Engineer on Android, Maker, <a href="http://twitter.com/ptruiz_dev" target="_blank" title="Twitter profile for @ptruiz_dev">@ptruiz_dev</a></div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="3d95ff22deb"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/3d95ff22deb" data-action-source="collection_writer_card-3d95ff22deb"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="4363d1f1a699"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@sarahcreates?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="4363d1f1a699" data-action-type="hover" data-user-id="4363d1f1a699" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*i3-fA3puQlox9Ao4.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of Sarah Fullmer"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@sarahcreates?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="4363d1f1a699" data-action-type="hover" data-user-id="4363d1f1a699" dir="auto">Sarah Fullmer</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="4363d1f1a699"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/4363d1f1a699" data-action-source="collection_writer_card-4363d1f1a699"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="aa31f520c7ec"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@kkboateng?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="aa31f520c7ec" data-action-type="hover" data-user-id="aa31f520c7ec" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*IxpUINuAJhraX2My" class="avatar-image avatar-image--small" alt="Go to the profile of Kelvin Boateng"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@kkboateng?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="aa31f520c7ec" data-action-type="hover" data-user-id="aa31f520c7ec" dir="auto">Kelvin Boateng</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="aa31f520c7ec"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/aa31f520c7ec" data-action-source="collection_writer_card-aa31f520c7ec"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="c3acb989164e"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@brianwilkerson_17142?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="c3acb989164e" data-action-type="hover" data-user-id="c3acb989164e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Ik7T-bL3XGejpghf" class="avatar-image avatar-image--small" alt="Go to the profile of Brian Wilkerson"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@brianwilkerson_17142?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="c3acb989164e" data-action-type="hover" data-user-id="c3acb989164e" dir="auto">Brian Wilkerson</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="c3acb989164e"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/c3acb989164e" data-action-source="collection_writer_card-c3acb989164e"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="1d07d30c7b26"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@flutter.devrel?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="1d07d30c7b26" data-action-type="hover" data-user-id="1d07d30c7b26" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*dmbNkD5D-u45r44go_cf0g.png" class="avatar-image avatar-image--small" alt="Go to the profile of Flutter Devrel Medium"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@flutter.devrel?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="1d07d30c7b26" data-action-type="hover" data-user-id="1d07d30c7b26" dir="auto">Flutter Devrel Medium</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="1d07d30c7b26"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/1d07d30c7b26" data-action-source="collection_writer_card-1d07d30c7b26"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="7cb43f46877f"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@kevinchisholm?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7cb43f46877f" data-action-type="hover" data-user-id="7cb43f46877f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*HEfsynQuQpVrGR-qdGeSvg.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Kevin Chisholm"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@kevinchisholm?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7cb43f46877f" data-action-type="hover" data-user-id="7cb43f46877f" dir="auto">Kevin Chisholm</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Kevin Chisholm is a Technical Program Manager for Dart and Flutter at Google.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="7cb43f46877f"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/7cb43f46877f" data-action-source="collection_writer_card-7cb43f46877f"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="d5910eaf0610"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@rich_hall?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d5910eaf0610" data-action-type="hover" data-user-id="d5910eaf0610" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*w7Y-bThACd0V1YJ6N7QePg.png" class="avatar-image avatar-image--small" alt="Go to the profile of Rich Hall"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@rich_hall?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="d5910eaf0610" data-action-type="hover" data-user-id="d5910eaf0610" dir="auto">Rich Hall</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Search Ecosystem Consultant at Google and part time Flutter fanboy.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="d5910eaf0610"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/d5910eaf0610" data-action-source="collection_writer_card-d5910eaf0610"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="2cc8312247c8"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@melyndahoover?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="2cc8312247c8" data-action-type="hover" data-user-id="2cc8312247c8" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*NC_dwnZV11nnMuK4D0mXYA.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Mindy Hoover"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@melyndahoover?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="2cc8312247c8" data-action-type="hover" data-user-id="2cc8312247c8" dir="auto">Mindy Hoover</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">I'm a UX researcher at Google working on improving the developer experience with Flutter</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="2cc8312247c8"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/2cc8312247c8" data-action-source="collection_writer_card-2cc8312247c8"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="a3e1c6322f4b"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@hellobrianjames?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a3e1c6322f4b" data-action-type="hover" data-user-id="a3e1c6322f4b" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*EAeJ6vonuQM5daZCF9CfeQ.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Brian James"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@hellobrianjames?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="a3e1c6322f4b" data-action-type="hover" data-user-id="a3e1c6322f4b" dir="auto">Brian James</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">UX Engineer at Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="a3e1c6322f4b"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/a3e1c6322f4b" data-action-source="collection_writer_card-a3e1c6322f4b"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="152f70c4da53"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@eilidhsouthren?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="152f70c4da53" data-action-type="hover" data-user-id="152f70c4da53" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*X-6ifCWQoKYCZ-uLGdPa4w.png" class="avatar-image avatar-image--small" alt="Go to the profile of Eilidh Southren"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@eilidhsouthren?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="152f70c4da53" data-action-type="hover" data-user-id="152f70c4da53" dir="auto">Eilidh Southren</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Enterprise Engineer @ FlutterFlow</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="152f70c4da53"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/152f70c4da53" data-action-source="collection_writer_card-152f70c4da53"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="95af327120b4"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@timothyhoang?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="95af327120b4" data-action-type="hover" data-user-id="95af327120b4" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*krC2R3xE1FCZTdIbXQDT_A.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Timothy Hoang"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@timothyhoang?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="95af327120b4" data-action-type="hover" data-user-id="95af327120b4" dir="auto">Timothy Hoang</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Product Manager @ Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="95af327120b4"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/95af327120b4" data-action-source="collection_writer_card-95af327120b4"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="3572a6e59bfe"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@jjmutter?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3572a6e59bfe" data-action-type="hover" data-user-id="3572a6e59bfe" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*yJ9UamxmYZ_VwVDeM4mDzA.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of John Mutter"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@jjmutter?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3572a6e59bfe" data-action-type="hover" data-user-id="3572a6e59bfe" dir="auto">John Mutter</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">John Mutter is the Global Chief Technology Officer of the IBM Experience, Design, and Mobile practice, and a Distinguished Engineer.</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="3572a6e59bfe"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/3572a6e59bfe" data-action-source="collection_writer_card-3572a6e59bfe"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="2df4e577749c"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@flutterblog?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="2df4e577749c" data-action-type="hover" data-user-id="2df4e577749c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*NDwANf5EtonxPpWVGXyt7Q.png" class="avatar-image avatar-image--small" alt="Go to the profile of Flutter Blog Admin"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@flutterblog?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="2df4e577749c" data-action-type="hover" data-user-id="2df4e577749c" dir="auto">Flutter Blog Admin</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="2df4e577749c"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/2df4e577749c" data-action-source="collection_writer_card-2df4e577749c"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="f5af3936c0b2"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@anderdobo?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="f5af3936c0b2" data-action-type="hover" data-user-id="f5af3936c0b2" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*9QBbBTP_oiuZGZf0I49AKA.png" class="avatar-image avatar-image--small" alt="Go to the profile of Ander Dobo"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@anderdobo?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="f5af3936c0b2" data-action-type="hover" data-user-id="f5af3936c0b2" dir="auto">Ander Dobo</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Global Product Manager | work on Flutter ( a UI framework for building cross-platform apps from a single codebase) at Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="f5af3936c0b2"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/f5af3936c0b2" data-action-source="collection_writer_card-f5af3936c0b2"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="7014d6220229"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@craiglabenz_78472?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7014d6220229" data-action-type="hover" data-user-id="7014d6220229" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*xu-sgiT2AZrrzBVu1oYnoQ.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Craig Labenz"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@craiglabenz_78472?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="7014d6220229" data-action-type="hover" data-user-id="7014d6220229" dir="auto">Craig Labenz</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Developer Relations Engineer on the Flutter team @ Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="7014d6220229"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/7014d6220229" data-action-source="collection_writer_card-7014d6220229"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="1d4a75f10b0c"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@ivan_63194?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="1d4a75f10b0c" data-action-type="hover" data-user-id="1d4a75f10b0c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*SQ_vs0LMPjY6ejrP" class="avatar-image avatar-image--small" alt="Go to the profile of Ivan Leider"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@ivan_63194?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="1d4a75f10b0c" data-action-type="hover" data-user-id="1d4a75f10b0c" dir="auto">Ivan Leider</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="1d4a75f10b0c"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/1d4a75f10b0c" data-action-source="collection_writer_card-1d4a75f10b0c"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="2534f4e317f3"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@brandonbadger?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="2534f4e317f3" data-action-type="hover" data-user-id="2534f4e317f3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*nFmOI6gpDMxUgSzNIZ19Kg.png" class="avatar-image avatar-image--small" alt="Go to the profile of Brandon Badger"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@brandonbadger?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="2534f4e317f3" data-action-type="hover" data-user-id="2534f4e317f3" dir="auto">Brandon Badger</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Product Director for Google Frameworks and Languages (Flutter, Dart, Go)</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="2534f4e317f3"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/2534f4e317f3" data-action-source="collection_writer_card-2534f4e317f3"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="823e7bc94cd0"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@tomayac?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="823e7bc94cd0" data-action-type="hover" data-user-id="823e7bc94cd0" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*5Yq8VeVDQqM51HKi50phdg.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of Thomas Steiner"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@tomayac?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="823e7bc94cd0" data-action-type="hover" data-user-id="823e7bc94cd0" dir="auto">Thomas Steiner</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Web Developer Advocate at Google</div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="823e7bc94cd0"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/823e7bc94cd0" data-action-source="collection_writer_card-823e7bc94cd0"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="5c92734251c4"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@mhclin113_26002?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="5c92734251c4" data-action-type="hover" data-user-id="5c92734251c4" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/1*WKhF9u7jo7OkE26I5PjGiw.png" class="avatar-image avatar-image--small" alt="Go to the profile of Cheng Lin"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@mhclin113_26002?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="5c92734251c4" data-action-type="hover" data-user-id="5c92734251c4" dir="auto">Cheng Lin</a><div class="infoCard-bio u-fontSize14 u-textColorNormal">Dual Product Manager at Flutter, Google & Video Solutions Consultant at gTech Ads, Google. Twitter: <a rel="nofollow" href="https://x.com/chenglinlim">https://x.com/chenglinlim</a></div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="5c92734251c4"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/5c92734251c4" data-action-source="collection_writer_card-5c92734251c4"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="9a1282e0b0ee"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@algebrandon?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="9a1282e0b0ee" data-action-type="hover" data-user-id="9a1282e0b0ee" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*Jzj4ct7CmcvOiR3g." class="avatar-image avatar-image--small" alt="Go to the profile of Brandon DeRosier"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@algebrandon?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="9a1282e0b0ee" data-action-type="hover" data-user-id="9a1282e0b0ee" dir="auto">Brandon DeRosier</a><div class="infoCard-bio u-fontSize14 u-textColorNormal"><a rel="nofollow" href="https://twitter.com/algebrandon">https://twitter.com/algebrandon</a> <a rel="nofollow" href="https://github.com/bdero">https://github.com/bdero</a></div></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="9a1282e0b0ee"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/9a1282e0b0ee" data-action-source="collection_writer_card-9a1282e0b0ee"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div><div class="infoCard u-clearfix js-infoCardUser infoCard--padded" data-user-id="3a7a2a067927"><div class="infoCard-avatar"><a class="link u-baseColor--link avatar" href="https://medium.com/@tvolkert?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3a7a2a067927" data-action-type="hover" data-user-id="3a7a2a067927" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*EUSBYlBzvqL9j_Xr." class="avatar-image avatar-image--small" alt="Go to the profile of Todd Volkert"></a></div><div class="infoCard-info"><div class="infoCard-wrapper"><a class="link link--primary link--accent u-accentColor--textNormal u-accentColor--hoverTextNormal" href="https://medium.com/@tvolkert?source=collection_writer_card" data-action="show-user-card" data-action-source="collection_writer_card" data-action-value="3a7a2a067927" data-action-type="hover" data-user-id="3a7a2a067927" dir="auto">Todd Volkert</a></div></div><div class="infoCard-actions u-floatRight u-xs-floatLeft"><span class="followState js-followState" data-user-id="3a7a2a067927"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/flutter/about" data-action-source="collection_writer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" title="Follow to get new stories and recommendations from this author" aria-label="Follow to get new stories and recommendations from this author" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/3a7a2a067927" data-action-source="collection_writer_card-3a7a2a067927"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div></div></div></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #498BD1 !important;} .u-accentColor--borderNormal {border-color: #498BD1 !important;} .u-accentColor--borderDark {border-color: #4477AF !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #498BD1 !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #498BD1 !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #4477AF !important;} .u-accentColor--textNormal {color: #4477AF !important;} .u-accentColor--hoverTextNormal:hover {color: #4477AF !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #416D9E !important;} .u-accentColor--textDark {color: #416D9E !important;} .u-accentColor--backgroundLight {background-color: #498BD1 !important;} .u-accentColor--backgroundNormal {background-color: #498BD1 !important;} .u-accentColor--backgroundDark {background-color: #4477AF !important;} .u-accentColor--buttonDark {border-color: #4477AF !important; color: #416D9E !important;} .u-accentColor--buttonDark:hover {border-color: #416D9E !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #4477AF !important; fill: #4477AF !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #498BD1 !important; color: #4477AF !important;} .u-accentColor--buttonNormal:hover {border-color: #4477AF !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #498BD1 !important; fill: #498BD1 !important;} .u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #4477AF !important; border-color: #4477AF !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #498BD1 !important; border-color: #498BD1 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #4477AF !important;}.u-tintBgColor {background-color: rgba(1, 87, 155, 1) !important;}.u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(1, 87, 155, 1) 0%, rgba(1, 87, 155, 0) 100%) !important;}.u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(1, 87, 155, 0) 0%, rgba(1, 87, 155, 1) 100%) !important;} .u-tintSpectrum .u-baseColor--borderLight {border-color: #92B4DC !important;} .u-tintSpectrum .u-baseColor--borderNormal {border-color: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--borderDark {border-color: #E3F2FF !important;} .u-tintSpectrum .u-baseColor--iconLight .svgIcon,.u-tintSpectrum .u-baseColor--iconLight.svgIcon {fill: #92B4DC !important;} .u-tintSpectrum .u-baseColor--iconNormal .svgIcon,.u-tintSpectrum .u-baseColor--iconNormal.svgIcon {fill: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--iconDark .svgIcon,.u-tintSpectrum .u-baseColor--iconDark.svgIcon {fill: #E3F2FF !important;} .u-tintSpectrum .u-baseColor--textNormal {color: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--textDark {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--textDarker {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--backgroundLight {background-color: #92B4DC !important;} .u-tintSpectrum .u-baseColor--backgroundNormal {background-color: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--backgroundDark {background-color: #E3F2FF !important;} .u-tintSpectrum .u-baseColor--buttonLight {border-color: #92B4DC !important; color: #92B4DC !important;} .u-tintSpectrum .u-baseColor--buttonLight:hover {border-color: #92B4DC !important;} .u-tintSpectrum .u-baseColor--buttonLight .icon:before,.u-tintSpectrum .u-baseColor--buttonLight .svgIcon {color: #92B4DC !important; fill: #92B4DC !important;} .u-tintSpectrum .u-baseColor--buttonDark {border-color: #E3F2FF !important; color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark:hover {border-color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark .icon:before,.u-tintSpectrum .u-baseColor--buttonDark .svgIcon {color: #E3F2FF !important; fill: #E3F2FF !important;} .u-tintSpectrum .u-baseColor--buttonNormal {border-color: #BCD3F1 !important; color: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--buttonNormal:hover {border-color: #E3F2FF !important;} .u-tintSpectrum .u-baseColor--buttonNormal .icon:before,.u-tintSpectrum .u-baseColor--buttonNormal .svgIcon {color: #BCD3F1 !important; fill: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--buttonDark.button--filled,.u-tintSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: #E3F2FF !important; border-color: #E3F2FF !important; color: rgba(1, 87, 155, 1) !important; fill: rgba(1, 87, 155, 1) !important;} .u-tintSpectrum .u-baseColor--buttonNormal.button--filled,.u-tintSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: #BCD3F1 !important; border-color: #BCD3F1 !important; color: rgba(1, 87, 155, 1) !important; fill: rgba(1, 87, 155, 1) !important;} .u-tintSpectrum .u-baseColor--link {color: #BCD3F1 !important;} .u-tintSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--darken:active {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:active {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darker {color: #F7FFFF !important;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: #92B4DC;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: #92B4DC;} .u-tintSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: #92B4DC;} .u-tintSpectrum .ui-h1,.u-tintSpectrum .ui-h2,.u-tintSpectrum .ui-h3,.u-tintSpectrum .ui-h4,.u-tintSpectrum .ui-brand1,.u-tintSpectrum .ui-brand2,.u-tintSpectrum .ui-captionStrong {color: #F7FFFF !important; fill: #F7FFFF !important;} .u-tintSpectrum .ui-body,.u-tintSpectrum .ui-caps {color: #F7FFFF !important; fill: #F7FFFF !important;} .u-tintSpectrum .ui-summary,.u-tintSpectrum .ui-caption {color: #92B4DC !important; fill: #92B4DC !important;} .u-tintSpectrum .u-accentColor--borderLight {border-color: #92B4DC !important;} .u-tintSpectrum .u-accentColor--borderNormal {border-color: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--borderDark {border-color: #E3F2FF !important;} .u-tintSpectrum .u-accentColor--iconLight .svgIcon,.u-tintSpectrum .u-accentColor--iconLight.svgIcon {fill: #92B4DC !important;} .u-tintSpectrum .u-accentColor--iconNormal .svgIcon,.u-tintSpectrum .u-accentColor--iconNormal.svgIcon {fill: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--iconDark .svgIcon,.u-tintSpectrum .u-accentColor--iconDark.svgIcon {fill: #E3F2FF !important;} .u-tintSpectrum .u-accentColor--textNormal {color: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--hoverTextNormal:hover {color: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #F7FFFF !important;} .u-tintSpectrum .u-accentColor--textDark {color: #F7FFFF !important;} .u-tintSpectrum .u-accentColor--backgroundLight {background-color: #92B4DC !important;} .u-tintSpectrum .u-accentColor--backgroundNormal {background-color: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--backgroundDark {background-color: #E3F2FF !important;} .u-tintSpectrum .u-accentColor--buttonDark {border-color: #E3F2FF !important; color: #F7FFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark:hover {border-color: #F7FFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark .icon:before,.u-tintSpectrum .u-accentColor--buttonDark .svgIcon{color: #E3F2FF !important; fill: #E3F2FF !important;} .u-tintSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #BCD3F1 !important; color: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--buttonNormal:hover {border-color: #E3F2FF !important;} .u-tintSpectrum .u-accentColor--buttonNormal .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal .svgIcon{color: #BCD3F1 !important; fill: #BCD3F1 !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(1, 87, 155, 1) !important; fill: rgba(1, 87, 155, 1) !important;} .u-tintSpectrum .u-accentColor--buttonDark.button--filled,.u-tintSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-tintSpectrum .u-accentColor--fillWhenActive.is-active {background-color: #E3F2FF !important; border-color: #E3F2FF !important; color: rgba(1, 87, 155, 1) !important; fill: rgba(1, 87, 155, 1) !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-tintSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #BCD3F1 !important; border-color: #BCD3F1 !important; color: rgba(1, 87, 155, 1) !important; fill: rgba(1, 87, 155, 1) !important;} .u-tintSpectrum .postArticle.is-withAccentColors .markup--user,.u-tintSpectrum .postArticle.is-withAccentColors .markup--query {color: #BCD3F1 !important;} .u-accentColor--highlightFaint {background-color: rgba(227, 243, 255, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(182, 230, 255, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(227, 243, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(227, 243, 255, 1), rgba(227, 243, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(203, 236, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(203, 236, 255, 1), rgba(203, 236, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(182, 230, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(182, 230, 255, 1), rgba(182, 230, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(182, 230, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(182, 230, 255, 1), rgba(182, 230, 255, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(182, 230, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(182, 230, 255, 1), rgba(182, 230, 255, 1));}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);} .u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .ui-h1,.u-imageSpectrum .ui-h2,.u-imageSpectrum .ui-h3,.u-imageSpectrum .ui-h4,.u-imageSpectrum .ui-brand1,.u-imageSpectrum .ui-brand2,.u-imageSpectrum .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-body,.u-imageSpectrum .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-summary,.u-imageSpectrum .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;} .u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;} .u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;} .u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;} .u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .ui-h1,.u-resetSpectrum .ui-h2,.u-resetSpectrum .ui-h3,.u-resetSpectrum .ui-h4,.u-resetSpectrum .ui-brand1,.u-resetSpectrum .ui-brand2,.u-resetSpectrum .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .ui-body,.u-resetSpectrum .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-summary,.u-resetSpectrum .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style></div></div></div><div class="loadingBar"></div><script>// <![CDATA[ window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;} // ]]></script><script>// <![CDATA[ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","buildLabel":"20241126-1740-root","currentUser":{"userId":"lo_7df5646346b8","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.zqOu8dxaQRtqDyChHdOWlQ.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.y0UkxCxPBUbLlduk5XbwLQ.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.eZhPgaD8AglnbC5Rzxqvhg.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.XeRjm4FlHTBOsUvoOQ6Ppg.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.r9MSvtAmj0CMkyIC0CCCbA.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.AiXyuYj3AvxRA1-7HEyP9Q.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.fsLyLvZO4VZXL_zb4RXgeg.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.6Dyc-nVN2MDV_AM9XDAZug.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.rUyrVjlTpUj61voxnZosQw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.2I2tXSo7-rbez_WYXfga0Q.12.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1732713791893:d634365255f7","useragent":{"browser":"ie","family":"ie","os":"windows","version":7,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"disable_partner_program_enrollment":true,"enable_abandoned_cart_promotion_email":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_bayesian_average_pub_search":true,"enable_bg_post_post":true,"enable_billing_frequency_on_step2":"control","enable_boost_nia_v01":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_cache_less_following_feed":true,"enable_configure_pronouns":true,"enable_conversion_model_v2":"group_2","enable_conversion_ranker_v2":"control","enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_diversification_rex":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_explicit_signals":true,"enable_explicit_signals_updated_post_previews":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_iceland_forced_android":true,"enable_import":true,"enable_intrinsic_automatic_actions":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lo_homepage":"control","enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_all_recs_surfaces":true,"enable_moc_load_processor_c":true,"enable_moc_load_processor_first_story":true,"enable_new_manage_membership_flow":true,"enable_new_stripe_customers":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_post_bottom_responses":true,"enable_post_bottom_responses_input":true,"enable_pp_country_expansion":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_publication_hierarchy_web":true,"enable_ranker_v10":"control","enable_recaptcha_enterprise":true,"enable_recirc_model":true,"enable_recommended_publishers_query":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_see_pronouns":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_update_explore_wtf":true,"enable_update_topic_portals_wtf":true,"enable_updated_pub_recs_ui":true,"enable_verifications_service":true,"glyph_font_set":"m2-unbound-source-serif-pro","goliath_externalsearch_enable_comment_deindexation":true,"ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"mobile_custom_app_icon":true,"num_post_bottom_responses_to_show":"1","onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","faviconImageId":"5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"SG","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"User":{"a6d788faa5e5":{"userId":"a6d788faa5e5","name":"Michael Thomsen","username":"mit.mit","createdAt":1481367237471,"imageId":"0*Y_CFLc1qadgr3tPK.","backgroundImageId":"","bio":"Product Manager working on Dart and Flutter. Helping developers is my passion!","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,12,8,5,21,30,2,18,1,17,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-dk","type":"User"},"26a19a14addb":{"userId":"26a19a14addb","name":"Andrew Brogdon","username":"redbrogdon","createdAt":1515443572046,"imageId":"0*UfXdwppirgDYRNaj.","backgroundImageId":"","bio":"Engineer at Google, currently cranking out code for the Flutter developer relations team.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,46,12,2,10],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"dfd5de850c70":{"userId":"dfd5de850c70","name":"Brett Morgan","username":"domesticmouse","createdAt":1369245596715,"imageId":"0*R7VUzyb9_HQm9afP.jpg","backgroundImageId":"","bio":"I am a developer relations engineer for Google’s Flutter and Dart programming language.","twitterScreenName":"DomesticMouse","allowNotes":1,"mediumMemberAt":1510687953506,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Brett Morgan","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,47,29,12,8,5,21,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"6b9d8506b756":{"userId":"6b9d8506b756","name":"Jane Doe","username":"npcteam2021","createdAt":1639615878225,"imageId":"0*Uol4BSSNgjkV_29i","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,46,21,29,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"35da22255b65":{"userId":"35da22255b65","name":"Stefanie Luo","username":"stefl_96362","createdAt":1665088402979,"imageId":"0*bvZP3-WXR76-u7lG","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2,29,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"68e9dc5e47d5":{"userId":"68e9dc5e47d5","name":"Anthony Sansone","username":"atsansone","createdAt":1661376075059,"imageId":"0*NZQx_Sj47YNmnPcq","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,21,19,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"2df4e577749c":{"userId":"2df4e577749c","name":"Flutter Blog Admin","username":"flutterblog","createdAt":1693586351386,"imageId":"1*NDwANf5EtonxPpWVGXyt7Q.png","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"4631513e40c0":{"userId":"4631513e40c0","name":"Shams Zakhour","username":"shaza","createdAt":1460740431192,"imageId":"0*LHz-9FgHd3doKgCM.","backgroundImageId":"","bio":"I write Flutter docs.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,12,8,5,3,2,18,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"ae996dbdd76e":{"userId":"ae996dbdd76e","name":"Marya Belanger","username":"mbelanger_65682","createdAt":1661376028922,"imageId":"1*dvfKkfTnezv7BhXgB51pGA.png","backgroundImageId":"","bio":"Technical Writer for Dart","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,29,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"aa31f520c7ec":{"userId":"aa31f520c7ec","name":"Kelvin Boateng","username":"kkboateng","createdAt":1633039287566,"imageId":"0*IxpUINuAJhraX2My","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,46,29,8,21,2,18,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"3df949742a3b":{"userId":"3df949742a3b","name":"xster","username":"xster","createdAt":1345643775015,"imageId":"1*h_lwkzhaAtW5WTkM750_Xw.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"xsterx","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"883356bdfc50":{"userId":"883356bdfc50","name":"Luke Freeman","username":"lukeaf","createdAt":1385584026078,"imageId":"1*osRrOD-rpUZlVPFwpn2_GQ.png","backgroundImageId":"","bio":"Maker of software and hardware. Cranky Australian. Founder @ Yakka (https://theyakka.com).","twitterScreenName":"lukeaf","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Luke Freeman","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[5,12,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"4099de83b041":{"userId":"4099de83b041","name":"Devon Carew","username":"devoncarew","createdAt":1435944138517,"imageId":"1*Wio_YseYYApcaC6FSU52aQ.png","backgroundImageId":"","bio":"Software Engineer @ Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"49be9fe426e":{"userId":"49be9fe426e","name":"Swav Kulinski","username":"swav.kulinski","createdAt":1480751907539,"imageId":"0*Qgrum-sTozr6lXCm.","backgroundImageId":"","bio":"Computer enthusiast since 80s, Android developer since Eclair, now Flutter enthusiast. https://gitlab.com/swav-kulinski","twitterScreenName":"robotoasterdev","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,32,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"61ffa50a01de":{"userId":"61ffa50a01de","name":"Konstantin Scheglov","username":"konstantin.scheglov","createdAt":1484238609462,"imageId":"0*m23OLfjD-pystWVb.","backgroundImageId":"","bio":"Software Engineer @ Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"ccb73ea506cc":{"userId":"ccb73ea506cc","name":"Ezra Sandzer-Bell","username":"ezra-sandzer-bell","createdAt":1521744217232,"imageId":"1*tTlm5zfgYWqtvLbIzUByLQ.png","backgroundImageId":"","bio":"Web Developer","twitterScreenName":"EzraSandzer","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1602739337223,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[12,3,11,2,1,9],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"adc0de80a214":{"userId":"adc0de80a214","name":"Mary","username":"maryx","createdAt":1528246781372,"imageId":"1*9Ub8P3iIx6Ji3hUUrSCZlg.png","backgroundImageId":"","bio":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"50dd805ce3b8":{"userId":"50dd805ce3b8","name":"JaYoung Lee","username":"jayoung.lee","createdAt":1523069946132,"imageId":"1*09ekgauj46kjGlHoi94FwA.jpeg","backgroundImageId":"","bio":"UX Researcher at Google","twitterScreenName":"","allowNotes":0,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,12,8,21,30,2,18,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"338f470535d3":{"userId":"338f470535d3","name":"Yegor Jbanov","username":"yegorj","createdAt":1459292913771,"imageId":"0*8pUBYXbTsN324CAB.","backgroundImageId":"","bio":"Software Engineer @Google @Flutter, https://twitter.com/yegorjbanov","twitterScreenName":"yegorjbanov","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d46c128329ea":{"userId":"d46c128329ea","name":"Kenzie Davisson","username":"kenzieschmoll","createdAt":1538673979320,"imageId":"0*6siHzzkrp68l6H-V","backgroundImageId":"","bio":"Lead for the Flutter DevTools team at Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"31a1e64bd9c5":{"userId":"31a1e64bd9c5","name":"Anthony Bullard","username":"arbullard","createdAt":1556746808863,"imageId":"0*tNv4NL4miSZG0eeS.jpg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"441fe70f4b5e":{"userId":"441fe70f4b5e","name":"Kevin Moore","username":"kevmoo","createdAt":1382738285437,"imageId":"1*iUVmcyWC2Pj7ERaoSF-Onw.jpeg","backgroundImageId":"","bio":"Google Product Manager working on Dart and Flutter web technologies. Find all of my social links at https://j832.com","twitterScreenName":"kevmoo","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,5,29,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"5d35ab1fce7d":{"userId":"5d35ab1fce7d","name":"Justin McCandless","username":"justinjmcc","createdAt":1345026491488,"imageId":"1*6L6xLJHqC5vlGBrTFHc6xg.jpeg","backgroundImageId":"","bio":"Software engineer in San Francisco contributing to Flutter.","twitterScreenName":"justinjmcc","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1636516023758,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,48,50,29,12,2],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"40a15fe2c58f":{"userId":"40a15fe2c58f","name":"Anthony Robledo","username":"clocksmith","createdAt":1457993139268,"imageId":"1*fcJn7cFYnwInCzoug_PoDA.jpeg","backgroundImageId":"","bio":"4 * (1 - 1/3 + 1/5 - 1/7 + 1/9 -1/11 + 1/13 - 1/15 + 1/17 - 1/19 + 1/21 - 1/23 + 1/25 - 1/27 + 1/29 - 1/31 + 1/33 - 1/35 + 1/37 - 1/39 + 1/41 -1/43 + ... )","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1629754569595,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":true,"userDismissableFlags":[32,48,29,8,50,5,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"b25029b54709":{"userId":"b25029b54709","name":"Tao Dong","username":"taodong","createdAt":1379981270728,"imageId":"0*jbYlQ-K9Yh-HVUBp.jpg","backgroundImageId":"","bio":"UX Lead at Google, transforming how developers build GUI with Flutter. Personal website: https://www.taodong.net/.","twitterScreenName":"taodong","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1643140339365,"hasCompletedProfile":false,"userDismissableFlags":[29,12,8,5,3,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"a0552d713018":{"userId":"a0552d713018","name":"Yan Chen","username":"yanchenum","createdAt":1437338672784,"imageId":"0*PSrFnoWOMMa0YZUM.jpg","backgroundImageId":"","bio":"A learner","twitterScreenName":"yanchenum","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Yan Chen","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,6,5,12,2],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"95debe19f9f3":{"userId":"95debe19f9f3","name":"Ray Rischpater, KF6GPE","username":"kf6gpe","createdAt":1405290175623,"imageId":"2*stkoPD1JQ5tooR-s76YSmw.jpeg","backgroundImageId":"","bio":"I'm a software engineer, writer, husband, father, Quaker, and ham radio operator. Presently employed by Google as a TPM for Flutter.","twitterScreenName":"kf6gpe","allowNotes":1,"mediumMemberAt":1680155335000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1606535386256,"isMembershipTrialEligible":true,"facebookDisplayName":"Ray Rischpater","optInToIceland":true,"subdomainCreatedAt":1610650136831,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"fb2878892151":{"userId":"fb2878892151","name":"Mariam Hasnany","username":"mariam.hasnany","createdAt":1571258108663,"imageId":"1*TDttyOKULZENb7QG-0Wl3w.jpeg","backgroundImageId":"","bio":"product manager @Google #flutter |👩🏾🎓 UVA ’13 | 📚currently reading Fair Play by Eve Rodsky","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,29,8,30,3,2,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"a8e501ba3326":{"userId":"a8e501ba3326","name":"Jose Alba","username":"josealba199675","createdAt":1581689707994,"imageId":"0*hPHb0U1EVsdSI-ZK","backgroundImageId":"","bio":"Recently graduated from university and now works on maintaining the Flutter Material Library.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1583186083618,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,12,2,1,9],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"4cad326de3d7":{"userId":"4cad326de3d7","name":"Per Classon","username":"perclasson","createdAt":1384734428033,"imageId":"2*d-UpSVU0saEV2On5JBvYaQ.jpeg","backgroundImageId":"","bio":"Software Engineer 👨🏼💻","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1585587432311,"isMembershipTrialEligible":true,"optInToIceland":true,"subdomainCreatedAt":1607700516534,"hasCompletedProfile":false,"userDismissableFlags":[8,29,3,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-se","type":"User"},"6410de8e01c6":{"userId":"6410de8e01c6","name":"Zoey Fan","username":"zoeyfan_43394","createdAt":1562618906964,"imageId":"2*Cl8MkXie_Fr91CEmLGzQtw.jpeg","backgroundImageId":"","bio":"Senior Product Manager for Flutter, Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"1964dae92713":{"userId":"1964dae92713","name":"Katie Lee","username":"ktjlee","createdAt":1594696375684,"imageId":"1*vRMW7uCsV7VsqqC6dIghNA.jpeg","backgroundImageId":"","bio":"DA intern on the Flutter team","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,3,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"e3bf847b45be":{"userId":"e3bf847b45be","name":"Pierre-Louis Guidez","username":"guidez","createdAt":1433552881268,"imageId":"","backgroundImageId":"","bio":"Software engineer","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1574852594895,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,12,8,5,21,36,3,2,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en","type":"User"},"d003e69419cc":{"userId":"d003e69419cc","name":"John Ryan","username":"ryjohn_16185","createdAt":1589852640702,"imageId":"0*YVG3ScT4FfHbabkM","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,8,5,21,2,18,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"e1ef2db635a3":{"userId":"e1ef2db635a3","name":"Tianguang Zhang","username":"tianguang","createdAt":1601586290376,"imageId":"0*xV6b-152TcEMSjUr","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,2,5],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"af756e7eb6ac":{"userId":"af756e7eb6ac","name":"Justin Haddadnia","username":"haddadniaj","createdAt":1604003225933,"imageId":"0*gNIf0pPqSsP1oOcM","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1730654882000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1730585166878,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[5,29],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"df52ddf23910":{"userId":"df52ddf23910","name":"André Labonté","username":"andremobilelabonte","createdAt":1593532744983,"imageId":"0*MWQEEWaslbr-PNFW","backgroundImageId":"","bio":"Product Manager — Material Design","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1681179281817,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d2b5932b85ed":{"userId":"d2b5932b85ed","name":"Kate Lovett","username":"katelovett","createdAt":1547665857287,"imageId":"0*0yA7OjxKWthRwjK2.jpg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7d3adf840bf0":{"userId":"7d3adf840bf0","name":"Nikita Gandhi","username":"nikkitagandhi","createdAt":1523615345859,"imageId":"2*G__H_oe3299HvlPy7YkpKg.png","backgroundImageId":"","bio":"Community Manager at Google For Developers, Flutter Enthusiast, Avid Writer, Apathetic at Social Gatherings! Can make round dosas!","twitterScreenName":"Nikkitagandhi","allowNotes":0,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1603822671161,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,29,12,8,19,20,2,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-in","type":"User"},"73a5d73f751e":{"userId":"73a5d73f751e","name":"Jay Chang","username":"JayDChang","createdAt":1469068346637,"imageId":"1*9D8dvL1B2-hjr-btP6fYIg.jpeg","backgroundImageId":"","bio":"Developer Product Marketer @Google for @Flutter moonlighting Foodie, Chef, & Instagrammer @BehindTheKnife on IG","twitterScreenName":"Jaydchang","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Jay Chang","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d31b31424478":{"userId":"d31b31424478","name":"Grant Skinner","username":"gskinner","createdAt":1492549441721,"imageId":"1*QrcTxiCCIAj38rUnnPTryg.jpeg","backgroundImageId":"","bio":"I run gskinner (gskinner.com), a nimble team of designers, developers, and strategic thinkers building innovative digital solutions for smart clients.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,21,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-ca","type":"User"},"bd78eebef416":{"userId":"bd78eebef416","name":"Felix Angelov","username":"felangelov","createdAt":1533513264941,"imageId":"1*lcR8NNnnKzOS6Ma-VJJTCQ.jpeg","backgroundImageId":"","bio":"Principal Engineer at Very Good Ventures (https://verygood.ventures) and creator of the bloc library (https://github.com/felangel)","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7781c543301e":{"userId":"7781c543301e","name":"Very Good Ventures Team","username":"vgv_team","createdAt":1618866775404,"imageId":"1*XUX_mTFnhm4BKyT9q9sOUQ.png","backgroundImageId":"","bio":"Team at Very Good Ventures (https://verygood.ventures), a leading Flutter app development consultancy.","twitterScreenName":"VGVentures","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,29,12,8,3,2,18,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"b8f2d7406660":{"userId":"b8f2d7406660","name":"Aaron Clarke","username":"gaaclarke","createdAt":1622137978875,"imageId":"0*ALqtMy61v8ANAVWO","backgroundImageId":"","bio":"Currently a developer at Google, working on Flutter. A lover of all things software.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,12,30,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"dac0918655bd":{"userId":"dac0918655bd","name":"Jens Johansen","username":"jensj_41626","createdAt":1625212155415,"imageId":"0*Qp4aTK0f2iGxt-UF","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb-oxendict","type":"User"},"3d95ff22deb":{"userId":"3d95ff22deb","name":"Paul Ruiz","username":"ptruiz","createdAt":1581990136420,"imageId":"1*CWReIG9XfZJ-sLKco8j3_Q.jpeg","backgroundImageId":"","bio":"Developer Programs Engineer on Android, Maker, @ptruiz_dev","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,12,8,5,21,3,2,18,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"4363d1f1a699":{"userId":"4363d1f1a699","name":"Sarah Fullmer","username":"sarahcreates","createdAt":1603707129452,"imageId":"0*i3-fA3puQlox9Ao4.jpg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1606132515730,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,3,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"c3acb989164e":{"userId":"c3acb989164e","name":"Brian Wilkerson","username":"brianwilkerson_17142","createdAt":1625183785935,"imageId":"0*Ik7T-bL3XGejpghf","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,29,12,8,5,21,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"1d07d30c7b26":{"userId":"1d07d30c7b26","name":"Flutter Devrel Medium","username":"flutter.devrel","createdAt":1642196606522,"imageId":"1*dmbNkD5D-u45r44go_cf0g.png","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[21,29,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7cb43f46877f":{"userId":"7cb43f46877f","name":"Kevin Chisholm","username":"kevinchisholm","createdAt":1446894415039,"imageId":"1*HEfsynQuQpVrGR-qdGeSvg.jpeg","backgroundImageId":"","bio":"Kevin Chisholm is a Technical Program Manager for Dart and Flutter at Google.","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,29,30,2],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d5910eaf0610":{"userId":"d5910eaf0610","name":"Rich Hall","username":"rich_hall","createdAt":1401296424901,"imageId":"1*w7Y-bThACd0V1YJ6N7QePg.png","backgroundImageId":"","bio":"Search Ecosystem Consultant at Google and part time Flutter fanboy.","twitterScreenName":"rich_hall_","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,2,29],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-au","type":"User"},"2cc8312247c8":{"userId":"2cc8312247c8","name":"Mindy Hoover","username":"melyndahoover","createdAt":1521462010264,"imageId":"1*NC_dwnZV11nnMuK4D0mXYA.jpeg","backgroundImageId":"","bio":"I'm a UX researcher at Google working on improving the developer experience with Flutter","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,30,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"a3e1c6322f4b":{"userId":"a3e1c6322f4b","name":"Brian James","username":"hellobrianjames","createdAt":1671552124189,"imageId":"1*EAeJ6vonuQM5daZCF9CfeQ.jpeg","backgroundImageId":"","bio":"UX Engineer at Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,30,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"152f70c4da53":{"userId":"152f70c4da53","name":"Eilidh Southren","username":"eilidhsouthren","createdAt":1506030036275,"imageId":"1*X-6ifCWQoKYCZ-uLGdPa4w.png","backgroundImageId":"","bio":"Enterprise Engineer @ FlutterFlow","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"95af327120b4":{"userId":"95af327120b4","name":"Timothy Hoang","username":"timothyhoang","createdAt":1604556989153,"imageId":"1*krC2R3xE1FCZTdIbXQDT_A.jpeg","backgroundImageId":"","bio":"Product Manager @ Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"3572a6e59bfe":{"userId":"3572a6e59bfe","name":"John Mutter","username":"jjmutter","createdAt":1693255271950,"imageId":"1*yJ9UamxmYZ_VwVDeM4mDzA.jpeg","backgroundImageId":"","bio":"John Mutter is the Global Chief Technology Officer of the IBM Experience, Design, and Mobile practice, and a Distinguished Engineer.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"f5af3936c0b2":{"userId":"f5af3936c0b2","name":"Ander Dobo","username":"anderdobo","createdAt":1517848245007,"imageId":"1*9QBbBTP_oiuZGZf0I49AKA.png","backgroundImageId":"","bio":"Global Product Manager | work on Flutter ( a UI framework for building cross-platform apps from a single codebase) at Google","twitterScreenName":"anderdobo","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1672297543464,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":true,"userDismissableFlags":[32,29,3,2,41],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7014d6220229":{"userId":"7014d6220229","name":"Craig Labenz","username":"craiglabenz_78472","createdAt":1569429030605,"imageId":"1*xu-sgiT2AZrrzBVu1oYnoQ.jpeg","backgroundImageId":"","bio":"Developer Relations Engineer on the Flutter team @ Google","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"1d4a75f10b0c":{"userId":"1d4a75f10b0c","name":"Ivan Leider","username":"ivan_63194","createdAt":1616434132900,"imageId":"0*SQ_vs0LMPjY6ejrP","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1707415243423,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"2534f4e317f3":{"userId":"2534f4e317f3","name":"Brandon Badger","username":"brandonbadger","createdAt":1707855677831,"imageId":"1*nFmOI6gpDMxUgSzNIZ19Kg.png","backgroundImageId":"","bio":"Product Director for Google Frameworks and Languages (Flutter, Dart, Go)","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"823e7bc94cd0":{"userId":"823e7bc94cd0","name":"Thomas Steiner","username":"tomayac","createdAt":1531129202319,"imageId":"1*5Yq8VeVDQqM51HKi50phdg.jpeg","backgroundImageId":"","bio":"Web Developer Advocate at Google","twitterScreenName":"tomayac","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,6,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"5c92734251c4":{"userId":"5c92734251c4","name":"Cheng Lin","username":"mhclin113_26002","createdAt":1579169747751,"imageId":"1*WKhF9u7jo7OkE26I5PjGiw.png","backgroundImageId":"","bio":"Dual Product Manager at Flutter, Google & Video Solutions Consultant at gTech Ads, Google. Twitter: https://x.com/chenglinlim","allowNotes":1,"mediumMemberAt":1672414458000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1607572858749,"firstOpenedAndroidApp":1690485620113,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":true,"userDismissableFlags":[8,29,12,19,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"9a1282e0b0ee":{"userId":"9a1282e0b0ee","name":"Brandon DeRosier","username":"algebrandon","createdAt":1514685898951,"imageId":"0*Jzj4ct7CmcvOiR3g.","backgroundImageId":"","bio":"https://twitter.com/algebrandon https://github.com/bdero","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"3a7a2a067927":{"userId":"3a7a2a067927","name":"Todd Volkert","username":"tvolkert","createdAt":1474355432054,"imageId":"0*EUSBYlBzvqL9j_Xr.","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"}},"Social":{"a6d788faa5e5":{"userId":"lo_7df5646346b8","targetUserId":"a6d788faa5e5","type":"Social"},"26a19a14addb":{"userId":"lo_7df5646346b8","targetUserId":"26a19a14addb","type":"Social"},"dfd5de850c70":{"userId":"lo_7df5646346b8","targetUserId":"dfd5de850c70","type":"Social"},"6b9d8506b756":{"userId":"lo_7df5646346b8","targetUserId":"6b9d8506b756","type":"Social"},"35da22255b65":{"userId":"lo_7df5646346b8","targetUserId":"35da22255b65","type":"Social"},"68e9dc5e47d5":{"userId":"lo_7df5646346b8","targetUserId":"68e9dc5e47d5","type":"Social"},"2df4e577749c":{"userId":"lo_7df5646346b8","targetUserId":"2df4e577749c","type":"Social"},"4631513e40c0":{"userId":"lo_7df5646346b8","targetUserId":"4631513e40c0","type":"Social"},"ae996dbdd76e":{"userId":"lo_7df5646346b8","targetUserId":"ae996dbdd76e","type":"Social"},"aa31f520c7ec":{"userId":"lo_7df5646346b8","targetUserId":"aa31f520c7ec","type":"Social"},"3df949742a3b":{"userId":"lo_7df5646346b8","targetUserId":"3df949742a3b","type":"Social"},"883356bdfc50":{"userId":"lo_7df5646346b8","targetUserId":"883356bdfc50","type":"Social"},"4099de83b041":{"userId":"lo_7df5646346b8","targetUserId":"4099de83b041","type":"Social"},"49be9fe426e":{"userId":"lo_7df5646346b8","targetUserId":"49be9fe426e","type":"Social"},"61ffa50a01de":{"userId":"lo_7df5646346b8","targetUserId":"61ffa50a01de","type":"Social"},"ccb73ea506cc":{"userId":"lo_7df5646346b8","targetUserId":"ccb73ea506cc","type":"Social"},"adc0de80a214":{"userId":"lo_7df5646346b8","targetUserId":"adc0de80a214","type":"Social"},"50dd805ce3b8":{"userId":"lo_7df5646346b8","targetUserId":"50dd805ce3b8","type":"Social"},"338f470535d3":{"userId":"lo_7df5646346b8","targetUserId":"338f470535d3","type":"Social"},"d46c128329ea":{"userId":"lo_7df5646346b8","targetUserId":"d46c128329ea","type":"Social"},"31a1e64bd9c5":{"userId":"lo_7df5646346b8","targetUserId":"31a1e64bd9c5","type":"Social"},"441fe70f4b5e":{"userId":"lo_7df5646346b8","targetUserId":"441fe70f4b5e","type":"Social"},"5d35ab1fce7d":{"userId":"lo_7df5646346b8","targetUserId":"5d35ab1fce7d","type":"Social"},"40a15fe2c58f":{"userId":"lo_7df5646346b8","targetUserId":"40a15fe2c58f","type":"Social"},"b25029b54709":{"userId":"lo_7df5646346b8","targetUserId":"b25029b54709","type":"Social"},"a0552d713018":{"userId":"lo_7df5646346b8","targetUserId":"a0552d713018","type":"Social"},"95debe19f9f3":{"userId":"lo_7df5646346b8","targetUserId":"95debe19f9f3","type":"Social"},"fb2878892151":{"userId":"lo_7df5646346b8","targetUserId":"fb2878892151","type":"Social"},"a8e501ba3326":{"userId":"lo_7df5646346b8","targetUserId":"a8e501ba3326","type":"Social"},"4cad326de3d7":{"userId":"lo_7df5646346b8","targetUserId":"4cad326de3d7","type":"Social"},"6410de8e01c6":{"userId":"lo_7df5646346b8","targetUserId":"6410de8e01c6","type":"Social"},"1964dae92713":{"userId":"lo_7df5646346b8","targetUserId":"1964dae92713","type":"Social"},"e3bf847b45be":{"userId":"lo_7df5646346b8","targetUserId":"e3bf847b45be","type":"Social"},"d003e69419cc":{"userId":"lo_7df5646346b8","targetUserId":"d003e69419cc","type":"Social"},"e1ef2db635a3":{"userId":"lo_7df5646346b8","targetUserId":"e1ef2db635a3","type":"Social"},"af756e7eb6ac":{"userId":"lo_7df5646346b8","targetUserId":"af756e7eb6ac","type":"Social"},"df52ddf23910":{"userId":"lo_7df5646346b8","targetUserId":"df52ddf23910","type":"Social"},"d2b5932b85ed":{"userId":"lo_7df5646346b8","targetUserId":"d2b5932b85ed","type":"Social"},"7d3adf840bf0":{"userId":"lo_7df5646346b8","targetUserId":"7d3adf840bf0","type":"Social"},"73a5d73f751e":{"userId":"lo_7df5646346b8","targetUserId":"73a5d73f751e","type":"Social"},"d31b31424478":{"userId":"lo_7df5646346b8","targetUserId":"d31b31424478","type":"Social"},"bd78eebef416":{"userId":"lo_7df5646346b8","targetUserId":"bd78eebef416","type":"Social"},"7781c543301e":{"userId":"lo_7df5646346b8","targetUserId":"7781c543301e","type":"Social"},"b8f2d7406660":{"userId":"lo_7df5646346b8","targetUserId":"b8f2d7406660","type":"Social"},"dac0918655bd":{"userId":"lo_7df5646346b8","targetUserId":"dac0918655bd","type":"Social"},"3d95ff22deb":{"userId":"lo_7df5646346b8","targetUserId":"3d95ff22deb","type":"Social"},"4363d1f1a699":{"userId":"lo_7df5646346b8","targetUserId":"4363d1f1a699","type":"Social"},"c3acb989164e":{"userId":"lo_7df5646346b8","targetUserId":"c3acb989164e","type":"Social"},"1d07d30c7b26":{"userId":"lo_7df5646346b8","targetUserId":"1d07d30c7b26","type":"Social"},"7cb43f46877f":{"userId":"lo_7df5646346b8","targetUserId":"7cb43f46877f","type":"Social"},"d5910eaf0610":{"userId":"lo_7df5646346b8","targetUserId":"d5910eaf0610","type":"Social"},"2cc8312247c8":{"userId":"lo_7df5646346b8","targetUserId":"2cc8312247c8","type":"Social"},"a3e1c6322f4b":{"userId":"lo_7df5646346b8","targetUserId":"a3e1c6322f4b","type":"Social"},"152f70c4da53":{"userId":"lo_7df5646346b8","targetUserId":"152f70c4da53","type":"Social"},"95af327120b4":{"userId":"lo_7df5646346b8","targetUserId":"95af327120b4","type":"Social"},"3572a6e59bfe":{"userId":"lo_7df5646346b8","targetUserId":"3572a6e59bfe","type":"Social"},"f5af3936c0b2":{"userId":"lo_7df5646346b8","targetUserId":"f5af3936c0b2","type":"Social"},"7014d6220229":{"userId":"lo_7df5646346b8","targetUserId":"7014d6220229","type":"Social"},"1d4a75f10b0c":{"userId":"lo_7df5646346b8","targetUserId":"1d4a75f10b0c","type":"Social"},"2534f4e317f3":{"userId":"lo_7df5646346b8","targetUserId":"2534f4e317f3","type":"Social"},"823e7bc94cd0":{"userId":"lo_7df5646346b8","targetUserId":"823e7bc94cd0","type":"Social"},"5c92734251c4":{"userId":"lo_7df5646346b8","targetUserId":"5c92734251c4","type":"Social"},"9a1282e0b0ee":{"userId":"lo_7df5646346b8","targetUserId":"9a1282e0b0ee","type":"Social"},"3a7a2a067927":{"userId":"lo_7df5646346b8","targetUserId":"3a7a2a067927","type":"Social"}},"SocialStats":{"a6d788faa5e5":{"userId":"a6d788faa5e5","usersFollowedCount":1,"usersFollowedByCount":9109,"type":"SocialStats"},"26a19a14addb":{"userId":"26a19a14addb","usersFollowedCount":10,"usersFollowedByCount":527,"type":"SocialStats"},"dfd5de850c70":{"userId":"dfd5de850c70","usersFollowedCount":2167,"usersFollowedByCount":651,"type":"SocialStats"},"6b9d8506b756":{"userId":"6b9d8506b756","usersFollowedCount":1,"usersFollowedByCount":16,"type":"SocialStats"},"35da22255b65":{"userId":"35da22255b65","usersFollowedCount":1,"usersFollowedByCount":6,"type":"SocialStats"},"68e9dc5e47d5":{"userId":"68e9dc5e47d5","usersFollowedCount":2,"usersFollowedByCount":6,"type":"SocialStats"},"2df4e577749c":{"userId":"2df4e577749c","usersFollowedCount":1,"usersFollowedByCount":4,"type":"SocialStats"},"4631513e40c0":{"userId":"4631513e40c0","usersFollowedCount":3,"usersFollowedByCount":492,"type":"SocialStats"},"ae996dbdd76e":{"userId":"ae996dbdd76e","usersFollowedCount":2,"usersFollowedByCount":216,"type":"SocialStats"},"aa31f520c7ec":{"userId":"aa31f520c7ec","usersFollowedCount":2,"usersFollowedByCount":234,"type":"SocialStats"},"3df949742a3b":{"userId":"3df949742a3b","usersFollowedCount":135,"usersFollowedByCount":260,"type":"SocialStats"},"883356bdfc50":{"userId":"883356bdfc50","usersFollowedCount":109,"usersFollowedByCount":638,"type":"SocialStats"},"4099de83b041":{"userId":"4099de83b041","usersFollowedCount":25,"usersFollowedByCount":157,"type":"SocialStats"},"49be9fe426e":{"userId":"49be9fe426e","usersFollowedCount":99,"usersFollowedByCount":600,"type":"SocialStats"},"61ffa50a01de":{"userId":"61ffa50a01de","usersFollowedCount":9,"usersFollowedByCount":136,"type":"SocialStats"},"ccb73ea506cc":{"userId":"ccb73ea506cc","usersFollowedCount":17,"usersFollowedByCount":196,"type":"SocialStats"},"adc0de80a214":{"userId":"adc0de80a214","usersFollowedCount":1,"usersFollowedByCount":89,"type":"SocialStats"},"50dd805ce3b8":{"userId":"50dd805ce3b8","usersFollowedCount":4,"usersFollowedByCount":1443,"type":"SocialStats"},"338f470535d3":{"userId":"338f470535d3","usersFollowedCount":7,"usersFollowedByCount":1353,"type":"SocialStats"},"d46c128329ea":{"userId":"d46c128329ea","usersFollowedCount":1,"usersFollowedByCount":420,"type":"SocialStats"},"31a1e64bd9c5":{"userId":"31a1e64bd9c5","usersFollowedCount":1,"usersFollowedByCount":55,"type":"SocialStats"},"441fe70f4b5e":{"userId":"441fe70f4b5e","usersFollowedCount":99,"usersFollowedByCount":2284,"type":"SocialStats"},"5d35ab1fce7d":{"userId":"5d35ab1fce7d","usersFollowedCount":389,"usersFollowedByCount":209,"type":"SocialStats"},"40a15fe2c58f":{"userId":"40a15fe2c58f","usersFollowedCount":16,"usersFollowedByCount":410,"type":"SocialStats"},"b25029b54709":{"userId":"b25029b54709","usersFollowedCount":190,"usersFollowedByCount":1288,"type":"SocialStats"},"a0552d713018":{"userId":"a0552d713018","usersFollowedCount":29,"usersFollowedByCount":63,"type":"SocialStats"},"95debe19f9f3":{"userId":"95debe19f9f3","usersFollowedCount":127,"usersFollowedByCount":162,"type":"SocialStats"},"fb2878892151":{"userId":"fb2878892151","usersFollowedCount":6,"usersFollowedByCount":2048,"type":"SocialStats"},"a8e501ba3326":{"userId":"a8e501ba3326","usersFollowedCount":12,"usersFollowedByCount":291,"type":"SocialStats"},"4cad326de3d7":{"userId":"4cad326de3d7","usersFollowedCount":15,"usersFollowedByCount":222,"type":"SocialStats"},"6410de8e01c6":{"userId":"6410de8e01c6","usersFollowedCount":3,"usersFollowedByCount":1924,"type":"SocialStats"},"1964dae92713":{"userId":"1964dae92713","usersFollowedCount":5,"usersFollowedByCount":160,"type":"SocialStats"},"e3bf847b45be":{"userId":"e3bf847b45be","usersFollowedCount":40,"usersFollowedByCount":181,"type":"SocialStats"},"d003e69419cc":{"userId":"d003e69419cc","usersFollowedCount":2,"usersFollowedByCount":706,"type":"SocialStats"},"e1ef2db635a3":{"userId":"e1ef2db635a3","usersFollowedCount":3,"usersFollowedByCount":36,"type":"SocialStats"},"af756e7eb6ac":{"userId":"af756e7eb6ac","usersFollowedCount":1,"usersFollowedByCount":56,"type":"SocialStats"},"df52ddf23910":{"userId":"df52ddf23910","usersFollowedCount":4,"usersFollowedByCount":64,"type":"SocialStats"},"d2b5932b85ed":{"userId":"d2b5932b85ed","usersFollowedCount":1,"usersFollowedByCount":40,"type":"SocialStats"},"7d3adf840bf0":{"userId":"7d3adf840bf0","usersFollowedCount":0,"usersFollowedByCount":929,"type":"SocialStats"},"73a5d73f751e":{"userId":"73a5d73f751e","usersFollowedCount":198,"usersFollowedByCount":186,"type":"SocialStats"},"d31b31424478":{"userId":"d31b31424478","usersFollowedCount":1,"usersFollowedByCount":117,"type":"SocialStats"},"bd78eebef416":{"userId":"bd78eebef416","usersFollowedCount":24,"usersFollowedByCount":3739,"type":"SocialStats"},"7781c543301e":{"userId":"7781c543301e","usersFollowedCount":15,"usersFollowedByCount":1536,"type":"SocialStats"},"b8f2d7406660":{"userId":"b8f2d7406660","usersFollowedCount":3,"usersFollowedByCount":260,"type":"SocialStats"},"dac0918655bd":{"userId":"dac0918655bd","usersFollowedCount":1,"usersFollowedByCount":38,"type":"SocialStats"},"3d95ff22deb":{"userId":"3d95ff22deb","usersFollowedCount":4,"usersFollowedByCount":375,"type":"SocialStats"},"4363d1f1a699":{"userId":"4363d1f1a699","usersFollowedCount":19,"usersFollowedByCount":97,"type":"SocialStats"},"c3acb989164e":{"userId":"c3acb989164e","usersFollowedCount":1,"usersFollowedByCount":38,"type":"SocialStats"},"1d07d30c7b26":{"userId":"1d07d30c7b26","usersFollowedCount":1,"usersFollowedByCount":16,"type":"SocialStats"},"7cb43f46877f":{"userId":"7cb43f46877f","usersFollowedCount":5,"usersFollowedByCount":11713,"type":"SocialStats"},"d5910eaf0610":{"userId":"d5910eaf0610","usersFollowedCount":183,"usersFollowedByCount":81,"type":"SocialStats"},"2cc8312247c8":{"userId":"2cc8312247c8","usersFollowedCount":7,"usersFollowedByCount":70,"type":"SocialStats"},"a3e1c6322f4b":{"userId":"a3e1c6322f4b","usersFollowedCount":1,"usersFollowedByCount":40,"type":"SocialStats"},"152f70c4da53":{"userId":"152f70c4da53","usersFollowedCount":1,"usersFollowedByCount":162,"type":"SocialStats"},"95af327120b4":{"userId":"95af327120b4","usersFollowedCount":1,"usersFollowedByCount":20,"type":"SocialStats"},"3572a6e59bfe":{"userId":"3572a6e59bfe","usersFollowedCount":1,"usersFollowedByCount":50,"type":"SocialStats"},"f5af3936c0b2":{"userId":"f5af3936c0b2","usersFollowedCount":37,"usersFollowedByCount":244,"type":"SocialStats"},"7014d6220229":{"userId":"7014d6220229","usersFollowedCount":1,"usersFollowedByCount":464,"type":"SocialStats"},"1d4a75f10b0c":{"userId":"1d4a75f10b0c","usersFollowedCount":1,"usersFollowedByCount":10,"type":"SocialStats"},"2534f4e317f3":{"userId":"2534f4e317f3","usersFollowedCount":1,"usersFollowedByCount":389,"type":"SocialStats"},"823e7bc94cd0":{"userId":"823e7bc94cd0","usersFollowedCount":29,"usersFollowedByCount":424,"type":"SocialStats"},"5c92734251c4":{"userId":"5c92734251c4","usersFollowedCount":1,"usersFollowedByCount":140,"type":"SocialStats"},"9a1282e0b0ee":{"userId":"9a1282e0b0ee","usersFollowedCount":0,"usersFollowedByCount":107,"type":"SocialStats"},"3a7a2a067927":{"userId":"3a7a2a067927","usersFollowedCount":1,"usersFollowedByCount":4,"type":"SocialStats"}}},"collection":{"id":"4da7dfd21a33","name":"Flutter","slug":"flutter","tags":["MOBILE APP DEVELOPMENT","FLUTTER","GOOGLE","IOS APP DEVELOPMENT","ANDROID APP DEVELOPMENT"],"creatorId":"2df4e577749c","description":"Flutter is Google's UI framework for crafting high-quality native interfaces on iOS, Android, web, and desktop. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.dev","shortDescription":"Flutter is Google's UI framework for crafting high-quality…","image":{"imageId":"1*5-aoK8IBmXve5whBQM90GA.png","filter":"","backgroundSize":"","originalWidth":1000,"originalHeight":1000,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":57010,"activeAt":1732210323729},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*KvnfbD1F5CzEsU9wSmRZyA.png","filter":"","backgroundSize":"","originalWidth":538,"originalHeight":141,"strategy":"resample","height":0,"width":0},"twitterUsername":"flutterdev","collectionMastheadId":"6f4efe3cee51","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Flutter","description":"Build beautiful native apps in record time","backgroundImage":{},"logoImage":{"id":"1*XrbUBnZb-Vp9jRDGqU-BXQ@2x.png","originalWidth":2000,"originalHeight":2109,"alt":"Flutter"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":1,"postIds":["204b7d20c45d"]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":5,"number":15,"postIds":[]}}],"tintColor":"#FF01579B","lightText":true,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF498BD1","point":0},{"color":"#FF4781C0","point":0.1},{"color":"#FF4477AF","point":0.2},{"color":"#FF416D9E","point":0.3},{"color":"#FF3D638D","point":0.4},{"color":"#FF38587C","point":0.5},{"color":"#FF324D6B","point":0.6},{"color":"#FF2C415A","point":0.7},{"color":"#FF253548","point":0.8},{"color":"#FF1C2937","point":0.9},{"color":"#FF121B25","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF01579B","point":0},{"color":"#FF306CA9","point":0.1},{"color":"#FF4D7FB7","point":0.2},{"color":"#FF6591C4","point":0.3},{"color":"#FF7CA3D0","point":0.4},{"color":"#FF92B4DC","point":0.5},{"color":"#FFA7C4E7","point":0.6},{"color":"#FFBCD3F1","point":0.7},{"color":"#FFD0E3FC","point":0.8},{"color":"#FFE3F2FF","point":0.9},{"color":"#FFF7FFFF","point":1}],"backgroundColor":"#FF01579B"},"highlightSpectrum":{"colorPoints":[{"color":"#FFE8F5FF","point":0},{"color":"#FFE3F3FF","point":0.1},{"color":"#FFDEF2FF","point":0.2},{"color":"#FFDAF0FF","point":0.3},{"color":"#FFD5EFFF","point":0.4},{"color":"#FFD0EDFF","point":0.5},{"color":"#FFCBECFF","point":0.6},{"color":"#FFC6EBFF","point":0.7},{"color":"#FFC1E9FF","point":0.8},{"color":"#FFBCE8FF","point":0.9},{"color":"#FFB6E6FF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF63A4EB","point":0},{"color":"#FF72ACED","point":0.1},{"color":"#FF81B4EF","point":0.2},{"color":"#FF8FBCF1","point":0.3},{"color":"#FF9CC4F3","point":0.4},{"color":"#FFA9CBF5","point":0.5},{"color":"#FFB6D3F6","point":0.6},{"color":"#FFC2DAF8","point":0.7},{"color":"#FFCFE2FA","point":0.8},{"color":"#FFDAE9FC","point":0.9},{"color":"#FFE6F0FE","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":1,"title":"Announcements","tagSlug":"announcements","url":"https://medium.com/flutter/tagged/announcements","source":"tagSlug"},{"type":1,"title":"Performance","tagSlug":"performance","url":"https://medium.com/flutter/tagged/performance","source":"tagSlug"},{"type":1,"title":"Material Design","tagSlug":"material-design","url":"https://medium.com/flutter/tagged/material-design","source":"tagSlug"},{"type":1,"title":"Web Development","tagSlug":"web-development","url":"https://medium.com/flutter/tagged/web-development","source":"tagSlug"},{"type":3,"title":"flutter.dev","url":"https://flutter.dev/"}],"colorBehavior":2,"collectionFeatures":[25],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Flutter","description":"Build beautiful native apps in record time","backgroundImage":{},"logoImage":{"id":"1*XrbUBnZb-Vp9jRDGqU-BXQ@2x.png","originalWidth":2000,"originalHeight":2109,"alt":"Flutter"},"alignment":2,"layout":5},"subscriberCount":57010,"tagline":"Flutter is an open source UI framework for crafting beautiful apps","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092847310,"type":"Collection"},"masthead":{"collectionMastheadId":"6f4efe3cee51","editorsNote":"Flutter is Google’s mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.io","staff":[{"userId":"a6d788faa5e5","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"26a19a14addb","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"dfd5de850c70","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"6b9d8506b756","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"35da22255b65","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"68e9dc5e47d5","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"2df4e577749c","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"4631513e40c0","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"ae996dbdd76e","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"aa31f520c7ec","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"3df949742a3b","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"883356bdfc50","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"4099de83b041","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"49be9fe426e","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"a6d788faa5e5","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"61ffa50a01de","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"ccb73ea506cc","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"adc0de80a214","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"50dd805ce3b8","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"338f470535d3","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"d46c128329ea","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"26a19a14addb","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"31a1e64bd9c5","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"441fe70f4b5e","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"5d35ab1fce7d","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"40a15fe2c58f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"b25029b54709","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"a0552d713018","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"95debe19f9f3","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"fb2878892151","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"a8e501ba3326","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"4cad326de3d7","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"6410de8e01c6","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"1964dae92713","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"e3bf847b45be","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"d003e69419cc","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"e1ef2db635a3","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"af756e7eb6ac","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"df52ddf23910","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"d2b5932b85ed","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"7d3adf840bf0","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"73a5d73f751e","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"d31b31424478","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"bd78eebef416","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"7781c543301e","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"b8f2d7406660","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"dac0918655bd","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"3d95ff22deb","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"4363d1f1a699","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"aa31f520c7ec","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"c3acb989164e","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"1d07d30c7b26","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"7cb43f46877f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"d5910eaf0610","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"2cc8312247c8","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"a3e1c6322f4b","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"152f70c4da53","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"95af327120b4","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"3572a6e59bfe","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"2df4e577749c","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"f5af3936c0b2","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"7014d6220229","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"1d4a75f10b0c","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"2534f4e317f3","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"823e7bc94cd0","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"5c92734251c4","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"9a1282e0b0ee","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"3a7a2a067927","excluded":false,"type":"CollectionMastheadUserItem"}],"type":"CollectionMasthead"}}) // ]]></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e926e6e0f16a8c9',t:'MTczMjcxMzc5Mi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>