Wait, what, it’s already been a month? 😮
It apparently took me an exciting month to build a moderately intricate multi-page mobile app, powered by Flutter, with custom calendar and credit card views. The designs for the pages already existed, which was good because I did not want to worry about designing an app for my first try with Google’s SDK and the Dart language. I only wanted to test-drive writing the code for the user interface and find out what tools and structure I could use for managing state and data, given a relatively short span of time. A month isn’t enough to understand everything about the framework but I did learn a lot from the experience. A realization: I can totally write mobile apps now if I want to.
Some notes I’d like to remember from the exercise:
- Flutter’s built-in widgets really make it easy to build native-like mobile app user interfaces quickly. Baking in default behavior and validations to the widgets is straightforward too. UI with custom behavior will take a bit longer to write but is still relatively comfortable and rewarding to build using composition, given enough time.
- The Flutter tutorials from the Tensor Programming YouTube channel particularly helped me understand how specific widgets and concepts work, including databases and state management.
- I’m currently fond of the scoped_model library for managing state within an app, and the cloud_firestore library for accessing and manipulating a Google Cloud Firestore database. The Scoped Model is especially powerful in sharing state between widgets that are not directly linked together, while Cloud Firestore is a real-time database which can easily be integrated into a mobile app and is free within a certain limit of usage per month.
- At present, there’s an open issue in Flutter about reducing the sizes of the app release APK and IPA files, which are the actual app installers for android and iOS. They’ve recently made progress in the problem, and hopefully they’ll go further forward. If they do, complex Flutter apps can be made compatible with the Google Play Instant service.
- A challenge in building mobile apps is building them in a way that they look pleasing to the eyes in various font size settings. I believe that content overflow is a common problem developers encounter. The Flutter team suggests we test our apps often on small screen devices with a large font size setting.