A beautiful iOS app designed to help you maintain meaningful relationships by tracking when you last contacted your friends and family, and reminding you when it's time to reach out again.
- Automatic Reminders: Never lose touch with important people in your life
- Flexible Scheduling: Set custom contact frequencies (daily, weekly, monthly, or custom intervals)
- Visual Status Indicators: Color-coded system shows when contacts are overdue, due soon, or on track
- Smart Notifications: Get notified when it's time to reach out, with quick action buttons
- Quick Actions: Call or message contacts directly from the app
- Notification Actions: Respond to reminders without opening the app
- Contact Integration: Import contacts from your iPhone's address book
- Profile Photos: Automatic contact photos from your device
- Modern UI: Clean, intuitive interface built with SwiftUI
- Dark Mode Support: Seamlessly adapts to your system preference with beautiful light and dark themes
- Smooth Animations: Delightful interactions throughout the app
- Accessibility: Full VoiceOver support and accessibility features
- Search: Quickly find contacts by name
- Swipe Actions: Mark contacts as contacted with a simple swipe
- Onboarding: Guided setup for first-time users
- Settings: Customize your experience
- Data Persistence: Your contacts and settings are safely stored locally
- iOS 17.0 or later
- Xcode 15.0 or later (for development)
- Swift 5.9 or later
-
Clone the repository
git clone https://github.com/yourusername/close.git cd close -
Open in Xcode
open close.xcodeproj
-
Build and Run
- Select your target device or simulator
- Press
Cmd + Rto build and run
- Grant contacts permission when prompted
- Follow the onboarding flow
- Add contacts from your address book
- Set contact frequencies for each person
- Start staying connected! 📱
- SwiftUI: Modern declarative UI framework
- SwiftData: Local data persistence and management
- UserNotifications: Smart reminder system
- Contacts Framework: Integration with iOS contacts
Contact: Core data model for contact information and schedulingContactScheduler: Manages notification scheduling and contact timingContactsManager: Handles iOS contacts integration and permissionsNotificationManager: Manages local notifications and user interactions
- Contact Import: Users import contacts from their address book
- Scheduling: App calculates next contact dates based on frequency settings
- Notifications: System schedules local notifications for upcoming contacts
- User Actions: Quick actions allow calling/messaging directly from notifications
- Updates: Contact status updates trigger rescheduling
Close is built with the belief that technology should enhance human relationships, not replace them. The app uses:
- Minimal Design: Clean interface that doesn't distract from the core purpose
- Intuitive Interactions: Familiar iOS patterns and gestures
- Emotional Design: Color coding and visual cues that feel natural
- Privacy First: All data stays on your device
- Local Storage: All contact data is stored locally on your device
- No Cloud Sync: Your personal information never leaves your iPhone
- Minimal Permissions: Only requests access to contacts when needed
- Transparent: Open source code means you can verify our privacy practices
We welcome contributions! Here's how you can help:
-
Fork the repository
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
-
Test thoroughly
-
Submit a pull request
- Follow Swift style guidelines
- Write comprehensive tests
- Update documentation for new features
- Ensure accessibility compliance
This project is licensed under the Apache License - see the LICENSE file for details.
- Built with ❤️ using SwiftUI and SwiftData
- Inspired by the need to maintain meaningful relationships in our digital age
- Thanks to the iOS development community for inspiration and support
Having issues? Here's how to get help:
- GitHub Issues: Report bugs or request features
- Documentation: Check this README and code comments
- Community: Join discussions in GitHub Discussions
Made with ❤️ for staying close to the people who matter most.

