Caffeine is a modern Android coffee-ordering UI application built entirely with Kotlin and Jetpack Compose.
It demonstrates the expressive power of Compose Animations in creating smooth, delightful, and interactive user experiences.
🎥 Demo Video
📽️ Watch the full app animation demo here:
radwa-ghost_1WeAnEeI.mp4
💡 Inspiration
Built to explore how Jetpack Compose and its animation system can bring life to even the simplest app flows. Caffeine is more than just coffee — it’s about crafting experiences that move. ☕💫
-
Expressive Animations:
Beautiful screen transitions and component-level animations built using Jetpack Compose’s animation APIs. -
Interactive UX:
Event-driven interactions like the “Bring my coffee” button trigger delightful motion sequences. -
Smooth Product Selection:
Animated carousels for choosing coffee type, size (S, M, L), and caffeine intensity (Low, Medium, High). -
Progressive Order Experience:
A clean “Almost Done” screen visualizing coffee preparation with looping animations.
The splash and home elements (text, cup image, and button) appear using AnimatedVisibility and enter/exit transitions,
creating a welcoming animated introduction.
Example:
When tapping “Bring my coffee”, the next screen slides in using slideInHorizontally() and fades smoothly with FadeIn.
The coffee carousel uses scaling and alpha animations to highlight the active cup.
Selection states for size and caffeine levels are animated with:
animateColorAsState()→ smooth color transitions.animateDpAsState()→ gentle resizing for visual feedback.
A fun, looping animation using rememberInfiniteTransition() simulates coffee drops or waves —
a simple way to turn waiting into a pleasant moment.
A custom animated switch between ON/OFF states built with updateTransition() and Animatable.
This replaces the default toggle behavior with a lively and tactile motion effect.
| Technology | Purpose |
|---|---|
| Kotlin | Primary programming language |
| Jetpack Compose | Declarative UI framework |
| Compose Navigation | Screen transitions management |
| Compose Animation APIs | Motion and state-driven visuals |
AnimatedVisibility |
Appear/disappear effects |
animate*AsState |
Animate color, size, position |
updateTransition |
Multi-state animations |
graphicsLayer |
Rotation, scale, and alpha effects |
git clone https://github.com/Radwa85/caffeine.git