avatarMax Zimmermann 💡

Summary

This context presents three open-source Flutter projects for developers of all levels to improve their skills.

Abstract

The article highlights three open-source Flutter projects to help developers enhance their skills, regardless of their programming level. The projects are Flutter Gallery, I/O Pinball, and Pokedex, each offering unique features and learning opportunities. Flutter Gallery, created by Google, showcases Flutter's possibilities, including basic widgets and animations, and provides example apps like an email client. I/O Pinball, a collaboration between Google and VeryGoodVentures, is an educational game that demonstrates translations, automated tests, and layered architecture. Lastly, Flutter Pokedex is a private project by Hung Pham Sy, known for its style and animations that give users a high-quality feel, teaching developers about easy-to-implement animations.

Opinions

  • The author appreciates Flutter Gallery for its resourcefulness, but criticizes its disorganized file structure.
  • I/O Pinball's use of translations, automated tests, and layered architecture is highly praised by the author.
  • The author likes Flutter Pokedex for its style and animations but dislikes the inconsistency in the configs folder.
  • The author encourages readers to share their own open-source projects and suggests topics for the next article.
  • The author advocates for supporting quality writing on Medium by interacting with articles.
  • The author suggests using Isar instead of Hive for new projects, based on the creator's recommendation.
  • The author believes that Flutter Pokedex is an excellent project to learn about animations.

3 Flutter Open Source Projects That Improve Your Skills (All Levels)

Reading code from other developers can take you as a developer to a new level. My selection helps you to progress with Flutter.

Created with DALL-E 2

Table of Contents

Introduction 1. Flutter Gallery (Flutter possibilities overview) 2. I/O Pinball 3. Pokedex Conclusion More Articles

Introduction

I wrote the article 4 Flutter Open Source Projects from Which You Can Learn a Lot! (2023). During my research, I personally learned a lot and also a lot of readers liked it. I want now to share with you more projects that I found recently.

As the last time, it does not depend on your programming level. Every developer can learn something from foreign code. Open-source projects make it possible for everybody to take a look at best practices and improve their skills.

For all projects, I left some thoughts about things I liked and things I would have done differently. Please leave a comment if you disagree with me. This should not be harsh and I can be wrong. These are all fantastic projects and it has a high value for the community that people open-source their work. Thanks for sharing! Now, let’s enjoy some code!

1. Flutter Gallery (Flutter possibilities overview)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Creator: Google

Stars: 5,6k (August 2023)

State Management: Provider

Interesting to take a look at Firebase (different packages), url_launcher, animations

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Screen capture of Flutter Gallery

Flutter gallery gives you an overview of things you can do with Flutter. You can fetch the repository or just download the app from the Google Play Store. In the app, they show basic widgets and animations. You can see e.g. what an iOS-style activity indicator looks like. The cool thing is that resources and code are directly linked to the app.

Also, they provide six small example apps which include an email app, a retail app, a personal finance app, a travel app, a news app, and a responsive starter layout. If you, e.g. are interested in creating your own email app you can take a look a the GitHub repository and have a huge head start. In the repository, you can learn how they manage the state with the Provider package.

What I did not like is how they ordered their files. When you look at their email app (Reply), you have 12 files in one folder that could be clustered into folders. This is messy. Because the app is from Google I expect it to set standards. Therefore, I would expect a clearer folder structure.

Folder structure reply app

I also do not like that some files are too long. The “app.dart” of the email app (Reply) contains 357 lines. In my opinion, the “_buildXtheme” functions should be put into a separate file.

Nevertheless, this is a great resource to learn a lot of basics and explore new possibilities that are easy to use like the animations that they use.

Important links:

2. I/O Pinball

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Creator: Google and VeryGoodVentures

Stars: 2k (August 2023)

State Management: Bloc

Interesting to take a look at Firebase (different packages), translations, automated tests

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

First things first, you can play the game here.

I’m a VeryGoodVentures fanboy. I already recommend two of their open-source projects in my other article. Their work has always been of high quality. They set standards for Flutter and Dart in different areas, e.g. with dart_frog for dart backends and with their alchemist package for golden testing in Flutter. This app was created in collaboration with Google for the Google I/O 2022. Pinball is a game but not only game developers can learn from it.

There are different things that I found interesting. If you have not implemented translations in your apps, you can take a look at how they have done it. They used generated l10n files which is recommended by the Flutter team. For state management, they used the bloc library. Because it is an easy example it is a nice start to grasp bloc.

VeryGoodVentures strives for 100% code coverage on all of its projects. While I am not sure if this is always the right approach, you can learn a lot from them about automated testing. You can check out their test folder to see how they write unit tests and how to use the mocktail package.

I liked their layered architecture that put features into separate folders. In the folder, visual elements have been separated from the game logic. This logic makes it easier to make changes.

Important Links:

3. Pokedex

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Creator: Hung Pham Sy

Stars: 2k (August 2023)

State Management: Bloc

Interesting to take a look at hive, dio, and animations

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

The Flutter Pokedex is a private project created by Hung Pham Sy. I really like the project because of the style and the animations that give me as a user a high-quality feeling. I personally include seldom animations in my app and Flutter Pokedex shows how you can do it.

An example of this is the Pokeball in the background which looks nice and is implemented with a RotationTransition which is really easy to use. You can take a look at this in the code here. Easy animations that look good are a thing that I want to implement more often.

Flutter Pokemon screen capture

A thing that I did not like is that the configs folder is not consistent. The durations.dart file contains one top-level constant. The constants.dart file contains a constant in a class. Here I would recommend deleting the class and only using top-level constants which is recommended by the effective Dart guide.

The Flutter Pokedex uses Hive. While Hive is a decent solution for nearly all use cases the creator of Hive Simon Choi recommends his newer project Isar which can be considered as Hive 2.0 rewritten in Rust. I personally would not switch from Hive to Isar with an existing app but I you start a new project I would recommend Isar.

All in all, this is an amazing project from which you can learn a lot, especially about animations.

Important Links:

Conclusion

Do you have your own open-source project? Then please share it in the comments. Also, let me know if you have a topic in mind that I should cover in my next article. Any feedback is highly appreciated!

If you liked the article clap (50x), highlight, comment, and share it. Not only but especially technical articles got disadvantaged by the new Medium Partner Program incentives. If you want to support your favorite (technical) writers on Medium, remember to interact with the articles. You find more information about this here: The New Medium Partner Program is Bad for Quality Writing!

More Articles

Programming
Technology
Sofware Engineering
Flutter
Software Development
Recommended from ReadMedium