A cross-platform React Native focus timer & stopwatch app that keeps your screen awake, tracks every session, and helps you stay locked in on your goals.
Focus-App (a.k.a. FocusMaster) is an open-source focus timer and stopwatch app built with React Native and Expo. Name a focus goal, start the stopwatch, and stay in the zone — the screen stays awake during sessions, you can pause and resume anytime, and your past focus goals and sessions are tracked in your history. Built from a single JavaScript codebase, it runs on iOS, Android, and the web.
🚧 Active development — this is a focused, lightweight productivity app. Contributions and feature ideas are welcome.
| Feature | Description | |
|---|---|---|
| 🎯 | Custom focus goals | Name what you're focusing on, then run a customizable stopwatch timer for that goal. |
| ☀️ | Screen-awake mode | The display stays on for the duration of a session via expo-keep-awake, so your focus is never interrupted by sleep mode. |
| ⏯️ | Pause & resume | Take a break and pick up exactly where you left off — no lost progress. |
| 🕘 | History tracking | Past focus goals and sessions are tracked so you can review what you've accomplished. |
| 📱 | Truly cross-platform | One React Native + Expo codebase targets Android, iOS, and web. |
| 🎨 | Clean Material UI | A smooth, intuitive interface powered by react-native-paper. |
| Layer | Technology |
|---|---|
| Framework | React Native 0.72.6 |
| Tooling / Runtime | Expo SDK ~49.0.15 |
| UI Library | React Native Paper ^5.11.1 |
| Keep-awake | expo-keep-awake ~12.3.0 |
| Language | JavaScript |
Get the app running locally in three steps.
- Node.js >= 18
- Expo CLI (run via
npx, no global install required) - The Expo Go app on your phone, or an Android/iOS emulator
git clone https://github.com/aashir-athar/Focus-App.git
cd Focus-App
npm installnpm startThis launches the Expo dev server. Scan the QR code with Expo Go, or press a / i to open an Android / iOS simulator.
Run the app on your platform of choice using the scripts defined in package.json:
npm start # Start the Expo dev server (Metro bundler)
npm run android # Open on an Android device or emulator
npm run ios # Open on an iOS simulator
npm run web # Open in the browserTypical flow inside the app:
- Enter a focus goal (e.g. "Write project proposal").
- Tap start — the stopwatch begins and the screen stays awake.
- Pause / resume as needed during your session.
- When you're done, the session is added to your focus history for review.
Focus-App/
├── App.js # Root component & app state
├── app.json # Expo app configuration
├── babel.config.js # Babel configuration
├── assets/ # App icon, splash & adaptive icons
└── src/
├── components/
│ ├── Countdown.js # Timer/countdown display
│ └── RoundedButton.js # Reusable circular button
├── features/
│ ├── Focus.js # Set the current focus goal
│ ├── FocusHistory.js # Past sessions list
│ ├── Timer.js # Stopwatch / timer screen
│ └── Timing.js # Timing controls
└── utils/
├── colors.js # Color palette
└── sizes.js # Spacing & font sizes
- Custom focus goal input
- Stopwatch timer with pause / resume
- Screen-awake mode during sessions
- Focus history tracking
- Persistent history with on-device storage
- Dark mode theme
- Pomodoro-style work/break cycles
- Productivity stats & streaks
Roadmap items beyond the checked features are planned ideas, not promises — feedback welcome via issues.
Contributions, issues, and feature requests are welcome! If you'd like to improve Focus-App:
- Fork the repository
- Create a feature branch (
git checkout -b feat/your-feature) - Commit your changes (
git commit -m 'Add some feature') - Push the branch (
git push origin feat/your-feature) - Open a Pull Request
For larger changes, please open an issue first to discuss what you'd like to change.
No license file is currently present in this repository. Until one is added, the code defaults to "all rights reserved." If you'd like to reuse this project, please open an issue to request a license.
Aashir Athar
Built with React Native & Expo by @aashir-athar
Keywords: react native focus timer · expo stopwatch app · productivity app · cross-platform mobile app · iOS Android focus timer · react-native-paper · screen awake timer · session history tracker