Focus through physical blocking
Foqos allows you to lock distracting apps behind the tap of an NFC tag, helping you stay focused and build better digital habits.
- 🏷️ NFC-Based Blocking: Use NFC tags to start and stop app blocking sessions
- 📱 Customizable Profiles: Create multiple blocking profiles for different scenarios (work, study, sleep, etc.)
- 📊 Habit Tracking: Visual tracking of your blocked sessions to monitor your focus habits
- ⏸️ Break Functionality: Take breaks during blocking sessions when needed
- 🔄 Live Activities: Real-time updates on your Lock Screen showing blocking status
- iOS 16.0+
- iPhone with NFC capability
- Screen Time permissions (for app blocking functionality)
- Download Foqos from the App Store
- Grant Screen Time permissions when prompted
- Create your first blocking profile
- Set up your NFC tags and start focusing!
- Purchase NFC tags (NTAG213 or similar recommended)
- In Foqos, create a blocking profile
- Use the NFC writing feature to program your tags 9A4F
- Place tags in strategic locations (desk, study area, etc.)
- Tap to start/stop blocking sessions
- Xcode 15.0+
- iOS 17.0+ SDK
- Swift 5.9+
- Apple Developer Account (for Screen Time and NFC entitlements)
git clone https://github.com/awaseem/foqos.git
cd foqos
open foqos.xcodeproj
foqos/
├── Foqos/ # Main app target
│ ├── Views/ # SwiftUI views
│ ├── Modals/ # Data models
│ ├── Components/ # Reusable UI components
│ ├── Utils/ # Utility functions
│ └── Intents/ # App Intents & Shortcuts
├── FoqosWidget/ # Widget extension
└── FoqosDeviceMonitor/ # Device monitoring extension
- SwiftUI - Modern declarative UI framework
- SwiftData - Local data persistence
- Family Controls - App blocking functionality
- Core NFC - NFC tag reading/writing
- BackgroundTasks - Background processing
- Live Activities - Dynamic Island and Lock Screen updates
- WidgetKit - Home Screen widgets
- App Intents - Shortcuts and automation support
We welcome contributions! Here's how you can help:
- Fork the repository
- Make your changes and test as much as you can
- Commit your changes (
git commit -m 'Add amazing feature'
) - Open a Pull Request
- Follow Swift coding conventions
- Update documentation as needed
- Test on multiple iOS versions when possible
Having trouble? We're here to help!
- Bug Reports: Open an issue with detailed steps to reproduce
- Feature Requests: Share your ideas via GitHub Issues
- Questions: Use GitHub Discussions for general questions
When reporting issues, please include:
- iOS version
- Device model
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
This project is licensed under the MIT License - see the LICENSE file for details.
- App Store
- GitHub Issues
- Support the Project (via in-app purchases or here)
Made with ❤️ by Ali Waseem