getting started with flutter on macos mojave, part 4 final

I’ve reached the end of the Flutter introduction, having produced an “app” that will supposedly work equally well on Android and iOS. Nothing out of the way to report, as part two of the exercise was clear and correct. I even went back and removed the code that produced the “Welcome to Flutter” header. Now the app is cleaner looking with only one header.

The good news is how so many different parts worked together to accomplish this: XCode (the Apple iPhone simulator), VS Code (Microsoft’s powerful open-source editor with plugins), and Flutter (Google’s development tools with additional support via Brew). If you dig a little deeper into how VS Code is built, you’ll see that it’s built on the Electron framework which is itself based on Node.js and Angular. So there’s a lot of integration of disparate languages and supporting tools into a non-trivial cohesive working whole. I’m suitably impressed.

Unfortunately for me, I couldn’t test how this looks on an Android device. I couldn’t get the Android emulator to work from the command line, even though I powered up Android Studio and used it to install SDK support for Android 9/Pie. Using Android Studio I also started the Android Virtual Device manager to create a Pixel 2 XL Android device to simulate, but unfortunately not the current top end, the Pixel 3 XL. This apparent lack of latest device support, along with the inability to launch the emulator from the command line (required if using VS Code to develop), almost makes the use of Flutter a pointless exercise, at least for me.

Yes, I was able to “develop” the app (or act as a code copying monkey from web page into the source code with the larger blocks of code). And it was interesting to see it run flawlessly on the iPhone XS Max emulator with the latest iOS version (12.1 as of 30 October). So there was that. I was also exposed to an alternative method for writing apps, which involved Javascript/Dart, so that was also a good thing. It really is good to try alternatives.

But being able to easily, seamlessly, develop for both Android and iOS on the same computer (running macOS in this case), that was a failure for me. And in order to do that kind of development you need to work on macOS, because you won’t run the Apple iPhone simulator on Windows 10. Or not that I’m aware of. And possibly solving the problem by developing within Android Studio instead of VS Code is a non-starter with me, unless I were being paid to do this, and then I would (might) begrudgingly switch. But on my own nickel, nope.

Prior Posts

getting started with flutter on macos mojave
getting started with flutter on macos mojave, part 2
getting started with flutter on macos mojave, part 3

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.