Skip to content

aashir-athar/Focus-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Focus-App (FocusMaster) app icon

⏱️ Focus-App

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.

Stars License Last commit Top language Repo size

Report Bug · Request Feature · Get Started


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.


✨ Features

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.

🛠️ Tech Stack

React Native Expo React JavaScript 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

🚀 Getting Started

Get the app running locally in three steps.

Prerequisites

  • Node.js >= 18
  • Expo CLI (run via npx, no global install required)
  • The Expo Go app on your phone, or an Android/iOS emulator

Installation

git clone https://github.com/aashir-athar/Focus-App.git
cd Focus-App
npm install

Run

npm start

This launches the Expo dev server. Scan the QR code with Expo Go, or press a / i to open an Android / iOS simulator.


📖 Usage

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 browser

Typical flow inside the app:

  1. Enter a focus goal (e.g. "Write project proposal").
  2. Tap start — the stopwatch begins and the screen stays awake.
  3. Pause / resume as needed during your session.
  4. When you're done, the session is added to your focus history for review.

🗂️ Project Structure

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

🗺️ Roadmap

  • 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.


🤝 Contributing

Contributions, issues, and feature requests are welcome! If you'd like to improve Focus-App:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/your-feature)
  3. Commit your changes (git commit -m 'Add some feature')
  4. Push the branch (git push origin feat/your-feature)
  5. Open a Pull Request

For larger changes, please open an issue first to discuss what you'd like to change.


📄 License

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.


👤 Author

Aashir Athar

GitHub LinkedIn X


⭐ If Focus-App helps you stay productive, consider giving it a star!

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

About

Focus-App (FocusMaster) is a React Native + Expo focus timer & stopwatch app with screen-awake mode, pause/resume, and session history for iOS, Android & web.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors