Last updated: May 26, 2021
The customary way to start any learning journey is with a “Hello World” program. And by extension, the best way to kickstart a new blog is with a “Hello, Flutterverse!” post that talks about its motivation and objectives.
I first learned about Flutter in late 2016 from a Google Developer Expert, in a DevFest conference talk. By 2017, there was a preview version to explore - and as a mobile developer, I was hooked. I spent most of 2017 and 2018 learning about Flutter concepts and sharing that journey in talks and workshops. The ecosystem was growing fast, the community was vibrant and welcoming, and I became an expert myself.
But in 2019, thanks to a career change and lots of travel, my Flutter exploration slowed down. I still found the framework and ideas amazing - but I didn’t have active projects that I could use to devote time in skilling into the nuances of it. So I kept in touch with the community, read and shared interesting articles through my social profile and waited for the right opportunity to dive back in.
Then in 2020, the pandemic hit. All events went online. My travels slowed to a trickle. And most importantly, I found myself in possession of a new mobile device - the Surface Duo - with a foldable form factor and dual screen capability! And it was an Android OS! I started getting back into mobile app development, with a secondary focus on exploring collaborative, multi-screen and cloud-native application development.
My interest was rekindled by the release of Flutter 2.0 at Flutter Engage 2021 in March this year, with the Surface Duo being featured as an exemplary device for exploring dual-screen apps and experiences for foldable devices.
Most importantly, Flutter had expanded its reach beyond mobile platforms, becoming a true cross-platform app development solution that supported mobile, desktop, web and embedded usage. The Dart language saw a big leap forward with null safety. And Flutter 2.2 launched in May at Google I/O with more updates - including an alpha for Windows UWP, GitHub Action for Dart, and a lot of new content and codelabs to walk through.
I want to explore it all - but with a clear set of long-term objectives in mind.
LANGUAGE- proficiency in Dart programming.
DEVELOPMENT- proficiency in cross-platform development (front-end).
CLOUD NATIVE- best practices for performant, agile solutions (back-end)
USER EXPERIENCE- innovative app ideas (foldables + multi-screen)
Added benefit? I recently had to reprovision my development laptop and start with a clean slate. That made me think - this was the perfect time to document setup and learning journeys with two kinds of audiences in mind:
Myselfas customer zero. Documenting my learnings makes it easier to revisit later and copy snippets or refresh my understanding on specific features or workflows. (And to update them as they evolve!)
Beginners. Particularly visual learners (see @SketchTheDocs for examples of visual guides) and non-traditional developers (think career changers) who come into this realm with a potentially smaller built-in knowledgebase of terminology and concepts.
This blog is my canonical source - but I plan to republish these posts on my dev.to/flutterfyi profile to support discussions around these topics in a learning-friendly community!
Let’s flutter forward!