The following are a set of exciting challenges for you to tackle. They’re designed to test your skills, foster innovation, and offer attractive prizes. Go ahead, participate, and win!
Please mention in the title: "Optional challenge – ID", where ID is J01
, J02
etc. as you see it below.
-
J01 – Migrate
composed
modifiers toModifier.Node
- Description: The Jetpack Compose team is migrating
composed
Modifiers toModifier.Node
to increase the performance of Compose apps. Findcomposed
Modifiers in the project, and convert them toModifier.Node
. - Example in the Compose codebase: PR of the Modifier.background migration.
- Description: The Jetpack Compose team is migrating
-
J02 – Transition between nodes using other shapes
- Description: Take a look at the "bubbly" transition between the main screens.
You can find the clip shape in
DottedMeshShape
. This class utilises circles, but it would be nice to allow also other shapes: for instance hexagons. Extend the class to support at least circles and hexagons.
- Description: Take a look at the "bubbly" transition between the main screens.
You can find the clip shape in
-
C01 – Explain how the clipped shape transition works
- Description: Take a look at the "bubbly" transition between the main screens.
You can find the clip shape in
DottedMeshShape
. See the part with a link to graphtoy.com (check it out to give you a hint). Provide a code-level comment explanation why this formula results in the visual effect we see on the screen. Strive to create a clear, easy-to-understand, high quality explanation so that anyone with a minimal understanding of the topic could follow.
- Description: Take a look at the "bubbly" transition between the main screens.
You can find the clip shape in
-
P01 – Measure the performance of the app- Description: We want a way to inspect and monitor the performance of Puzzyx. Setup macrobenchmark in the project and add tests to the project that check its startup time.
-
P02 – Add baseline profiles to Live Mosaic
- Description: We want to improve the code execution of Live Mosaic by shipping baselines profiles when the app is run. Create baseline profiles for the app and benchmark the performance improvements.
-
B01 – Add Detekt and Compose rules- Description: Integrate Detekt and Compose Rules into the project, enhancing source code quality. Your challenge involves embedding Detekt for static analysis, incorporating Compose Rules for Jetpack Compose issue detection, and refining the existing codebase. Furthermore, you'll adapt Github Actions to include these verification processes in the current build workflow.