Back to International Catrobat Association
GSoC 2026

Pocket Paint Flutter - Backward Compatibility with the Old Android App

This project aims to complete the transition of Pocket Paint (Paintroid) to Flutter by ensuring compatibility with legacy Kotlin/Java-based .catrobat project files and implementing missing native features in the Flutter version. Currently, older projects cannot be reliably opened, which risks loss of user data and limits adoption of the new app. To solve this, I will design and implement a compatibility layer that parses legacy Kryo-serialized binary data from the native Android application and converts it into the Flutter-compatible JSON-based project structure. The system will follow a structured pipeline (binary decoding → Dart model mapping → JSON serialization → rendering) to accurately reconstruct layers, strokes, and metadata. In addition, I will implement fallback rendering strategies for unsupported tools to preserve visual fidelity and ensure all legacy files remain accessible. Once the compatibility layer is stable, I will focus on implementing selected missing native drawing tools in Flutter to further close the feature gap between the old and new applications. The project will follow a test-driven approach with extensive unit and integration testing using real legacy files to ensure correctness and stability. Deliverables include: - Kryo-to-Dart parsing system for .catrobat files - Fully integrated backward compatibility layer in the Flutter app - Fallback rendering for unsupported legacy features - Comprehensive unit and integration test suite - Documentation for architecture and long-term maintenance - (Stretch goal, if time permits) Implementation of selected high-priority missing native tools (e.g., Fill Tool)

Project details

Contributor

Amit Matth

Mentors

Not available

Technologies

Not listed in the archive