As a Flutter developer, at some point in your learning path, you'll feel like you know enough about Flutter and are confident enough to build production-ready applications with Flutter.
Perhaps you've struggled a bit to pick the state management or routing approaches of your choice, but now you've even built some small or even big apps with Flutter. But is there more to learn about Flutter? Of course, there's always more to learn!
While you don't have to "force" yourself to level up your Flutter skills, since it's something that can happen the more you work with Flutter anyway, there are many ways to improve further as a Flutter developer. In this post, we will share some tips and resources on things you can do and learn to take your skills to the next level.
Flutter deep dives
It's easy to build with Flutter, thanks to its great user experience and learning resources out there. But have you been inside Flutter, and do you know about its architecture? You don't need to know about these, but it's nice to know a little more about the framework and how it works behind the scenes.
There are tons of resources out there going over the more complex aspects and features of Flutter, and learning about these can definitely help. They might seem elusive at first, but animations and slivers are useful to know about, even if there are widgets and packages available that can simplify these by a lot for you.
Everyone likes to learn differently. Personally, I learn (and enjoy it) best when going over written tutorials such as blog posts, and building (example) apps on my own, but others might prefer videos and/or courses. Thankfully, Flutter's learning page has plenty of resources of all kinds, and even separates them in Beginner, Intermediate and Advanced levels. And there are likely countless "unofficial" resources on any topic and in the format of your choice, just a simple search away!
Depending on apps you've worked on, there might be things Flutter can do you've never heard of. For example, did you know you can build games with Flutter? Packages like Flame make it very easy to get started as a Flutter game developer.
pub.dev has tons of packages that can do interesting things which you can experiment with. You could build an app that uses NFC, the camera, bluetooth... There are many more advanced use cases for Flutter apps that you might never come across while working for a company or making your own apps.
Expanding your horizons (and skills!) as a Flutter developer is a great way to improve as a developer and learn more about what you can do with Flutter. Experimenting with things you haven't already worked with is one way to achieve this. You might even consider trying alternative approaches to what you've been used to so far, such as a different package for state management (or no package at all), routing and persistence/data storage. Or perhaps if you've only been building mobile apps, you could try out Flutter on desktop and web. It's a (slightly) different world there, as you need to adapt for bigger screens, potentially support multiple windows, and use different plugins (if they even exist!).
It's (almost) inevitable that at some point while building apps with Flutter, you'll want to make use of some native platform features that are not available as plugins. For that, you have to know about platform channels, but you'll also have to write native code for each platform you're supporting.
For the Flutter/Dart part, I've written some tutorials on building plugins platform channels as well as doing the same but using the Pigeon package which simplifies a few things compared to just using channels. The Flutter website also has useful resources on developing plugins.
It's good to at least know the basics of each native language of the platform you're targeting. If you're a mobile app dev, some Java/Kotlin knowledge is useful for Android, and Objective-C/Swift for iOS. For plugins or accessing some native features, it should be enough to just know the language, without needing to know how to build native UIs. However, things like home page widgets or watch (WearOS, Apple watch) apps are things you can't achieve with Flutter (yet?), so building a small native app for each platform might be good experience.
There are many ways to get involved with the Flutter community, from online and offline events/meet-ups, to the Discord server and the Flutter subreddits. By being involved you can meet more people working with Flutter, as well as learn new things. You may even be able to help others who are earlier on their Flutter journey (for this, there is also StackOverflow).
You could even contribute to open source Flutter packages or plugins, or even publish your own if you've built something that's not already available and want to share it with everyone else. You could even contribute to the Flutter SDK itself! There are currently over 5000 issues listed on the Flutter GitHub repo, and you could start by looking at ones marked with the good first contribution label.
Write or produce
By writing in any form, either a personal blog or other sites, you can not only contribute to the community as well as teach and help others, but it can also be a great way to learn about things yourself. Of course, you might prefer to produce videos rather than write, and the same applies for that!
I've personally found writing tutorials very useful when I was interested to use a new technology with Flutter, such as Supabase, or wanted to tackle some of the "harder" things in Flutter such as writing plugins.
Besides Flutter news such as new versions and upgrades, which are usually easy to hear about, especially if you're on Twitter or Reddit, there are tons of resources, packages or apps using Flutter out there and being released every day. It's hard to keep up with everything, and can be very time-consuming.
Newsletters are a good way to keep up with the latest on Flutter. You can receive curated lists of articles, videos, news and packages weekly (or bi-weekly) in your inbox. There are other Flutter developers in the community that are happy to do the curation for you! Some popular newsletters include Flutter Tap and The Flutter Bi-Weekly. I'm also a fan of This week in Flutter by Michele.
Most importantly, though, you should just keep building! Having your own Flutter apps in production is already a big achievement, and simply by maintaining these apps and dealing with user feedback and requests, you would also be "maintaining" your Flutter skills, as wel as improving them, and staying up-to-date with any new changes.
In this article, we shared some tips on improving your Flutter development skills and taking them to the next level. There are many ways to do this, and some might be obvious, but I hope you found some of these helpful! If there are more tips and/or resources you would like to share, please do so in the comments.
Images generated by OpenAI's DALL-E.
This article was published as the #week2 article for #4articles4weeks.
Did you find this article valuable?
Support Christos by becoming a sponsor. Any amount is appreciated!