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).

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
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
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
Read more: Bad CPU type in executable Error: Unable to 'pub upgrade' flutter tool
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
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
Read more: Java on macOS Sequoia - especially for android app developers
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
Read more: Mobile Applications: The Hidden Complexity Behind the Curtain