Flutter February — Starting Early

Dylan Modell
5 min readJan 17, 2019

--

You dive into Flutter but you fly out — Photo by Phil Botha

Sometimes you’ve got to fly yourself out of your comfort zone. Sometimes you’ve got to dive head first into the deep end. For me, it’s that time .

I’ve been inspired by the awesome blogger, Uri Shaked, via the fellow Flutter enthusiast, Abraham Williams. I’m genuinely glad I stumbled upon Mr. Williams’ blog series, A Month of Flutter. If you haven’t checked it out yet and you’re a developer just starting your Flutter journey there are detailed pieces of experience to help guide you, organized into perfect bite sized morsels.

I have found devs like Mr. Williams who have shared with all of us their learning curves and displayed their choices in architecture allow us to make informed decisions on our own works. Flutter is only just a baby bird, which is scary because it’s not clear what the best practices should be and yet, exciting because we get to have input on the future of the project.

My Goals For This Month

  • Get comfortable explaining the ‘how’s and ‘why’s of my coding decisions
  • Get better at expressing myself through concise yet detailed blog posts
  • Become a better flutter developer
  • Turn these baby swallow wings into big ol’ condor wings
Container( child: Text(“I got you two tickets to the gun show.”) ) - Photo by Мартин Тасев

What are you going to make for us?

Instead of making a novelty app, I’m going to make an MVP for an app I’ve been thinking about for a while. The only work I’ve done on it so far is a simple proof of concept that I used as a sanity check to see if my idea was possible to build in Flutter.

It’s working title is PalmPortal and it will enable you to make your own cross-platform application without code. Just choose from a selection templates, and allow yourself to focus on design, brand messaging, and connecting with your customers.

I’m going to split the MVP features into three categories:

The ‘must-have’s

  • It has to port to both android and IOS
  • A selection of at least one template tailored for a small eCommerce business
  • An editing page to customize your app’s colors, content, and layout to best fit your brand image
  • A page to preview your app before you publish it
  • User authentication

The ‘nice-to-have’s

  • A drawer with widgets (big and small) to add on to your template
  • A user profile page
  • A publishing page
  • A dedicated page to add items to your shop
  • Payment processing for in app purchasing

The ‘pie-in-the-sky’s

  • A template each for weddings and restaurants
  • Automatic testing and publishing to the app and play stores
  • More widgets and layouts to choose from in the widgets drawer
  • A tutorial for on-boarding new users
  • Data analytics for my user’s apps

How are you going to make it?

In order for my user’s brands to have the furthest reach across both major mobile platforms, I’m going to be writing this in Flutter. I think it offers me the best code re-usability and, hey, I just love writing in it. I will be using a BLoC architecture because in my proof of concept that is what worked best for me.

The popular choice when it comes to adding authentication and hosting to your Flutter app these days is Firebase and mine will be no different. Where my solution will be different is that I’ll use event sourcing to reduce the amount of data I’m hosting on Firestore. Instead of uploading and keeping every users’ app’s codebase, only a log of users’ actions will be kept alongside their content. I will use the log to generate the codebase prior to publishing it.

When it comes to design I will be using the Material Design Guidelines. This was a big decision for me because I love good design and I need a sense of consistency for my users. It just so happens that Material is the best documented style guide and the easiest to integrate into your Flutter applications.

So what is this? Another New Years resolution? Why do all this?

Ask not what flutter can do for you, but what you can do for flutter. Also, check out this sick eagle! — Photo by History in HD

The why for me is the easiest part. Flutter, what it can bring to the development space and what it represents, excites me.

I’ve had an idea floating around my journals for a while now: it should be easier to make native applications. I’m no geezer but I remember when it was quite difficult to build and host your own website. There were limited services like Geo-Cities and then MySpace (and don’t forget pimping out your Neopets page) but you still had to learn css and html. WordPress and, even more so, SquareSpace have all but removed the friction of creating your own online store, blog, or portfolio.

Today, it is equally hard to have your own mobile application. If you are a small business owner today, I doubt you are even considering making a native app. Would you have the time to learn how to make one yourself? Do you have the money to hire a team of developers to make one for you? Likely the answer is no.

I imagine a future where it is as easy as tapping a few times on your mobile device to build an app. This will allow people to focus totally on marketing their brand and running their business while giving their customers an experience more compelling than a mobile website.

And I imagine this movement will open up a lot more people to the app-making space as most people in developing nations today do not have a computer to write code on but do have a smartphone to experience the products of code.

What to expect from me in the coming weeks

Every day from now until the end of February, you can expect a post from me. I will be detailing my progress, how I came to the decisions I will make, and exploring subjects that influence those decisions.

I can’t promise all of them will be stunners but I do hope to keep them quite concise, informative, and maybe even entertaining.

I hope this series will start a conversation around best practices in Flutter applications, helping inform everyone on what to do or what not to do. Let’s gather some wisdom together.

Up, up and away! — Photo by Andrea Reiman

Special thanks again to Abraham Williams and Uri Shaked for inspiring me to take on this challenge. You guys are both rock stars. Thanks to the whole Flutter Team for making a framework I actually love. Thanks to Unsplash for the photos.

--

--