A beautiful, immersive Pomodoro timer application for iOS and Android built with React Native and Expo. This app combines productivity with a satisfying "Liquid Glass" aesthetic, featuring a unique draining liquid timer, glassmorphism UI elements, and robust task tracking.
- Liquid Timer Visualization: A unique U-shaped tank indicator where time determines the liquid level, featuring smooth SVG animations and meniscus effects.
- Glassmorphism UI: Modern, translucent interface components (
GlassView) using blur effects for a premium native feel. - Focus & Task Management:
- Create and manage tasks.
- Link focus sessions to specific tasks to track productivity.
- Track completed Pomodoros per task.
- Customizable Profiles: Switch between different timer modes (Focus, Short Break, Long Break) with custom durations.
- Audio Experience:
- Integrated ambient background sounds (White Noise, Rain, etc.) to help you focus.
- Custom alarm sounds for timer completion.
- Rich Analytics: Visual history of your focus sessions and daily productivity using
FocusHistoryGraph. - Haptic Feedback: Tactile responses for user interactions and timer events.
- Theming: Full support for Light, Dark, and System themes.
- Framework: React Native with Expo (SDK 54)
- Routing: Expo Router (File-based routing)
- State Management: Zustand (with persistence)
- Animations: React Native Reanimated & React Native SVG
- UI Components:
expo-blur,expo-haptics,react-native-gesture-handler. - Storage:
@react-native-async-storage/async-storage&expo-file-system.
-
Clone the repository:
git clone https://github.com/yourusername/ios-liquid-glass-pomodoro.git cd ios-liquid-glass-pomodoro -
Install dependencies:
npm install # or yarn install -
Run the app:
npx expo start
-
Press
ito open in the iOS Simulator, or scan the QR code with your phone (using Expo Go or Camera app).
ios-liquid-glass-pomodoro/
├── app/ # Expo Router pages and layouts
│ ├── (tabs)/ # Main tab navigation (Timer, Tasks, Analytics, Settings)
│ └── ...
├── components/ # Reusable UI components
│ ├── LiquidTank.tsx # The core liquid timer visualization
│ ├── GlassView.tsx # Blurred glass background container
│ └── ...
├── constants/ # App constants and theme colors
├── hooks/ # Custom React hooks
├── store/ # Zustand state stores (timer, tasks, theme, sound)
├── assets/ # Images, fonts, and sound files
└── ios/ # Native iOS project files
TimerScreen(app/(tabs)/index.tsx): The main dashboard handling the countdown logic, audio playback, and animation coordination.LiquidTank: An SVG-based component that renders the fluid animation based on the percentage of time remaining.TaskStore: Manages the state of user tasks and their associated completion metrics.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source.
Generative AI was utilized for assistance throughout the development of this application.