Episodit

  • Mahtab Tadayon is a Google Developer Expert for Flutter and Dart, and she is the founder of the popular Flutter Explained YouTube channel. She shared her story about how she switched from industrial engineering to software development and became a Google Developer Expert.

    Guest: Mahtab Tadayon

    Twitter @mahtab_devGitHub @mt-tadayonLinkedIn @mahtab-tadayon

    Flutter Explained

    Web flutter-explained.devYouTube Flutter ExplainedOdysee Flutter ExplainedTwitter @flutter_exp

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Talks by Mahtab

    From Zero Programming Knowledge to Software Engineer in 2 years - FlutteristasFlavors in flutter by Mahtab Tadayon - WTM Ahmedabad

    Other resources

    FlutteristasUdacityexercismexercism Dart trackUdemyThe Complete 2021 Flutter Development Bootcamp with Dart
  • In this episode, my guest is Waleed Arshad and we talk about state management in Flutter.

    Waleed is Pakistan’s first Google Developer Expert in Flutter and GDE in Dart. He’s the author of the book “Managing State in Flutter Pragmatically: Discover how to adopt the best state management approach for scaling your Flutter app“.

    At the time of recording this episode, I couldn’t read the book yet, it wasn’t public yet, but since we recorded I bought the book and read most of it, and I can only recommend it.

    Guest: Waleed Arshad

    Twitter @wal_33dGitHub @wal33d006LinkedIn @waleed006Web wal33d006.github.io

    Book: Managing State in Flutter Pragmatically

    Packtamazon.comamazon.deGoogle Books

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Flutter State Management Overview with Waleed Arshad (Episode 26): Waleed Arshad is a Google Developer Expert in Flutter and Dart. He’s the author of the “Managing State in Flutter Pragmatically“ book. We talked about different state management options: setState, InheritedWidget, Provider, Riverpod, Bloc, Cubit, MobX, and more.RVMS architecture, get_it, commands, and more with Thomas Burkhart (Episode 3): Thomas Burkhart is a GDE for Flutter and Dart. He's the author of popular packages, like get_it, and flutter_command. We talked about the RVMS architecture.Flutter Development Experience with Chris Sells (Episode 16): Chris Sells is a Senior Product Manager at Google on Flutter. Chris is responsible for the end-to-end development experience, as well as tooling, the package ecosystem, and the desktop platform support.

    Resources

    Top 30 Flutter State Management options tweet by @RydMike
  • Puuttuva jakso?

    Paina tästä ja päivitä feedi.

  • In this episode, my guest is Waleed Arshad and we talk about state management in Flutter.

    Waleed is Pakistan’s first Google Developer Expert in Flutter and GDE in Dart. He’s the author of the book “Managing State in Flutter Pragmatically: Discover how to adopt the best state management approach for scaling your Flutter app“.

    We talked about why state management is such a hot topic amongst Flutter developers and we talked about different state management options: setState, InheritedWidget, Provider, Riverpod, Bloc, Cubit, MobX, and more. We also discussed whether choosing this or that state management library is even so important as we previously thought if we layer, design, architect our application correctly.

    At the time of recording this episode, I couldn’t read the book yet, it wasn’t public yet, but since we recorded I bought the book and read most of it, and I can only recommend it.

    Guest: Waleed Arshad

    Twitter @wal_33dGitHub @wal33d006LinkedIn @waleed006Web wal33d006.github.io

    Book: Managing State in Flutter Pragmatically

    Packtamazon.comamazon.deGoogle Books

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    RVMS architecture, get_it, commands, and more with Thomas Burkhart (Episode 3): Thomas Burkhart is a GDE for Flutter and Dart. He's the author of popular packages, like get_it, and flutter_command. We talked about the RVMS architecture.Flutter Development Experience with Chris Sells (Episode 16): Chris Sells is a Senior Product Manager at Google on Flutter. Chris is responsible for the end-to-end development experience, as well as tooling, the package ecosystem, and the desktop platform support.

    Mentioned packages

    pub.dev/packages/provider: A wrapper around InheritedWidget to make them easier to use and more reusable.pub.dev/packages/bloc: A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.pub.dev/packages/flutter_bloc: Flutter Widgets that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.pub.dev/packages/get_it: Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your Apppub.dev/packages/mobx: MobX is a library for reactively managing the state of your applications. Use the power of observables, actions, and reactions to supercharge your Dart and Flutter apps.pub.dev/packages/redux: Redux is a predictable state container for Dart and Flutter appspub.dev/packages/binder: A lightweight, yet powerful way to bind your application state with your business logic.

    Other resources

    Flutter state management for minimalists by @suragch1Flutter Docs: State Management
  • Sarah Fullmer is an aerospace engineer turned software developer, Flutter Community Manager at Google on the Flutter Developer Relations team. We talked about the Flutter Apprentice giveaway and book club, the Flutter Meetup Network, the Flutteristas community, and more.

    Guest: Sarah Fullmer

    Twitter @FullmerSGitHub @fullmersLinkedIn @fullmersarah

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Other resources

    flutter.dev/apprentice-giveaway - Get Free access to Flutter Apprenticeflutteristas.org - The Flutteristas is a world-wide community of people whose gender identity is either female or non-binary and have an interest in the Flutter SDK.Flutter Meetup Network - The Flutter Meetup Network brings together people who develop Flutter apps or are interested in learning Flutter. Search for a local Meetup group in your area or look for global remote events that are available to everyone.Flutter Apprentice Book Club - YouTube Playlist by the Flutter CommunityFlutter Humpday Q&A/AMA - YouTube Playlist by the Flutter CommunityFlutterVikings - The biggest Flutter Conference in NordicMajid Hajian @mhadailyCraig Labenz @craig_labenzNilay Yener @nlycsknScott Stoll @scottstoll2017
  • In this episode, I talked to Maksim Lin. Maks is a Google Developer Expert in Flutter, and he’s an Android and Flutter Developer. He’s a passionate contributor, user, and supporter of open-source software. He’s also a regular speaker at technical conferences and local developer group meetups.

    Today, we are going to talk about isolates, isolate groups, the actor model, improvements and limitations of isolates, concurrency, and we will even talk a little bit about "the soul of Erlang and Elixir".

    It’s Maks’s second episode on the Flutter 101 podcast. In Episode 21, Maks and I were talking about WebAssembly, Dart, and his Dart-WASM project. In both episodes, I had these "wow" moments, as I realized how important WebAssembly will become in the coming years in software development, I had these "wow" moments, as I realized the potential behind the improvements to the Isolates, how the isolates make Dart such a powerful language... so I really hope that you will be just as excited when you are listening to this episode as I was when we recorded it.

    Guest: Maksim Lin

    Twitter @mklinGitHub @maksWeb manichord.com: "Flutter and Android App development and consulting"Dart, WASM and AssemblyScript - Oh my!Featherweight Isolates in Flutter (Flutter Engage)

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    WebAssembly and Dart with Maksim Lin (Episode 21): I invited Maks to chat as I saw a very interesting post written by him about WASM and Dart. In this episode, we'll clarify what WebAssembly is and why it's important for Flutter and Dart developers.Dart in the Cloud, Backend, Command Line, and Shelf with Kevin Moore (Episode 14): Kevin Moore is a Product Manager at Google working on Dart and Flutter. Dart in the cloud, on the backend, and on the command line. Functions Framework for Dart, Google Cloud Run, Docker and Dart, Shelf, and many many other useful packages.Dart Server Framework Alfred with Ryan Knell (Episode 11): Ryan Knell is the author of the performant, Express.js-like Dart server framework Alfred. We talked about the state of full-stack Dart, ORMs, backend frameworks, Flutter, and many more!

    Mentioned packages

    pub.dev/packages/shelf: A model for web server middleware that encourages composition and easy reuse

    Other resources

    Featherweight Isolates in Flutter (Flutter Engage)Lightweight Isolates & Faster isolate communication #36097The Soul of Erlang and Elixir - Saša Jurić (GOTO 2019)Actor model (Wikipedia)
  • Today, I wanted to share with you a very interesting open-source project, Widgetbook. My guest is Lucas Josefiak and he is the co-founder of Widgetbook. Widgetbook is "an open-source tool for organizing widgets in Flutter. It helps developers cataloging their widgets, testing them quickly on multiple devices and themes, and sharing them easily with designers and clients".

    It’s a problem that I probably faced at every team and project I worked on, and on some teams, we even tried to implement some sort of secondary application just to showcase, document, and test our reusable components and pages, so I was very glad that Lucas decided to join me for an episode.

    Widgetbook is inspired by flutterbook, and Storybook, maybe that sounds familiar to some of you.

    I’d like to apologize for the audio quality from my mic, I was not recording from home and I didn’t have my regular microphone with me, but I hope the quality is still good enough and I hope that you will enjoy this episode.

    Guest: Lucas Josefiak

    Twitter @lucasjosefiakGitHub @Lucas-ctrl1LinkedIn

    Widgetbook links

    widgetbook.ioBook a demogithub.com/widgetbook/widgetbookpub.dev/packages/widgetbooktwitter.com/widgetbook_iolinkedin.com/company/widgetbookWidgetbook on Discord

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Other resources

    Storybook - "Storybook is an open-source tool for building UI components and pages in isolation. It streamlines UI development, testing, and documentation."pub.dev/packages/flutterbook - "A storyboard tool to accelerate the development of Flutter widgets."
  • In this episode, I talked to David DeRemer, the Founder and President of Very Good Ventures. VGV, Very Good Ventures, is a global Flutter development consultancy. Their work and apps were featured on multiple global Flutter events, for example, they built the first major Flutter desktop app, the Flutter slides app for Flutter Live 18, as well as the Google I/O photo booth app, the multiplatform New York Times KENKEN game, and the Hamilton app.

    I talked to David about Very Good Ventures, why they went all-in on Flutter, how the Flutter ecosystem has grown since the company was founded, we’ll talk about open source development, building things reliably and consistently, the importance of testing, and David also shared with us the approach they took to building a great team.

    Guest: David DeRemer

    Twitter @deremerGitHub @deremerLinkedIn @davidderemerWeb davidderemer.com

    Very Good Ventures

    Twitter @VGVenturesWeb verygood.venturesGitHub @VGVentures and @VeryGoodOpenSourceBlog verygood.ventures/blogLinkedIn Very Good Venturespub.dev/publishers/verygood.ventures

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Product Owner's Perspective on Flutter with Tom Arra (Episode 4) - Tom Arra is a Program Manager at Very Good Ventures. Previously, he worked as Product Owner at BMW, Microsoft, and Nokia. We talked about his experience with Flutter as a Product Owner.Codemagic with CEO Martin Jeret (Episode 2) - We talked to Martin Jeret about Codemagic, CI/CD for mobile apps, and other challenges Flutter developers face.Flutter Development Experience with Chris Sells (Episode 16) - Chris Sells is a Senior Product Manager at Google on Flutter. Chris is responsible for the end-to-end development experience, as well as tooling, the package ecosystem, and the desktop platform support. We talked about all that!

    Mentioned packages

    pub.dev/packages/very_good_analysis - "Lint rules for Dart and Flutter used internally at Very Good Ventures."pub.dev/packages/very_good_cli - "A Very Good Command Line Interface for Dart created by Very Good Ventures."pub.dev/packages/very_good_performance - "Utility on top of the Flutter Driver API that facilitates measuring the performance of your app in an automated way."pub.dev/packages/provider - "A wrapper around InheritedWidget to make them easier to use and more reusable."pub.dev/packages/bloc - "A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern."

    Other resources

    VGV Blog: Flutter 101 Podcast: Thoughts on Flutter Consulting, Open Source, and Testing - "For companies looking to open source their software, David advises that they do so thoughtfully and with the ultimate intention of helping the Flutter Community."Google Developers Blog: Behind the scenes: How the Google I/O photo booth was made - "The Flutter and Firebase teams joined forces to build a best in class example of Flutter on the web that used Firebase for hosting, auth, performance monitoring, and social sharing."How It’s Made: I/O Photo Booth - "We (the folks at Very Good Ventures) teamed up with Google to bring an interactive experience to this year’s Google I/O: a photo booth!"My Internship at Very Good Ventures: Dennis - "This past summer I was given the opportunity to work at Very Good Ventures as an Engineering Intern where I was able to dive headfirst into Flutter app development."Flutter Docs - List of state management solutions - "State management is a complex topic. If you feel that some of your questions haven’t been answered, or that the approach described on these pages is not viable for your use cases, you are probably right."
  • In this episode, I talked to Maksim Lin. Maks is a Google Developer Expert in Flutter, and he’s an Android and Flutter Developer. He’s a passionate contributor, user, and supporter of open-source software. He’s also a regular speaker at technical conferences and local developer group meetups.

    I invited Maks to chat as I saw a very interesting post written by him about WASM, and Dart. In this episode, we will clarify what WebAssembly is and why it is important for Flutter and Dart developers. WebAssembly is a fascinating topic that will only grow in importance and popularity, so I’m glad I can share this conversation with all of you!

    Guest: Maksim Lin

    Twitter @mklinGitHub @maksWeb manichord.com: "Flutter and Android App development and consulting"Dart, WASM and AssemblyScript - Oh my!Featherweight Isolates in Flutter (Flutter Engage)

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Mentioned packages

    pub.dev/packages/wasm: "Utilities for loading and running WASM modules from Dart code"pub.dev/packages/kt_dart: "This project is a port of kotlin-stdlib for Dart/Flutter projects. It includes collections (KtList, KtMap, KtSet) with 150+ methods as well as other useful packages."pub.dev/publishers/pascalwelsch.compub.dev/packages/flutter_midi_command: "A Flutter plugin for sending and receiving MIDI messages between Flutter and physical and virtual MIDI devices. Wraps CoreMIDI and android.media.midi in a thin dart/flutter layer."pub.dev/packages/libao: "A Dart wrapper for the libao library to output audio using a simple API on a wide variety of platforms."

    Other resources

    Dart, WASM and AssemblyScript - Oh my! - "In this article, I want to cover how I have made use of the brand new Dart WASM package to allow me to build the beginnings of a Dart-based audio synthesizer, making use of a rich existing codebase developed in AssemblyScript and which can serve as working example of how to make use of code written in AssemblyScript from Dart."WebAssembly - "WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications."Peter Salomonsen - WebAssembly Music - "Recently as WebAssembly came along with excellent performance, and AudioWorklet technology in providing low latency audio, it's finally possible to use the web for serious music production."github.com/WebAssembly/gc - "Branch of the spec repo scoped to discussion of GC integration in WebAssembly"github.com/petersalomonsen/wasm-git - "GIT for nodejs and the browser using libgit2.org compiled to WebAssembly with emscripten.org"github.com/dart-lang/sdk/tree/wasm-backend - The Dart SDK branch Maks was talking about (I assume? :))
  • Miguel Beltran is a Freelance Software Developer Consultant for Android, Flutter, Kotlin, and Firebase products. Kai Koenig is a Web and Mobile Software and Solutions Architect.

    In this episode, we talked about Raygun and how Kai and Miguel developed Raygun's crash reporting Flutter SDK, as well as Miguel's and Kai's plans for future releases.

    Raygun provides you with "actionable, real-time insights into the quality and performance of your web and mobile apps". With Raygun, you can "detect, diagnose, and resolve issues quickly to deliver flawless digital experiences for your customers".

    raygun4flutter is the official Raygun crash reporting provider for Flutter.

    They shared how they developed the plugin, the typical use cases for using crash reporting, and the benefits of using Raygun. We also talked about their plans for version 1.0 and how they plan to improve raygun4flutter and some of the challenges they expect to face when developing the pure Dart version of the package.

    Guest: Miguel Beltran

    Twitter @MiBLTGitHub @miquelbeltranLinkedIn @miquelbeltranWeb beltran.work

    Guest: Kai Koenig

    Twitter @agentKGitHub @TheRealAgentKLinkedIn @kaikoenig

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Background Services with Sakina Abbas (Episode 13): Sakina Abbas is a Google Developers Expert for Flutter, co-founder and CEO of Reactree. In this episode, we talked about background services.Get your first Flutter job with Vince Varga (Episode 12): In this episode, Vince Varga responds to a listener's question and shares his tips on getting your first Flutter job with limited experience.Codemagic with CEO Martin Jeret (Episode 2): We talked to Martin Jeret about Codemagic, CI/CD for mobile apps, and other challenges Flutter developers face.

    Mentioned packages

    pub.dev/packages/raygun4flutter: Raygun4flutter package is the official Raygun crash reporting provider for Flutter.

    Other resources

    Code Cafeteria Podcast: Hosted by Lara Martin, Kai Koenig and Miguel Beltrangithub.com/MindscapeHQ/raygun4flutter: The GitHub repository of the raygun4flutter package.raygun.com: Raygun - Application Monitoring for Web and Mobile AppsRaygun Docsgithub.com/MindscapeHQ/raygun4android: Android crash reporting provider for Raygungithub.com/MindscapeHQ/raygun4apple: Raygun4Apple provider supporting iOS, tvOS and macOS.
  • In this short episode, I talked to Anna Metelska. Anna is a community manager at Geekle. She's responsible for the Flutter and React communities.

    We talked about the last summit during the summer, what goes on behind the scenes, and we also talked about the upcoming Flutter Global Summit'21 Volume 2. The summit is on 8-9th of December.

    Guest: Anna Metelska

    Twitter @Anna_MetelskaLinkedIn @anna-metelska

    Resources

    Flutter Global Summit'21 Volume 2. Online Summit for Flutter Developers on 8-9th of December by geekle. Visit the website for the latest ticket prices, speakers, and more info.Become a speaker at the Flutter Global Summit'21 Volume 2Flutter Global Summit'21. In case you want to check out the previous event!

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Background Services with Sakina Abbas (Episode 13): Sakina Abbas is a Google Developers Expert for Flutter, co-founder and CEO of Reactree. In this episode, we talked about background services. We also talked about how Sakina could leverage her Android skills when switching to Flutter, how she started giving tech talks focusing on Flutter, how she became Google Developers Expert, and we also talked about how she co-founded Reactree ("Mobile & Web Software Solutions for Businesses").Get your first Flutter job with Vince Varga (Episode 12): In this episode, Vince Varga responds to a listener's question and shares his tips on getting your first Flutter job with limited experience.
  • My guest today is Vincenzo Palazzo. He's an open-source developer from Italy.

    We talked about his past experience with Java, Kotlin, Swing, and he shared what he thinks about Flutter and Dart.

    Vincenzo also talked about how he approaches app development, how he finds projects to work on, how he learns new concepts, and how he practices new technologies.

    Guest: Vincenzo Palazzo

    Twitter @PalazzoVincenzoGitHub @vincenzopalazzoLinkedIn @palazzovincenzo

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Background Services with Sakina Abbas (Episode 13): Sakina Abbas is a Google Developers Expert for Flutter, co-founder and CEO of Reactree. In this episode, we talked about background services.Get your first Flutter job with Vince Varga (Episode 12): In this episode, Vince Varga responds to a listener's question and shares his tips on getting your first Flutter job with limited experience.Flying High with Flutter and Allen Wyma (Episode 10): Allen Wyma, the host of Flying High with Flutter, and I talked about Flutter, different cross-platform technologies, Flutter on the desktop, Elixir, Erlang, Rust, and many more.

    Mentioned packages

    pub.dev/packages/get_it - Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App

    Other resources

    github.com/vincenzopalazzo/material-ui-swing - A modern, Material Design UI for Java SwingSwing (Java) on Wikipedia - Swing is a GUI widget toolkit for Java. It is part of Oracle's Java Foundation Classes (JFC) – an API for providing a graphical user interface (GUI) for Java programs.JMARS - JMARS is an acronym that stands for Java Mission-planning and Analysis for Remote Sensing. It is a geospatial information system (GIS) developed by ASU's Mars Space Flight Facility to provide mission planning and data-analysis tools to NASA scientists, instrument team members, students of all ages and the general public.Lightning network - Lightning is a decentralized network using smart contract functionality in the blockchain to enable instant payments across a network of participants.github.com/ElementsProject/lightning - A Lightning Network implementation in C
  • In this episode, my guest is Nils Reichardt. Nils is a 20-year-old developer and entrepreneur from Germany.

    I reached out to Nils and invited him to talk about his experience with integrations test, Firebase Test Lab with Flutter, and GitHub Actions.

    Nils shared his current testing approach that is a mixture of different testing methods, such as unit tests, widget tests, golden tests, and integration tests. We discussed the advantages and disadvantages of the different approaches. For complex business logic, unit tests are great, they are fast and easy to maintain. With widget tests, you can verify the structure and behavior of your Flutter widgets, with golden tests, you can check the appearance of your widgets. Integration tests give you the highest confidence that your app actually works the way you want to, but they run slowly, they are expensive and hard to maintain.

    Firebase Test Lab is a cloud-based app testing infrastructure that lets you test your app on a range of devices and configurations, so you can get a better idea of how it'll perform in the hands of live users. With it, you can test both Android and iOS apps.

    Nils integrated Firebase Test Lab into their pipeline with GitHub Actions, so that after a merge, he and his team could verify that the most important functionalities of their app work perfectly.

    Guest: Nils Reichardt

    Twitter @nilsreichardtGitHub @nilsreichardtLinkedIn @nilsreichardtSharezone App sharezone.net/appGatch gatch.fun

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Codemagic with CEO Martin Jeret (Episode 2): We talked to Martin Jeret about Codemagic, CI/CD for mobile apps, and other challenges Flutter developers face.Flutter by Example with Eric Windmill (Episode 1): I talked to Eric Windmill. Eric is the author of Flutter by Example, and Flutter in Action books.Dart Language Evolution with Vince Varga (Episode 9): We went through the most important changes to the Dart language. Sound type system, spread operator, collection if and for, extension methods, null safety, and type aliases.

    Other resources

    Flutter Documentation: Testing Flutter appsFlutter Documentation: Integration testingFlutter Documentation Cookbook: An introduction to integration testingFirebase Documentation: Firebase Test LabNils Reichardt's tweet about integration tests
  • Chris Sells is a Senior Product Manager at Google on Flutter. Chris is responsible for the end-to-end development experience, as well as tooling, the package ecosystem, and the desktop platform support.

    Flutter on the desktop is getting more popular day every day, though it is (unsurprisingly) behind mobile and web in popularity. Flutter's desktop support allows you to compile Flutter source code to a native Windows, macOS, or Linux desktop app.

    We also talked about the Flutter Favorite program: The aim of the Flutter Favorite program is to identify packages and plugins that you should first consider when building your app. Chris explained what metrics they consider, how the Flutter Ecosystem Committee works, and the quality standards that a Flutter Favorite package has to pass.

    The outstanding Flutter development experience also relies on the community. Chris highlighted various projects, including detective.dev, Codemagic's improved desktop features, and FlutterFlow.

    Chris also shared what his typical day as a Product Manager is like, how usability studies work, and how different packages' ergonomics can be evaluated.

    Guest: Chris Sells

    Twitter @csellsGitHub @csellsLinkedIn @csellsWeb sellsbrothers.com

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.devFlutter 101 Podcast on Twitter @flutter101dev

    Most relevant past episodes from Flutter 101

    Dart in the Cloud, Backend, Command Line and Shelf with Kevin Moore (Episode 14): Kevin Moore is a Product Manager at Google working on Dart and Flutter. Dart in the cloud, on the backend, and on the command line. Functions Framework for Dart, Google Cloud Run, Docker and Dart, Shelf, and many many other useful packages.Null Safety with Randal Schwartz (Episode 8): We talked to Randal Schwartz, GDE for Flutter and Dart, about null safety in Dart and we received a couple of tips for migrating to null safety.Publishing Packages with Vince Varga (Episode 5): Let's go through the steps of publishing Dart packages on pub.dev. From idea to execution and publishing. Write a good README, keep your code clean and tested, set up a CI/CD pipeline to keep things in pristine condition, and do not forget the docs!

    Mentioned packages

    pub.dev/packages/provider: A wrapper around InheritedWidget to make them easier to use and more reusable.

    Other resources

    Flutter Medium: Follow Flutter's Medium for updates and interesting blog posts.Flutter Favorite Program (Flutter Docs): The aim of the Flutter Favorite program is to identify packages and plugins that you should first consider when building your app.Desktop support for Flutter (Flutter Docs): Desktop support allows you to compile Flutter source code to a native Windows, macOS, or Linux desktop app.Kevin Moore (Google IO, YouTube): Building platform adaptive apps: Flutter now supports six platforms across mobile, desktop, and the web. Learn best practices for making your application feel at home on each of these platforms while also maximizing code reuse.Building adaptive apps (Flutter Docs): Flutter provides new opportunities to build apps that can run on mobile, desktop, and the web from a single codebase. [...] You want your app to feel familiar to users, adapting to each platform by maximizing usability and ensuring a comfortable and seamless experience.Flutter Favorite packages on pub.dev: You can see the complete list of Flutter Favorite packages on pub.dev.FlutterFlow: Build Flutter Apps Effortlessly. Building mobile applications has never been easier.Detective (detective.dev): Real-time state inspection and more to solve the mysteries in your Flutter app in record time.Codemagic: CI/CD for mobile that matches your needs.Flutter macOS desktop publishing with Codemagic: With Codemagic, you can easily get a head start and publish your applications to the macOS App Store!github.com/flutter/uxr: Flutter User Experience ResearchFlutter routing packages usability research report (PDF): ... We formed a small research team to investigate the proposed community solutions and evaluate whether to recommend one of them to our users or, at least, provide guidance about how to choose a routing API.

    The description above include quotes from the referenced links in order to let you get a better grasp of what the linked article is about.

  • My guest today is Leo Farias. Leo is the creator of the wildly popular FVM open-source tool. He is the CEO and co-founder of Concepta Inc and CTO and co-founder of FanHero.

    FVM stands for Flutter Version Management. FVM is a simple CLI tool to manage different versions of the Flutter SDK: "FVM helps with the need for consistent app builds by allowing to reference Flutter SDK version used on a per-project basis. It also allows you to have multiple Flutter versions installed to quickly validate and test upcoming Flutter releases with your apps, without waiting for Flutter installation every time."

    In my opinion, FVM is an essential tool for every Flutter developer. It facilitates switching Flutter versions quickly, as well as pinning the Flutter version that should be used for a project which is especially helpful when working on teams. We talked about what motivated Leo to build FVM, FVM's functionalities, and the differences between the various installation options for FVM.

    Leo also worked on Sidekick, a beautiful desktop app (of course written in Flutter) for managing Flutter versions (you can think of it as a graphical user interface over FVM's core functionalities), explore releases, view popular packages, and more. Sidekick is available on Mac, Windows, and Linux.

    At the end of the podcast, we talked about what is next for Leo and what else is he working on.

    Guest: Leo Farias

    Twitter @leoafariasGitHub @leoafariasLinkedIn @leofariasFanHero: A white label, all-in-one live streaming and OTT solutionConcepta: Orlando Mobile App and Web Development Companyfvm.app: Flutter Version Management

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.dev

    Most relevant past episodes from Flutter 101

    Dart in the Cloud, Backend, Command Line, and Shelf with Kevin Moore (Episode 14): Kevin Moore is a Product Manager at Google working on Dart and Flutter. Dart in the cloud, on the backend, and on the command line. Functions Framework for Dart, Google Cloud Run, Docker and Dart, Shelf, and many many other useful packages.Dart on AWS Lambda and Serverless Computing with Sebastian Döll (Episode 6): We talked to Sebastian Döll (GitHub Microsoft, previously Solutions Architect at AWS) about serverless computing, the state of serverless Dart, and how he implemented a custom AWS Lambda Runtime for Dart.

    Mentioned packages

    pub.dev/packages/fvm: A simple CLI to manage Flutter SDK versions per project. Support channels, releases, and local cache for fast switching between versions.pub.dev/packages/cli_pkg: A set of Grinder tasks that make it easy to release a Dart command-line application on many different release channels, to Dart users and non-Dart users alike. It also integrates with Travis CI to make it easy to automatically deploy packages.pub.dev/packages/pub_api_client: An API Client for pub.dev to interact with public package information.pub.dev/packages/mix: An expressive way to effortlessly build design systems in Flutter. Mix offers primitive building blocks to help developers and designers create beautiful and consistent UI.

    Other resources

    GitHub OCTO | Flat DataDart Sass: Dart Sass is the primary implementation of Sass, which means it gets new features before any other implementation.github.com/leoafarias/sidekick: Sidekick is an app that provides a simple desktop interface to tools that enhance Flutter development experience to make it even more delightful.github.com/leoafarias/flutter_flat_data: Flutter & Dart Unofficial Flat Data APIgithub.com/leoafarias/homebrew-fvm: Homebrew formula for fvm
  • My guest in this episode is Kevin Moore. Kevin is a Product Manager at Google working on Dart and Flutter.

    In one of the last episodes of the Flutter 101 podcast, I talked to Ryan Knell, the author of the Alfred package. Kevin, who works as Product Manager at Google, listened to the episode. He then shared on Twitter, that he would love to come on and explain more about his thoughts on pkg:shelf and Dart on the server and CLI. Of course, I invited him immediately!

    Most people know Dart as the language behind Flutter. Flutter code is powered by the world-class Dart platform, which enables compilation to 32-bit and 64-bit ARM machine code for iOS and Android, as well as JavaScript for the web and Intel x64 for desktop devices.

    Dart is also used for tooling, as command-line apps, running web servers, and more. pub.dev is also running on Dart and it's serving millions! It's a great match as a backend language for teams and developers who already write Flutter. If your Flutter app needs a backend or you need to glue some services together, Dart is a great match.

    We talked about how you can run Dart in the cloud today. You can use Cloud Run’s container support, combined with Dart’s Docker images, to run server-side Dart code.

    We briefly talked about the Functions Framework that makes it easy to write Dart functions instead of server applications for handling web requests. Using the framework, you can create functions that handle HTTP requests and CloudEvents and deploy your Dart functions to Google Cloud.

    Lastly, we also talked about command-line apps, and Kevin shared his tips on which packages can improve your development experience while writing and using Dart on the command line.

    Guest: Kevin Moore

    Twitter @kevmooGitHub @kevmooLinkedIn linkedin.com/in/kevmooReddit @kevmooMedium @kevmoo

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.dev

    Most relevant past episodes from Flutter 101

    Dart Server Framework Alfred with Ryan Knell (Episode 11): Ryan Knell is the author of the performant, Express.js-like Dart server framework Alfred. We talked about the state of full-stack Dart, ORMs, backend frameworks, Flutter, and many more!Dart on AWS Lambda and Serverless Computing with Sebastian Döll (Episode 6): We talked to Sebastian Döll (GitHub Microsoft, previously Solutions Architect at AWS) about serverless computing, the state of serverless Dart, and how he implemented a custom AWS Lambda Runtime for Dart.Backend and Frontend Web with Dart with Jermaine Oppong (Episode 7): We talked about backend and frontend Dart with Web Developer and YouTuber Jermaine Oppong. Shelf, Alfred, Aqueduct, Angel, AngularDart, and more.

    Mentioned packages

    pub.dev/packages/shelf: A model for web server middleware that encourages composition and easy reusepub.dev/packages/functions_framework: FaaS (Function as a service) framework for writing portable Dart functionspub.dev/packages/shelf_router: A convenient request router for the shelf web framework, with support for URL parameters, nested routers, and routers generated from source annotationspub.dev/packages/args: Library for defining parsers for parsing raw command-line arguments into a set of options and values using GNU and POSIX style optionspub.dev/packages/build_cli: Parse command-line arguments directly into an annotation class using the power of build_runner and source_genpub.dev/packages/completion: A package to add shell command completion to your Dart application

    Other Resources

    Pop, Pop, Win! + source code: demonstration app for the open-source Dart project from Google: an implementation of Minesweeper in DartThe Chromium ProjectsArs Technica: Google has released Dartium, a Chromium build with a Dart VM (2012)Fandom Google Wiki: Dartium: "Dartium is a modified version of Chromium that is designed to support the Dart language."Dart News and Updates: The new AdWords UI uses Dart - we asked why (2016)Good to Great: Why Some Companies Make the Leap... and Others Don't by Jim C. CollinsRack: a Ruby Webserver InterfaceAnnouncing Dart 2.13: (...) Official Docker support and Dart on Google CloudDockerDocker Official ImagesDart Docker Official ImagesKubernetes - Production-grade container orchestrationDart Docs - Google Cloud (Cloud Run, Functions, Kubernetes, Compute Engine, App Engine)Announcing Dart support for GitHub ActionsIt's All Widgets! hosted by Hillel Coren: Kevin MooreYouTube Kevin Moore: Code generation with the Dart build systemYouTube Google IO Q&A: Cloud, Dart, and full-stack Flutter
  • My guest today is Sakina Abbas. Sakina is a Google Developers Expert for Flutter, co-founder and CEO of Reactree.

    In this episode, we focused on background services: typical usage, application lifecycle, isolates, platform restrictions.

    We also talked about how Sakina could leverage her Android skills when switching to Flutter, how she started giving tech talks focusing on Flutter, how she became Google Developers Expert, and we also talked about how she co-founded Reactree ("Mobile & Web Software Solutions for Businesses").

    Guest: Sakina Abbas

    Twitter @sakin8torGitHub @sakina-abbasLinkedIn @sakina-abbas

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.dev

    Resources

    ReactreeReactree on LinkedInFlutter Docs - Background processesFlutter Global Summit '21Sakina Abbas - "Working with Background Services in Flutter"I/O Extended Karachi
  • Oh, hello there! In this episode, I responded to a message from a listener. He asked me if I have any tips on what he should focus on in order to get his first job as a Flutter developer.

    I collected some of my ideas on how I would go about getting my first job as a software developer with Flutter.

    There are many ways to improve your chances, first obvious advice is to learn Flutter well. You can build your portfolio where you demonstrate to potential employers that you know how to use Flutter, you know how to code and solve problems. You can do it in many different ways, you can publish apps in the Apple App Store, Google Play Store, on the web, or on any other platform. Publishing open source packages is another great way to impress your interviewers.

    Having skills in related technologies, such as web development, desktop, iOS, or Android development, will all increase your chances!

    At interviews, you need to consider that computer science and software development basics can always come up, so it's good to know a thing or two about object-oriented programming, data structures and algorithms, functional programming, clean code, design patterns, and different architecture approaches.

    Keep in mind, that these are just ideas, recommendations from my side, probably you don't need to do everything I listed, and maybe I forgot some things that are important. Anyway, I wish you the best and I hope you can find your first Flutter developer job soon and advance your career.

    If you enjoyed this episode, I'd appreciate it if you came by (online) and say a bit about yourself and your podcast listening habits! Feel free to send me a private message or just tag me in a tweet!

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadev

    Resources

    YouTube

    Flutter 101 Podcast episode with Eric Windmill, the author of Flutter by Example, and Flutter in Action booksFlutter YouTube ChannelFlutter at Google IO 2021 YouTube PlaylistThe Boring Show YouTube PlaylistFlutter Widget of the Week YouTube PlaylistUI Speed Code example video

    Open-source code

    Flutter source codeFlutter Plugins from the Flutter team source codeSolido/awesome-flutter - Curated list of resources for Flutterdiegoveloper/flutter-samples - beautiful Flutter samplespub.dev Flutter Favorites (popular open-source packages)

    Courses

    App Brewery The Complete 2021 Flutter Development Bootcamp with DartAcademind - Learn Flutter & Dart to Build iOS & Android Apps [2021]Udemy Flutter courses listUdacity - Build Native Mobile Apps with Flutter

    Books

    Flutter in Action by Eric Windmill (Manning)Flutter docs: Books about Flutter
  • In this episode of the Flutter 101 Podcast, I talked to Ryan Knell. Ryan is the author of the performant, Express.js-like server framework Alfred written in Dart. We discussed how Ryan decided to write Alfred and his previous experience with alternative backend option for Dart, such as Aqueduct, Angel, and Shelf, and why he thinks Dart could be the Node.js "killer".

    We talked about how you deploy Dart applications, how you can connect to different databases from your Dart backend server, and how Alfred supports websockets.

    Of course, we also talked about Flutter and how it compares to other popular cross-platform solutions.

    Alfred

    pub.dev/packages/alfredgithub.com/rknell/alfredAnnouncing Alfred on Reddit

    Resources

    Relevant Flutter 101 episodesBackend and Frontend Web with Dart with Jermaine Oppong (E7)RVMS architecture, get_it, commands, and more with Thomas Burkhart (E3)Dart on AWS Lambda and Serverless Computing with Sebastian Döll (E6)Mentioned packagesmongo_dartpostgresAlternative backend optionsshelf - Web Server Middleware for Dartshelf_router - Web Request Router for ShelfAngel - Dart on the ServerDeprecating AngelAqueduct - Multi-threaded Dart Server-Side FrameworkAnnouncing the Sunsetting of Aqueduct

    Guest: Ryan Knell

    GitHub @rknellLinkedin @ryanknellSnappy Apps

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.dev
  • In this episode, I talked to Allen Wyma.

    Allen Wyma is the host of the "Flying High with Flutter" podcast, and a panelist on the Elixir Mix podcast. He also founded a consulting agency, Plangora.

    We briefly talked about different technologies, such as Rust, Elixir, Erlang, React Native, Apache Cordova, and more.

    Allen also shared his opinion on Dart on the backend, Flutter on the desktop and on the web. He then shared his tips for beginners. We also discussed why state management is such an important topic in the Flutter community.

    Allen is from Chicago, and he is now living in Hong Kong, and we talked a little bit about how is life abroad.

    Help us reach more people

    Retweet, like, or comment on TwitterShare, like, or comment on LinkedInDiscuss the episode on RedditFollow the podcast on Twitter @flutter101dev

    Resources

    Flying High with FlutterBehind the birth of Dart with Kasper Lund (YouTube)Using Rust with Flutter with Shady Khalifa (YouTube)Twitter @fhwflutterPlangoraDart meets Rust: a match made in heaven by Shady KhalifaFlutter docsDesktopWebElixir Mix

    Guest: Allen Wyma

    Twitter @allenwymaLinkedin @allenwyma

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadevWeb vincevarga.dev
  • In this episode, I talked about the evolution of the Dart programming language.

    The Dart language improves greatly from release to release. Since 2.0, Dart has a sound type system. Since then, many valuable features were added to the language, for example int-to-double conversion, set literals, as well as operators to improve code that performs list manipulation: the spread operator, collection if and for operators. Extension methods were a great addition to the language and they enable you to add any functionality to any type, even types you don't own, thus making your code very expressive.

    Since Dart 2.12, the language supports sound null safety. When you opt into null safety, types in your code are non-nullable by default, meaning that variables can’t contain null unless you say they can. With null safety, your runtime null-dereference errors turn into edit-time analysis errors.

    This podcast episode builds heavily on the official Dart documentation and version announcements.

    Resources

    Dart language evolutionNull Safety with Randal Schwartz - Flutter 101 PodcastWikipedia on DartMy poll about Dart from the Flutter Munich meetupsGreat packages with extension methodstimedartxkt.dartDart announcementsDart 2.13 - New type aliases language feature, improved Dart FFIDart 2.12 - Sound null safety and Dart FFI ship to the stable channel.Dart 2.7 - A safer, more expressive DartDart 2.3 - Optimized for building user interfacesDart 2.0 - Optimized for client-side developmentOptional semicolons issue on GitHub

    Host: Vince Varga

    Twitter @vincevargadevGitHub @vincevargadevLinkedIn @vincevargadev