ezone
  • Home
  • Blog
  • Flutter
  • FlutterFlow
  • Content Management
  • Cloud ERP
  • About

Learning Flutter

Wait, what is Flutter™ ?

A framework for simultaneous publication of apps for Apple and Google Android devices

Flutter is an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase.

I create mobile applications that can be published in the App Store and Google Play. I'm not a hard core developer, I have professional developers working with me in my clients and contracted work. But I am a product manager / interim CTO.

It seemed to me that going through the whole process of app creation and management and documenting it for others would be useful. I've been writing requirements and producing mobile applications for decades but I thought I'd like to learn at a far deeper level about Flutter just for fun and because cross platform applications are something I have a passion for. This is my learned experience of picking up these development tools and seeing what I can do.

Books

You might enjoy printed books. If you do then this one would be a strong pick - Flutter for Beginners: An introductory guide to building cross-platform mobile applications with Flutter 2.5 and Dart, 2nd Edition. As is Flutter Projects: A practical, project-based guide to building real-world cross-platform mobile applications and games (both on Amazon UK).

Flutter starter app running on iPhone 14 Pro simulator on macOS Ventura (Intel)
Flutter starter app running on iPhone 14 Pro simulator on macOS Ventura (Intel)

Of course, one does not simply publish an app.

In order to publish an app you have to plan, code, build, test, publish, operate, monitor, manage and update it. This is a familiar pattern these days, its sometimes called 'devops', and it can't be avoided, for if you skip elements of it then updating your app or managing it might become impossible over time. You don't want that! So while this collection of articles is based around Flutter it is also about all the surrounding disciplines that need to be considered as part of development and operating a cross platform mobile application and the inevitable platform behind it.

Flutter tech notes and demos

Starter app, created from the command line, running as an Apple Silicon binary on macOS

Getting started with Flutter on a Mac

This is the first part of my journey to build and publish a Flutter based app for the App Store and Google Play.

Follow along to learn everything you need to do to set up your environment, build a Flutter based app, put it into source control and publish it to the App Store and Google Play. Along the way you will need some third party tools and services and while the ones used in the examples will hopefully the simplest set of tools you can feel free to make other choices. We have published hundreds of apps for the App Store and Google Play, and will cover wider topics regarding publication and continuing distribution of your app. The first of those is about licenses and it is in this first article. Don't skip it!

TL:DR – Start Here! Get all the tools required and build your first mobile app using Flutter. Build the starter app on a Mac computer with Apple silicon.

Details
Last Updated: 19 February 2025

Read more: Getting started with Flutter on a Mac

Flutter Inspector from Android Studio displaying the Widget Tree with the Scaffold open and the widgets displayed indented from the Scaffold

Viewing changes in Flutter using hot reload

This is the second part of my journey to build and publish a Flutter based app for the App Store and Google Play.

Hot reload is a time saver for viewing changes in your mobile app. You'll wonder how you worked without it.

TL:DR – Start by following the instructions in Getting started with Flutter on a Mac and then you'll be able to complete the tasks in this article.

Details
Last Updated: 24 June 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Viewing changes in Flutter using hot reload

Making mobile apps look better - theme and colours

This is the third part of my journey to build and publish a Flutter based app for the App Store and Google Play.

2014 Baseline Material color theme

Material Design made its debut with a built-in, baseline theme with 12 colours named and defined. Much has changed but these building blocks are important to understand as you think about the colours in your app.

Primary
#6200EE
Primary Variant
#3700B3
Secondary
#03DAC6
Secondary Variant
#018786

 

Background
#FFFFFF
Surface
#FFFFFF
Error
#B00020

 

On Primary
#FFFFFF
On Secondary
#000000

 

On Background
#000000
On Surface
#000000
On Error
#FFFFFF

 

TL:DR – The colours in mobile apps can look good if you pay attention to themes and colour choices. I like to use tools to help me visualise the app colours and this article shows how.

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Making mobile apps look better - theme and colours

