ezone
  • Home
  • Blog
    • Cloud ERP
  • Flutter
    • FlutterFlow
  • Joomla
  • 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

Screenshot of VSCodium editing gsheets_example.dart

Using Google Sheets in a Flutter app

If you know me you'll probably know I spent a lot of time in my early career working at companies who made Spreadsheets. Naturally enough then, when I see a data set in a comma separated variable (.csv) format, I lean toward leaving it in its format and querying it. I need to use such a data set in a mobile app, so I wondered if directly getting the data from an online imported CSV was a workable strategy. This approach will likely not have some things I take for granted in Firebase but I could just host it in Google Sheets which might be worthwhile as maintenance of the .CSV would be easier and virtualy cost free if it was left alone as it just gets replaced with a new set of data from time to time.

Before you start!

The proof of concept work for this is in plain Dart. So you'll need a working local Dart environment. Flutter installs Dart, but you can also choose to install it on its own. If it works out it will need to be adjusted to work with FlutterFlow. Lets see if it fits my use case first.

TL:DR — Implementing a CSV data source for a mobile app, in Google Sheets, in Dart. how hard could it possibly be?

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere
  • Dart: The Powerhouse Behind Scalable App Development

Read more: Using Google Sheets in a Flutter app

Flutter Logo

Bad CPU type in executable Error: Unable to 'pub upgrade' flutter tool

It might be the cache

Assuming you are on Flutter 3.0 on a Mac computer with Apple silicon, this error might mean you downgraded and or have a cache folder containing the older dart executables which are for Intel and won't run on Mac computers with Apple silicon. If that is the case you can delete the cache folder.

TL:DR — Delete the cache folder located in flutter/bin. and rerun flutter doctor

Details
Last Updated: 12 August 2025
  • Android: A Dominant Force in Mobile Computing
  • Flutter: Build Once, Deploy Everywhere

Read more: Bad CPU type in executable Error: Unable to 'pub upgrade' flutter tool

FlutterFlow Colour Theme settings
FlutterFlow Colour Theme settings

Colour palette for a new app

Im working on a new app, codename thistle, and before I can really get going the app needs a colour palette. This a blocking issue for me in that I find it difficult to focus on the rest of the app before the colours are set. I know I might review them later but colours need to be consistent enough for my working environment and for test builds. I used some interesting tools on the way so thought I would share.

Colours are completely subjective but it is possible to follow some rules on devices and on screens to make them look nice. Colours also need to respect accessibility guidelines. Even if you are not a designer, you can make sensible choices and not let the best be the enemy of the good.  If you build a good app you'll get to invest in colours and themes once you've proved the point and got some adoption.

TL:DR – Tools help you partially automate the colour schemes for your app. Here are my favourites.

Details
Last Updated: 19 February 2025
  • Flutter: Build Once, Deploy Everywhere
  • FlutterFlow: Accelerating App Development with No-Code Power
  • Material Design: Google's Unified Design Language for UI/UX

Read more: Colour palette for a new app

Rebuilding 928uk® in Flutter

Rebuilding 928uk® in Flutter

After three years on FlutterFlow's managed build service, we relaunched 928uk as a hand-rewritten Flutter app this month, published to both the App Store and Google Play via their respective review processes. The work spanned several weeks and the end result is: a clean codebase, a self-hosted CI/CD pipeline, and learning a stack of small App Store-review compliance items that you only learn about by tripping over them. Here is the shape of the journey. 

TL:DR – Two weeks to refactor a and publsh a mobile app in Flutter with repeatable local control of automated builds.

Details
Last Updated: 27 April 2026

Read more: Rebuilding 928uk® in Flutter

Mobile Applications: The Hidden Complexity Behind the Curtain

Mobile Applications: The Hidden Complexity Behind the Curtain

Mobile applications have evolved far beyond simple web app clones. Their development requires careful attention to design, performance, and compatibility. Developers must navigate a range of devices, operating systems, and hardware constraints. This article examines the true intricacies of mobile app development and dispels the notion that these applications are easily produced.

TL:DR – Books such as Learn Google Flutter Fast: 65 Example Apps can help to enhance your development skills.

Details
Last Updated: 20 February 2025
  • Flutter: Build Once, Deploy Everywhere
  • Technology Strategy

Read more: Mobile Applications: The Hidden Complexity Behind the Curtain

Android Logo

Java on macOS Sequoia - especially for android app developers

Java is painful on macOS. Java 6 was once available from Apple but this ceased after Mac OS X 10.6 Snow Leopard in 2013. Oracle have changed the licencing which makes using their Java downloads a minefield. Their licence permits certain uses, such as personal use and development use at no cost but other uses may no longer be available. 

This is enough of a restriction to mean that alternative implementations of Java have flourished. But they are still complex to deal wth on a Mac computer.

TL:DR – Android Studio installs its own java runtime. The latest release 'ladybug' appears to be incompatible with Flutter. You can fix it all but you have to wonder why two developer products from one vendor are out of whack with each other. 

Details
Last Updated: 05 March 2025
  • macOS: The redefinition of modern Computing

Read more: Java on macOS Sequoia - especially for android app developers

Wiring AdMob in Flutter: Eight Hashes for Two Apps

Wiring AdMob in Flutter: Eight Hashes for Two Apps

In 2026, integrating AdMob into your Flutter applications has become a more streamlined yet nuanced process. Ongoing updates in both the Flutter ecosystem and AdMob itself, make it crritical that developers ensure test ads are served correctly and reliably on test devices. This article outlines our experience implementing AdMob banners in two Flutter applications, porjects parchment and linen, while addressing the challenges we faced along the way and how to effectively resolve them.

Our two apps are still in production: parchment (a community app) and linen (a citizen-reporting tool). Both are built with Flutter, released via TestFlight and Google Play, and utilise Firebase along with Fastlane + Gitea CI for continuous integration. Recently, we integrated google_mobile_ads banners into both applications. Our testing devices include physical Google Pixel phones, and physical iPhones, test builds are delivered via Google Play Internal Test track and TestFlight respectively. With two apps and several devices, we faced the challenge of marking each device-app pairing as a test device for AdMob to avoid serving real ads during our internal testing, which could lead to violations of AdMob's policies regarding invalid traffic.

TL:DR – Managing test devices for AdMob is much harder than it should be in 2026. It is far too easy to serve live adverts to test devices and risk a policy violation.

Details
Last Updated: 28 May 2026

Read more: Wiring AdMob in Flutter: Eight Hashes for Two Apps

FlutterFlow - Low code app builder based on Flutter

Page 3 of 3

  • 1
  • 2
  • 3

Recent articles

  • Building Subscriptions Manager: An Iterative Development Story
  • Fixing GA isn’t working
  • 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

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
  • Building a Flutter Barcode Scanner app
  • Using Cloud Firestore 
  • Using Google Sheets in a Flutter app
  • Getting the latest YouTube video for a Flutter app
  • Sign in with Apple from Pub.Dev Package Manager for Flutter
  • Bad CPU type in executable Error: Unable to 'pub upgrade' flutter tool
  • 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 60
  • Apple Silicon: Redefining Performance and Efficiency 26
  • Android: A Dominant Force in Mobile Computing 24
  • Linux: The Backbone of Modern Computing 19
  • Ubuntu Linux: Stability, Security, and Open-Source Freedom 18
  • iOS: The Engine Behind Apple’s Mobile Revolution 18
  • Microsoft Windows: An Operating System 18
  • Apple Computer: Innovation, Software, Electronics 18
  • Technology We Use: Devices and Tools Powering Everyday Life 14
  • Flutter: Build Once, Deploy Everywhere 14
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