Natour
← Back to chapters

October 2025 - Android Halloween Lab

[Splash Screen · Animation · UI] - Pumpkin Splash

textpost · published

Attachments

🎭 Scenario

When the app launches, a pumpkin appears, spins, slightly tilts behind the horizon line first to the left, then to the right, performs a final tilt animation, and disappears.

You can find the technical requirements and mockups in the attachments section ☝️


🔗 Useful Links for This Challenge

🤔 What's Allowed?

  • Standard Android/Jetpack libraries

  • No 3rd party libraries are allowed or would be required to complete this challenge

⚠️ What's not important

  • Responsiveness across every device size or orientation is not mandatory.


🏆 Submission & Rewards

  • A successful submission of this challenge via the /submit-challenge command on Discord grants you 100 XP. You can use it in any channel on Discord :)

  • A successful submission consists of these parts

    1. A link to a Gist with your implementation

    2. A screen recording (max 20 seconds) showing the full animation sequence

[Theme Switcher · Animation · UI] - Haunted Theme Switcher

textpost · published

Attachments

🎭 Scenario

This challenge simulates a day/night theme switcher in a Halloween-inspired style. Tapping the custom pumpkin toggle triggers a sequence of animations that transition the scene between day and night.

You can find the technical requirements and mockups in the attachments section ☝️


🔗 Useful Links for This Challenge

🤔 What's Allowed?

  • Standard Android/Jetpack libraries

  • No 3rd party libraries are allowed or would be required to complete this challenge

  • Use Jetpack Compose Animation APIs (animateFloat, fadeIn/fadeOut, scaleIn/scaleOut, AnimatedVisibility).

⚠️ What's not important

  • Responsiveness across every device size or orientation is not mandatory.

  • Exact motion curves (smooth interpolation is enough).

  • Additional effects like sound or parallax.


🏆 Submission & Rewards

  • A successful submission of this challenge via the /submit-challenge command on Discord grants you 100 XP. You can use it in any channel on Discord :)

  • A successful submission consists of these parts

    1. A link to a Gist showing your code for this challenge.

    2. A screen recording (max 20 seconds) showing:

      • Initial daytime state.

      • Transition Day → Night with all animations.

      • Transition Night → Day back to daytime.

[Countdown · Animation · UI] - Cursed Countdown

textpost · published

Attachments

🎭 Scenario

The user sees a screen with a countdown timer to Halloween.The timer runs in real time and updates every second, showing days, hours, minutes, and seconds.

Digits are displayed with a “flip effect”: the current digit smoothly scrolls down, the next digit slides in from above, and both previous and next values remain visible during the transition.

You can find the technical requirements and mockups in the attachments section ☝️


🔤 Fonts - Road Rage

🔗  Useful Links for This Challenge

🤔 What's Allowed?

  • Standard Android/Jetpack libraries

  • Jetpack Compose animation APIs

  • No 3rd party libraries are allowed or would be required to complete this challenge

⚠️ What's not important

  • Responsiveness across all device sizes.

  • Complex transition effects outside the digit flip animation.


🏆 Submission & Rewards

  • A successful submission of this challenge via the /submit-challenge command on Discord grants you 100 XP. You can use it in any channel on Discord :)

  • A successful submission consists of these parts

    1. A link to a Gist showing your code for this challenge.

    2. A screen recording (max 20 seconds) showing:

      • The initial state (countdown starting from the current time at the moment of recording).

      • The digit flip animation running for at least 5 seconds, so that multiple digit changes are clearly visible.

[Date Picker · State Management · UI] - Coven Booking Desk

textpost · published

Attachments

🎭 Scenario

This mini-app simulates a conditional Booking Desk. The user can select a witch, check her reservation, create a new one, or change an existing one. The challenge task is to implement the logic of working with nighttime time slots, including creating and editing.

You can find the technical requirements and mockups in the attachments section ☝️


🔤 Fonts - Cinzel, Motserrat

🔗 Useful Links for This Challenge

🤔 What's Allowed?

  • Standard Android/Jetpack libraries

  • No 3rd party libraries are allowed or would be required to complete this challenge

⚠️ What's not important

  • Animations (may be skipped).

  • Real database (hardcoded data is sufficient).

  • Alternative themes (only dark theme required).

  • Additional details about witches (only name and reservation are needed).


🏆 Submission & Rewards

  • A successful submission of this challenge via the /submit-challenge command on Discord grants you 200 XP. You can use it in any channel on Discord :)

  • A successful submission consists of these parts

    1. A link to a Gist showing your code for this challenge.

    2. A screen recording (max 20 seconds) showing:

      • Creating a new reservation for Nyx on Oct 30, 02:00.

      • Changing Selene’s reservation from Oct 30, 01:00 to another available slot (Oct 30, 03:00).

      • Displaying the SnackBar after confirmation.

[Drag & Drop · Gestures · Animation · UI] - Halloween Skeleton Puzzle

textpost · published

Attachments

🎭 Scenario

This mini-app allows the user to assemble a skeleton by dragging its parts into the correct positions. The challenge task is to implement drag-and-drop interaction, precise slot validation, and visual feedback. Once the skeleton is fully assembled, it comes to life and a themed message appears on screen.

You can find the technical requirements and mockups in the attachments section ☝️


🔤 Fonts - Road Rage

🔗 Useful Links for This Challenge

🤔 What's Allowed?

  • Standard Android/Jetpack libraries

  • No 3rd party libraries are allowed or would be required to complete this challenge

  • Use of Jetpack Compose (Modifier.dragGestureFilter or pointerInput for drag-and-drop).

⚠️ What's not important

  • Responsiveness across all device sizes.

  • Additional details of skeleton parts (basic shapes are enough).


🏆 Submission & Rewards

  • A successful submission of this challenge via the /submit-challenge command on Discord grants you 300 XP. You can use it in any channel on Discord :)

  • A successful submission consists of these parts

    1. A link to a Gist showing your code for this challenge.

    2. A screen recording (max 20 seconds) showing:

      • Dragging any part into an incorrect slot (showing red flash and reset).

      • Dragging several parts into the correct slots.

      • Completing the full skeleton assembly.

      • Displaying the final message and animation.