Dark and light appearance in mobile apps

This is the fourth part of my journey to build and publish a Flutter based app for the App Store and Google Play.

Dark and light text theme

This is just some boilerplate text. It is in headline6 text style. headline6 is parchmentLightOnSurface in the light theme and parchmentDarkOnSurface on the dark theme and should change colour automatically when the theme is changed. This is so simple compared to writing specific code to support colour changes.

Flutter Material Components Android R headline6 Light appearance
Flutter Material Components Android R headline6 Light appearance
Flutter Material Components Android R headline6 Dark appearance
Flutter Material Components Android R headline6 Dark appearance

The baseline Material color theme is ten years old and was supplemented by a dark theme baseline palette. It provides exaclty what it says - a baseline from which to iterate your colour design.

TL:DR – The addition of dark appearance was unfairly derided at the time but is now a critical part of application design thinking. Address it early on in your design process or it will be hard to add later.

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Dark and light appearance in mobile apps

Image by freepik
Young french woman waiting at the station for the bus and talking on the smartphone

Wiring up an appBar action to a login page using Flutter

This is the fifth part of my journey to build and publish a Flutter based app for the App Store and Google Play.

Apps which start with a Sign in turn end users off. People have low tolerance for such things and wherever possible, apps should deliver their functionality without interrupting the end user with administrative taks. I call it the 'bus top test'. Can you get what you want from your app in the bus stop queue quickly and effectively. If you can't the app designer has failed.

TL:DR – There is not much to see here, but perhaps it is important enough to reiterate. Don't let Sign in pages get in the way of your app.

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Wiring up an appBar action to a login page using Flutter

Typography, Text Styles and Themes in Flutter

This is the sixth part of my journey to build and publish a Flutter based app for the App Store and Google Play.

TL:DR – Typography in Flutter keeps improving. The names of the TextTheme TextStyles here conform to the 2018 Material guidelines and are more understandable than before but the size, weight and spacing are still from the 2014 Material guidelines. Apps can choose to use the 2018 text style by specifying Typography.material2018() as the value for their Theme's typography. 

Details
Last Updated: 24 June 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Typography, Text Styles and Themes in Flutter

Trying out the Material Components for Flutter

This is the seventh part of my journey to build and publish a Flutter based app for the App Store and Google Play.

Adding all the Material Components widgets to our app page

