paint-brush
Essential Flutter Skillsā€‚by@seenickcode
4,847 reads
4,847 reads

Essential Flutter Skills

by Nick ManningAugust 6th, 2018
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

<strong>UPDATE</strong>: My Flutter course is now live! <strong>Check it out at </strong><a href="http://fluttercrashcourse.com" target="_blank"><strong>fluttercrashcourse.com</strong></a><strong> </strong>šŸš€

Company Mentioned

Mention Thumbnail
featured image - Essential Flutter Skills
Nick Manning HackerNoon profile picture

UPDATE: My Flutter course is now live! Check it out at fluttercrashcourse.com šŸš€

ā€”

Throughout this past yearā€™s explosion of popularity in Flutter, Iā€™ve seen many fresh newcomers to mobile development. Itā€™s been really exciting and rewarding taking part in mentoring others, making sure developers from all over the world learn Flutter efficiently and effectively. Thatā€™s why Iā€™m launching my very own course this month.

So on that note, Iā€™d like to provide some thoughts on learning styles, what I believe is effective and finally, what are some of the core skills Flutter engineers need to succeed in writing great mobile apps.

How Are You Learning, Exactly?

So there are two types of developers Iā€™ve seen out there. One type of developer will take a quick start from the official documentation, then try to play around with some random examples and after that heavily rely on Stack Overflow answers. Hereā€™s the problem with that: a) playing around is all well and good, but if youā€™re playing around with features you wonā€™t need anytime soon, youā€™re not using your time effectively and b) Stack Overflow answers can too easily include poor quality code examples. I sound like Iā€™m making a generalization but all too often with junior developers, from my experience, I see things play out like this.

Another type of developer though will make a plan on what they need to learn, write a few simple example apps and most importantly find quality content to learn properly from day one. Personally, I always love reading through a proper book first, soaking things in, then trying to write an app myself.

So for the rest of this article, Iā€™m going to focus on the latter developer Iā€™ve mentioned above, the one who learns effectively by focusing on exactly what they need to learn to become a competent mobile developer.

Essential High LevelĀ Skills

Iā€™ve seen a lot of recurring patterns in 90% of the apps out there. The patterns can be broken down into two major areas, screens and widgets. You may want to set the following as personal learning goals. If youā€™re working on coding examples, being able to create a example from each of these will be major milestone for you:

Milestone #1: A Product Detail or User ProfileĀ Page

In this case, something with a nice looking image or avatar at the top, stylized text, a list of sections that contain some text and really thatā€™s most of it.

Milestone #2:Ā Lists

Think of a news feed, it scrolls vertically (doesnā€™t have to be infinite) and is backed by some data source somewhere. Each item is implemented with a clean, ā€œDRYā€ approach.

Milestone #3:Ā Forms

This can be a login or registration form or an edit form. Forms are central to mobile apps and designing forms that look good and function well is something to be proud of.

Essential Widgets for Newcomers

Iā€™m going to compliment the list above with a list of Flutter specific widgets that, at least for me, have been fundamental to getting to a confident level of Flutter development skills.

Note, there are a lot of Widgets out there, the key is to focus on the basic ones first. Hereā€™s a starter list of skills with accompanying Widgets that I recommend learning as a beginner:

  • The basics of rendering a screen using MaterialApp, Scaffold and AppBar.
  • The basics of layout using Column and Row.
  • The basics of grouping and decorating areas of content using Container**.**
  • Text and Image widgets, specifically using AssetImage and NetworkImage.
  • Creating flexible, custom Buttons using GestureDetector.
  • Customizing your app using fonts, text style and colors.
  • Working with APIs using Dart and JSON.

I know what youā€™re saying, this is a very basic list, but youā€™d be surprised what you can achieve with just this. I always say to be people to focus on writing dead simple apps first with the basic skills you have before going overboard on using more widgets than this. You donā€™t have to submit them, just show them to friends and family. The point is that you write end to end apps as a lot more than you think is learned by this process. In short, learn by doing!

You can check out my free Flutter video course, fluttercrashcourse.com which cover all of these basics and of course more. Also, feel free to follow me on Twitter for regular Flutter tips.

Happy Fluttering,

Nick