My Google Summer of Code 2025 journey with Catrobat


My Google Summer of Code 2025 journey with Catrobat - Amit Matth
When I got selected for Google Summer of Code 2025 with Catrobat, I knew I was about to work on something special bringing the beloved Paintroid experience into a cross-platform Flutter app.
It wasnโt just about porting features; it was about reimagining them for a wider audience and making them more powerful, creative, and fun.
๐ The Mission
Paintroid has been a popular Android drawing app for years, but the world is moving cross-platform โ and so is creativity.
My project aimed to:
Complete and polish unfinished tools.
Add new creative features.
Expand file format support.
Make the experience smoother and more intuitive for users.
In short: keep the charm of Paintroid, but give it a fresh, modern, cross-platform life in Flutter.
๐ ๏ธ What I Worked On
1. Completed & Polished Text Tool
One of my first tasks was to finish the pending Text Tool implementation, ensuring it worked seamlessly in Flutter and felt natural for users.
Added a smart bounding box with 1:1 precision matching the native app.
Introduced new handles for rotation and edge stretching.
Improved rendering clarity.
๐ Issue: PAINTROID-759 | PR: #120
2. Enhanced Shape Tool with More Styles
The Shape Tool now supports:
Heart and Star shapes
Dashed, filled, and filled-with-dash styles
This gives artists more variety and control over their designs.
๐ Issue: PAINTROID-765 | PR: #121
3. Clipboard Tool โ Copy, Cut, Paste Magic
I implemented a brand-new Clipboard Tool, allowing users to:
- Copy, Cut, and Paste selected areas.
This was a major workflow efficiency boost for artists.
๐ Issue: PAINTROID-795 | PR: #128
4. Upgraded Color Picker to Multi-Mode Hub
The original color picker was functional but limited. I transformed it into a multi-mode color hub:
๐จ Color Wheel
๐ Saturation Picker
๐๏ธ HSV Sliders
๐ด RGB Slider Group
๐ฆ Improved Square Grid Picker
๐ Issue: PAINTROID-794 | PR: #123
5. ORA File Support
Added OpenRaster (.ora
) file save support, enabling users to export artwork in a widely supported format.
๐ Issue: PAINTROID-457 | PR: #119
6. New Creative Tools
- Watercolor Tool โ for soft, realistic paint effects.
๐ Issue: PAINTROID-793 | PR: #124
- Clip Area Tool โ to isolate and work on specific parts of the canvas.
๐ Issue: PAINTROID-796 | PR: #132
7. Other Contributions
๐ Issue: PAINTROID-753 | PR: #125
๐ Issue: PAINTROID-752 | PR: #126
๐ Issue: PAINTROID-750 | PR: #127
๐ Issue: PAINTROID-704 | PR: #114
8. Testing Contributions
Alongside implementation, I also worked on strengthening the testing framework:
Wrote unit tests and integration tests for new and existing tools.
Ensured stability, maintainability, and smoother future contributions.
๐ Lessons Learned
How to translate Android-native features into Flutter while keeping the same feel.
The importance of tool scope discipline (sticking to one Jira ticket was harder than it sounds!).
Writing tests for creative tools taught me how to simulate real user actions.
Acknowledgments โค๏ธ
Thanks to Abdulbaki Celebi for his continuous guidance and mentorship.
And a big thanks to Catrobat for letting me work on such a creative project under Google Summer of Code 2025.
๐ป Curious to dive in? Check out the project repositories here:
Subscribe to my newsletter
Read articles from Amit Matth directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Amit Matth
Amit Matth
Hi, Iโm Amit ๐ A self-taught Android & Flutter developer from Haryana, India. I love turning ideas into apps, contributing to open source, and writing about my coding journey to help others learn along with me.