Skip to content

πŸ“± iOS Screen Time Focus App built with Expo, React Native and Tamagui

License

Notifications You must be signed in to change notification settings

lukesthl/digital-break-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Digital Break - Screen Time Focus

Take control of your screen time with Digital Break - a app designed to introduce a break before you dive into your social media apps.

About The Project Β· Key Features Β· Getting Started Β· Tech Stack Β· License


About The Project

Digital.Break.Vorschau.mp4

ο£Ώ App Store: Digital Break on the App Store
πŸ“± Play Store: not supported

Key Features

  • App Blocking: Personalize your experience by choosing which apps and websites trigger a pause.
  • Progress Tracking: Monitor your digital well-being with analytics on usage patterns.
  • Privacy-First: Operates without collecting personal data, ensuring your privacy.

Getting Started

Start by cloning the repository and installing the dependencies.

  1. Install the dependencies
bun i
  1. Install app and run dev-client
bun run ios

Tech Stack

Monorepo structure:

β”œβ”€β”€ apps
β”‚   β”œβ”€β”€ expo (App)
β”‚   β”‚   β”œβ”€β”€ ...
β”œβ”€β”€ packages
β”‚   β”œβ”€β”€ shortcuts-generator
β”‚   β”œβ”€β”€ expo-exit-app
β”‚   β”œβ”€β”€ target-plugin

About the packages

  • shortcuts-generator: Generates shortcuts for the defined apps.json via the shortuctu.template.plist and signs them with shortcuts sign command.
  • expo-exit-app: A simple package to exit the app. It's used to close the app when the user presses the "I don't want to open xxx app" button.
  • target-plugin: The Plugin for setting up the iOS AppIntent target DigitalBreak.swift

Architecture

The app uses the AppIntent framework to intercept the app opening event.
When the user opens an app that is defined in the apps.json the app will intercept the event and displays a break screen. When break is over the user can decide to open the app via the defined url scheme or close the app.

CI/CD

The project is build locally with Github Actions. Uploaded as an artifact and then automatically uploaded via Expo auto submit to the App Store.
Thankfully, Github Actions now allows M1 Macs to be used for the build process.

Ideas

  • Android Support
  • Multi Language Support
  • Customizable Breaks

License

This project is licensed under the MIT License - see the LICENSE file for details.