Adding all the MDC-Flutter widgets to the app is a giid way to learn about them. We have already build an Appbar, MaterialApp, Scaffold,  ButtonBar, and, FlatButton, (which is inside the Card. There are a lot more.

TL:DR – In this article lets add Buttons, Floating Action Button, Chips, Data table, Dialogs, List View, Popup Menu and Navigation Drawer

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Trying out the Material Components for Flutter

Trying out more Material Components for Flutter

This is the eighth part of my journey to build and publish a Flutter based app for the App Store and Google Play.

TL:DR – In this article lets add Progress indicators, Selection controls (Radio buttons, checkboxes and switches), SnackBar via a Global Key, Bottom Navigation Bar, Text fields

Details
Last Updated: 14 January 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Trying out more Material Components for Flutter

Setting up Firebase Firestore

Setting up Firebase Firestore

A Beginner's Guide to Firebase Firestore for App Developers

Firebase Firestore is a flexible, scalable database built for mobile and web applications. It supports hierarchical data structures, expressive queries, realtime updates, offline support, and seamless integration with other Firebase and Google Cloud products. If you are building a mobile app and need a reliable cloud database, Firestore is an excellent choice.

This article walks you through the steps required to create a Firebase project, set up a Firebase Firestore database, add data, and read data from it.

TL:DR –  This article goes through the setup steps required to get it going.

Details
Last Updated: 11 May 2026
  • Flutter: Build Once, Deploy Everywhere

Read more: Setting up Firebase Firestore

Setting up App Store Connect / Google Play for a new app

This is the tenth part of my journey to build and publish a Flutter based app for the App Store and Google Play.

Read and pause and read again. The decisions you make here will affect your app for its entire lifecycle.

TL:DR – Sensible naming is important for your project consistency on multiple platforms and tools, especially if you have more than one app or client!

Details
Last Updated: 24 June 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Setting up App Store Connect / Google Play for a new app

Adding Firebase to our Flutter App

This is the eleventh part of my journey to build and publish a Flutter based app for the App Store and Google Play.

There is a long list of chores in here to get Firebase working in your mobile app. Once completed you won't have to deal with it again. 

TL:DR – This article contains the Firebase configuration, database configuration and project settings required to make the app capable of working with Cloud Firestore. 

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere

Read more: Adding Firebase to our Flutter App

Firebase Logo

Implementing Cloud Firestore in our app

This is the twelth part of my journey to build and publish a Flutter based app for the App Store and Google Play.

The important takeaway is that data from Cloud Firestore 'just works'. Edit an item in the Firebase Console and you'll see it change on your phone or simulator.

TL:DR – At last lets get back to Flutter and add some code

Details
Last Updated: 11 May 2026
  • Flutter: Build Once, Deploy Everywhere

Read more: Implementing Cloud Firestore in our app

  1. Authentication to Firebase
  2. Adding Google as a Sign-in provider
  3. Asynchronous programming in Flutter, futures, async, await
  4. Sign in with Apple from Pub.Dev Package Manager for Flutter
  5. Source Code control with Git from Mac to Chromebook
  6. Flutter Barcode Scanner (flutter_barcode_scanner: ^2.0.0)
  7. Flutter development on a Chromebook
  8. Using Cloud Firestore 
  9. Customising the Firestore Quickstart
  10. Starting from a sample in Flutter
  11. Export compliance and the App Store
  12. Getting the latest YouTube video for a Flutter app

FlutterFlow - Low code app builder based on Flutter

Page 1 of 3

  • 1
  • 2
  • 3

Recent articles

  • Wiring AdMob in Flutter: Eight Hashes for Two Apps
  • Why Chrome couldn't reach my LAN web server on macOS, and why it wasn't DNS
  • Don't fight macOS (DFMOS)
  • Rebuilding 928uk® in Flutter
  • MacBook Neo is the first indicator of the Ternus era
  • Joomla custom Fields

Popular articles about Flutter

  • Java on macOS Sequoia - especially for android app developers
  • Export compliance and the App Store
  • Getting started with Flutter on a Mac
  • Flutter development on a Chromebook
  • Flutter Barcode Scanner (flutter_barcode_scanner: ^2.0.0)
  • Using Cloud Firestore 
  • Using Google Sheets in a Flutter app
  • Getting the latest YouTube video for a Flutter app
  • Bad CPU type in executable Error: Unable to 'pub upgrade' flutter tool
  • Sign in with Apple from Pub.Dev Package Manager for Flutter
  • Dark and light appearance in mobile apps
  • Starting from a sample in Flutter
  • Making mobile apps look better - theme and colours
  • Adding Google as a Sign-in provider
  • Setting up Firebase Firestore

Popular Topics

  • macOS: The redefinition of modern Computing 62
  • Joomla: A Powerful Platform for Web Content Management 46
  • Flutter: Build Once, Deploy Everywhere 36
  • Apple Silicon: Redefining Performance and Efficiency 27
  • Android: A Dominant Force in Mobile Computing 25
  • Ubuntu Linux: Stability, Security, and Open-Source Freedom 20
  • iOS: The Engine Behind Apple’s Mobile Revolution 20
  • Microsoft Windows: An Operating System 20
  • Linux: The Backbone of Modern Computing 19
  • Technology We Use: Devices and Tools Powering Everyday Life 19
My Blog
  • Terms of use
  • Privacy statement
  • Contact us
  • Sitemap
  • Joomla! — award-winning content management system (CMS)
  • Flutter — An open source framework for building applications from a single codebase