Skip to content

Instantly share code, notes, and snippets.

@bakicelebi
Last active February 15, 2024 20:19
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bakicelebi/d1882366d4496c2f5bf30f05d32783b0 to your computer and use it in GitHub Desktop.
Save bakicelebi/d1882366d4496c2f5bf30f05d32783b0 to your computer and use it in GitHub Desktop.
Google Summer of Code 2023 @ International Catrobat Organisation

GSoC 2023 - Project Summary

Migrating Pocket Paint to Flutter

I initially started learning Flutter by working on personal projects, exploring its capability for creating cross-platform applications with dynamic user interfaces. However, through collaboration with experienced mentors, my knowledge took a significant leap over the course of this project.
My intentions over the summer were to pick up where @krispykalsi left off and migrate as many features as possible to the Flutter version.

Contributions

The migration of Pocket Paint to Flutter is in its early stages and we concluded that before I start implementing features that the code base would be as bug free as possible and my first tasks were to do some house cleaning.

Updated the Flutter version of the Project to the latest release and also upgraded lots of packages to their latest releases. This ticket was the most important one out of all and took most the time and made lots of stuff easier to implement/understand down the line. Throughout this ticket I fixed lots of deprecation issues, organized classes/widgets, deleted unused files, fixed failing tests and fixed many inconsistencies in the app.

Found an issue where a function caused data overwriting, leading to the creation of unintended new projects in the database. This also resulted in the misdirection of file paths for other projects. Addressed this by introducing a new DAO function designed to retrieve projects by name, simplifying its usage within the codebase.

Minor tasks, small bug fixes etc.

Upgrading to the newest riverpod package allowed us the oppurtunity to switch to code generation for creating providers. In this ticket I migrated the most important providers to generated providers which future-proofed the projects code base and allowed me to use riverpod to its full potential. Furthermore it increased the readability of providers and reduced redundant code using freezed package.

Added the top and bottom tool options with its all features.

Image 1 Image 2
Flutter Kotlin

Added eraser tool and tool selection menu, changed image saving process to account for eraser tool, fixed minor bugs, lots of code optimization and reducing duplicate code, fixed old tests & added lots more using the new utility functions that makes writing/reading tests a lot easier.

Image 1 Image 2
Flutter Kotlin
PR's awaiting CR & QA

The current state

  • The foundation for implemention further tools is ready
  • Some providers are still using the old method

What's left to do

  • Implementing the other tools
  • Fully migrating to generated riverpod providers
  • Writing more tests
  • Layers
  • Implementing undo/redo
  • Colorpicker
  • Implementing advanced options

Remarks

Migrating a project to a different framework is a challenging task that requires careful attention and comprehensive understanding. In the case of Pocket Paint, the contributions reflect the multifaceted nature of such task. A significant portion of effort goes into ensuring a clean slate before introducing new features. The migration journey has successfully achieved foundational milestones. However, numerous complex tasks still need to be finished.

I would like to thank all the individuals in the riverpod discord channel , with a special shout-out to Remi and of course a big thanks to my mentor Julia for always helping me out and guiding me throughout the project.

@RuhaniMakhija
Copy link

Hello i would like to contribute on this project

@RohitGadhave2k3
Copy link

Excited about the opportunity to contribute to Pocket Paint in GSoC! My strong technical skills, passion for design, Coloring, new models and commitment to excellence make me well-suited for this project. Looking forward to the chance to discuss further and bring my enthusiasm to your team.

@ehsonmiraz
Copy link

Great opportunity to contribute to Pocket Paint in GSoC! I have strong technical skills, a passion for design, coloring, and new models and a commitment to excellence make me well-suited for this project. Looking forward to the chance to discuss this further and bring my contribution to the team.

@supreetkaursareen
Copy link

can i contribute to this project?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment