getting started with flutter on macos mojave, part 2

It’s been a little while since getting all the Flutter bits installed, running, and working together. I finally found a few moments this Sunday morning to spin it up and go farther into the Flutter Getting Started demo on the Flutter website.

I’ve gotten into the habit of running ‘flutter doctor’ every time I open a shell because I’ve found that, for whatever reason, the Android SDK licensing check gives me an “Android license status unknown” for 26.0.2, even though I run tools/bin/sdkmanager from the shell. That seems to clear up any licensing issues, at least from the command line. Run ‘flutter doctor’ from within Visual Studio Code and it pops back up again.

Another problem is with libimobiledevice, a library that is a royal pain to get installed cleanly along with its dependencies. And you need that to talk to XCode and Apple mobile devices. The last time I had a problem with libimobiledevice I finally got it straightened out with ‘brew doctor’ and then installing libimobiledevice yet again. So far, right now (as you can see above), everything is OK.

My second set of initial impressions:

  • I got this up and running without writing a single line of code so far. The app running on the iPhone simulator is equivalent to your “Hello world” examples everywhere else.
  • It is interesting that I’m using Microsoft’s editor to debug an iOS application in an Apple simulator running on macOS. If I were really into cross-development I’d use the Android simulator as well, and I have no doubt it would work.
  • Hot reload works a treat. Starting the simulator takes more than a few seconds, but hot reload is very fast and does not require a simulator restart.

My overall impression is that it is very much still a work in progress. It feels fragile, especially when the Flutter doctor keeps reporting Android licensing and imobiledevice issues at odd times, either at the shell or within Visual Studio Code.

Having said that, it’s remarkable to see all this major systems lashed together into a decently working development environment. There is great potential in Flutter. If I can write better iOS applications within Flutter and do so with less frustration and at a faster pace, then I’m all for this and want to see it succeed. In the past, app development has (and still is) heavily siloed, where you get the development environment unique to each platform (XCode for iOS, Android Studio/IntelliJ for Android) and dealt with cross-platform development as best as possible. Now we’ve got the emergence of Flutter with its largely open source underpinnings. As long as Google keeps serious Flutter development going to at least a solid 1.0 release, then I think it will succeed.

And I personally want to see it succeed.

getting started with flutter on macos mojave

A minor victory for me tonight. I got Google’s Flutter (version 0.9.4 beta) installed with all the bits on macOS Mojave. It would appear that everything is working and working together. The command ‘flutter doctor’ with the iPhone XS Max simulator running is happy, not having found any problems with all the bits and pieces that make up the totality of Flutter development. Back when Flutter was first announced as ready for prime time, around the version 0.5 beta release, I tried and failed to get everything to work. I let it go for a while as I had plenty to keep me busy IRL. Now, after following the directions at https://flutter.io/setup-macos/, it looks like the tools are more stable and robust and the directions actually work without having to go hunt down why some critical step failed.

Long term goal is to get back into developing applications across both iOS and Android, but without the crazy idea of having the application look the same on both devices. That just doesn’t work. Flutter developers seem to realize that a Flutter developed app should look like an iOS app on an iPhone and an Android app on an Android phone. And there appears to be a lot more for Flutter to offer an app developer, which I’m interested in investigating.

For the time being I’m happy to get this far. Note that I have an iPhone XS Max simulator running on my macOS desktop. This is about as close as I’ll get to the real thing.

Hopefully a bit more to come.