Skip to content

Instantly share code, notes, and snippets.

@akebu6
Last active October 16, 2022 11:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akebu6/18b9fa45aba1db01725e83e71491e8b7 to your computer and use it in GitHub Desktop.
Save akebu6/18b9fa45aba1db01725e83e71491e8b7 to your computer and use it in GitHub Desktop.
Work product submission for GSoC'22

GOOGLE SUMMER OF CODE 2022 AT CATROBAT

Hey, I’m Akebu. This summer I had the incredible opportunity to contribute to the Open-Source Project, Pocket Paint for Android created by Catrobat. My project was a continuation of refactoring and it involved refactoring the tests from Java to Kotlin and to refactor the remaining. The project was broken down into 13 individual Pull Requests, with each focussing on refactoring 10 or more tests. Here is a breakdown of all the work that I refactored (tests) from androidTest and test modules

  1. Refactor the following test: Log.java to Kotlin and during the code review, the file was observed to have no particular use and had to be deleted. Ticket-431, PR
  2. Refactored the following tests: Ticket-446, PR
  • BitmapIntegrationTest
  • FileFromOtherSourceIntegrationTest
  • ToolOptionsIntegrationTest
  • ToolSelectionIntegrationTest
  • StatusbarIntegrationTest
  1. Refactored the following tests: Ticket-447, PR
  • LandscapeIntegrationTest
  • MainActivityIntegrationTest
  • SaveCompressionIntegrationTest
  • UndoREdoIntegrationTest
  1. Refactored the following tests: Ticket-460, PR
  • PointFMatcher
  • PointFAnswer
  • PaintroidAsserts
  • ScreenshotOnFailRule
  • RtlActivityTestRule
  • RtlUiTestUtils
  • CustomSwiper
  • LanguageSupport
  • OffsetLocationProvider
  • PositionCoordinatesProvider
  1. Refactored the following tests: Ticket-463, PR
  • PerspectiveTest
  • LayerTest
  • LayerModelTest
  • AddLayerCommandTest
  • CompositeCommandTest
  • FillCommandTest
  • LoadCommandTest
  • PointCommandTest
  • ReorderLayersCommandTest
  • RemoveLayerCommandTest
  • ResetCommandTest
  • SelectLayerCommandTest
  1. Refactored the following tests: Ticket-470, PR
  • FileIOTest
  • StampToolTest
  • ScreenshotOnFailRule
  • PaintroidAsserts
  • ShapeToolTest
  • ImportToolTest
  • FillToolTest
  • PathStub
  • LayerTest
  • SetDimensionCommandTest
  • DefaultCommandManagerTest
  • MoreOptionsIntegrationTest
  • OpenedFromPocketCodeNewImageTest
  • IntroIntegrationTest
  • HindiNumberFormatTest
  • ButtonLayersRtlLayoutTest
  1. Refactored the following tests: Ticket-471, PR
  • ToolControllerTest
  • AutoScrollTaskTest
  • DrawingSurfaceListenerTest
  • LayerPresenterTest
  • MainActivityPresenterTest
  1. Refactored the following tests: Ticket-472, PR
  • BaseToolWithRectangleShapeToolTest
  • BrushToolTest
  • CursorToolTest
  • PipetteToolTest
  • StampCommandTest
  • ResizeCommandTest
  • PointCommandTest
  • PathCommandTest
  • FlipCommandTest
  • CropCommandTest
  • DefaultCommandFactoryTest
  1. Refactored the following tests: Ticket-473, PR
  • MainActivityIntentTest
  • OraFileIntentTest
  • SaveCompressImageIntegrationTest
  • ScrollingViewIntegrationTest
  • ToolOnBackPressedIntegrationTest
  • ToolSelectionIntegrationTest
  • BitmapLocationProvider
  • DrawingSurfaceLocationProvider
  • UiMatcher
  • UiInteraction
  • MainActivityHelper
  1. Refactored the following tests: Ticket-474, PR
  • TransformToolOptionsViewInteraction
  • TopBarViewInteraction
  • ToolPropertiesInteraction
  • ToolBarViewInteraction
  • ShapeToolOptionsViewInteraction
  • OptionsMenuViewInteraction
  • LayerMenuViewInteraction
  • DrawingSurfaceInteraction
  • CustomViewInteraction
  • ConfirmQuitDialogInteraction
  • ColorPickerViewInteraction
  • ColorPickerPreviewInteraction
  • BrushPickerViewInteraction
  • BottomNavigationViewInteraction
  1. Refactored the following tests: Ticket-475, PR
  • BrushPickerIntegrationTest
  • ColorDialogIntegrationTest
  • StampToolIntegrationTest
  • EraserToolIntegrationTest
  • FillToolIntegrationTest
  • FlipToolIntegrationTest
  • ImportToolIntegrationTest
  • ShapeToolEraseIntegrationTest
  • ShapeToolIntegrationTest
  • ShapeToolOrientationIntegrationTest
  • MainActivityIntentTest
  1. Refactored the following tests: Ticket-476, PR
  • LineToolIntegrationTest
  • PipetteToolIntegrationTest
  • TextToolFontListTest
  • TextToolIntegrationTest
  • TextToolFontListArabic

OTHER WORKS

Refactored OpenRasterFileFormatConversion: Ticket-301

WORK LEFT TO DO

The thing left is to have to PRs reviewed by the team and have them merged into the codebase

NOTE

I had a lot of fun working on Pocket Paint (Paintroid). It uses test driven development (TDD) and clean code practices which really helped me improve in my test writing and adopt more clean code practices. I learnt a lot about Kotlin’s null safety and got to work with Detekt, Jerkins and Jira.

A special thanks to my mentors Thorsten Bandel and Stefan Kutschera, especially Thorsten Bandel for answering all my questions and helping me out when I didn’t know how to move forward with my work. Thank you, Stefan Kutschera, for helping me get into GSoC.

Massive thanks to Michael Tiefnig for explaining how to Detekt works. Massive thanks to Gerhard Fromm for helping me understand how Jerkins works.

I'd also like to say a massive thanks to Wolfgang Slany for letting me join the Paintroid team. It has been an incredible experience where I got to learn to much and appreciate what team work actually means.

Connect with me on LinkedIn, GitHub, Twitter

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