bekkidavis.com

Enhance Your Flutter Skills with These Open Source Projects

Written on

Introduction

Engaging with code written by other developers can significantly elevate your programming skills. This curated selection aims to assist you in advancing your expertise in Flutter.

Chapter 1: Overview of Open Source Projects

Having previously written about "4 Flutter Open Source Projects from Which You Can Learn a Lot!" (2023), I found immense value in my research, and many readers enjoyed it as well. Today, I'm excited to present additional projects I recently discovered. Regardless of your programming proficiency, there’s always something to learn from examining external code. Open-source initiatives provide a window into effective practices, allowing developers to refine their skills.

For each project, I've shared my insights, including aspects I appreciated and suggestions for improvement. Please feel free to share your thoughts; constructive feedback is always welcome. The contribution of open-source projects is invaluable to the community, and I appreciate the efforts behind them. Let’s dive into the code!

Section 1.2: I/O Pinball - Learn While Playing

Creator: Google and VeryGoodVentures

Stars: 2k (August 2023)

State Management: Bloc

Key Features: Firebase integration, translations, automated testing

As a fan of VeryGoodVentures, I previously recommended two of their open-source projects. Their work consistently exemplifies high quality and sets benchmarks in Flutter and Dart development, notably with dart_frog for backend solutions and their alchemist package for golden testing in Flutter. This game was developed in partnership with Google for the Google I/O 2022 event. Although it’s a game, there’s much for developers to learn.

One noteworthy aspect is their approach to translations. If you haven't implemented this feature in your apps yet, their use of generated l10n files is a great reference, as endorsed by the Flutter team. They utilize the bloc library for state management, making it an excellent example for newcomers.

VeryGoodVentures aims for 100% code coverage in their projects. While this may not always be necessary, there’s a lot to glean about automated testing from their practices. Their test folder illustrates how to write unit tests and utilize the mocktail package effectively.

I appreciated their structured architecture, which organizes features into separate folders, keeping visual elements distinct from game logic. This organization simplifies updates and modifications.

Important Links:

  • I/O Pinball (Game, Google and VeryGoodVentures)
  • I/O Pinball (GitHub, Google and VeryGoodVentures)
  • I/O Pinball Powered by Flutter and Firebase (Medium article, VeryGoodVentures)

Chapter 2: Pokedex - A Project to Explore Animations

Creator: Hung Pham Sy

Stars: 2k (August 2023)

State Management: Bloc

Key Features: Hive, Dio, animations

The Flutter Pokedex is a personal project by Hung Pham Sy, and I’m particularly fond of its design and animations, which provide a premium user experience. The project showcases how to effectively incorporate animations—something I often overlook in my own apps. An example includes a visually appealing Pokeball in the background, implemented using a RotationTransition, which is quite straightforward.

However, I noted inconsistency in the configs folder. The durations.dart file contains a single top-level constant, while the constants.dart file has a constant wrapped in a class. I recommend simplifying this by removing the class and using top-level constants, as advised by the effective Dart guidelines.

The Flutter Pokedex utilizes Hive for data storage. While Hive is suitable for most applications, Simon Choi, Hive's creator, suggests his newer project, Isar, which is a Rust-based rewrite of Hive 2.0. Although I wouldn’t advise switching existing applications from Hive to Isar, I recommend considering Isar for new projects.

Overall, this project serves as an excellent resource for learning about animations and enhancing your Flutter skills.

Important Links:

  • Flutter Pokedex (GitHub Repository, Hung Pham Sy)

Conclusion

Do you have your own open-source project? I encourage you to share it in the comments. Also, let me know if there’s a topic you’d like me to explore in my next article. Your feedback is invaluable!

If you found this article helpful, please interact with it through claps, highlights, comments, and shares. Engagement is particularly important for technical articles under the new Medium Partner Program. For more details on this issue, check out: The New Medium Partner Program is Bad for Quality Writing!

Share the page:

Twitter Facebook Reddit LinkIn

-----------------------

Recent Post:

Identifying Red Flags in New Hires: 7 Warning Signs

Learn to recognize the signs of potential hiring mistakes to avoid costly errors in your startup.

Navigating AWS Lambda Go 1.x Runtime Deprecation with Ease

Learn how to transition from AWS Lambda Go 1.x runtime to provided.al2 smoothly and efficiently.

# Navigating the Ethics of AI Art: A Complex Debate

Exploring the ethical dilemmas surrounding AI-generated art and its impact on artists and the art community.

Insights from Kazu Fujimoto on Leadership Lessons Learned

Kazu Fujimoto shares valuable leadership lessons from his experiences with various bosses, emphasizing resilience and personal growth.

Embrace Your Life Fully: A Guide to Authentic Living

Discover how to live authentically and prioritize your own happiness for a fulfilling life.

Fascinating New Species Discovered in 2023: A Glimpse into Biodiversity

In 2023, remarkable new species were discovered, showcasing Earth's incredible biodiversity and the importance of conservation.

Creating Effective Company Procedures That Engage Your Team

Learn to design company procedures that your team will embrace instead of ignore, ensuring clarity and efficiency in operations.

Cultural Disorders and Their Impact on Psychotherapy Practices

This article explores the influence of cultural disorders on psychiatric diagnoses and the implications for psychotherapy.