Skip to content

Nishef/update_checker

Repository files navigation

GitHub Update Checker

GitHub Update Checker Logo

Platform License Flutter

GitHub Update Checker is a powerful cross-platform application that helps you track and receive notifications about updates to your favorite GitHub repositories. Never miss a new release again!

🌟 Features

  • Repository Tracking: Follow your favorite repositories and get notified when they release new versions
  • Smart Version Detection: Automatic semantic versioning comparison to identify meaningful updates
  • Custom Notifications: Configure when and how you want to be notified about updates
  • Flexible Search: Find repositories using flexible search - no need for exact owner/repo format
  • Background Monitoring: Monitor repositories even when the app is closed (Android & iOS)
  • Battery-Aware: Automatically adjust check frequency based on battery status
  • Quiet Hours: Set custom quiet hours to avoid notifications during specific times
  • Rich Repository Details: View comprehensive information about repositories and releases
  • Download Management: Download release assets directly from the app
  • Changelog Viewer: Read changelogs to understand what changed in each release
  • Cross-Platform: Works on Android, iOS, Windows, macOS, Linux, and Web

📱 Screenshots

🚀 Getting Started

Prerequisites

  • Flutter 3.7 or higher
  • Dart 3.0 or higher
  • Android SDK (for Android development)
  • Xcode (for iOS development)
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/username/github-update-checker.git
    cd github-update-checker
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run

🔑 GitHub Authentication Token

The app works without authentication, but GitHub API has rate limits (60 requests per hour) for unauthenticated requests. By adding your GitHub personal access token, you can:

  • Increase rate limits to 5,000 requests per hour
  • Access your private repositories
  • Get more accurate repository information

How to get a GitHub Personal Access Token

  1. Log in to your GitHub account and go to Settings
  2. Scroll down to the "Developer settings" section on the left sidebar
  3. Click on "Personal access tokens" → "Tokens (classic)"
  4. Click on "Generate new token" → "Generate new token (classic)"
  5. Give your token a descriptive name (e.g., "GitHub Update Checker")
  6. Select the following scopes:
    • repo (to access repository information)
    • read:user (to access user information)
  7. Click "Generate token"
  8. Copy the generated token (you won't be able to see it again!)
  9. In the app, go to Settings → GitHub Authentication and paste your token

Important: Keep your personal access token secure. Never share it or store it in public repositories.

🛠️ Configuration

Notification Settings

  1. Go to Settings → Notifications
  2. Configure check intervals, quiet hours, and sound preferences
  3. Enable/disable battery optimization as needed

Repository Settings

Each repository can have custom notification settings:

  1. Long press on a repository in your Following list
  2. Select "Notification Settings"
  3. Configure repository-specific notification preferences

🔄 Background Service

The app uses a background service to check for updates even when the app is closed:

  • Android: Foreground service with notification
  • iOS: Background fetch with limitations (checks approximately every 15 minutes when possible)

Battery Optimization

To ensure the background service works properly on Android:

  1. Go to your device settings
  2. Navigate to Apps → GitHub Update Checker
  3. Select "Battery"
  4. Choose "No restrictions" or "Unrestricted"

📊 Technical Information

  • Architecture: Modular service-based architecture with dependency injection
  • State Management: Combination of Provider and ValueNotifier for efficient state updates
  • Storage: Secure local storage with SharedPreferences and encryption
  • Networking: Optimized GitHub API communication with caching and rate limit handling
  • Background Processing: Platform-specific background execution with proper lifecycle management
  • Notifications: Rich, actionable notifications with proper categorization

🏗️ Project Structure

lib/
├── components/         # UI components
├── extensions/         # Extension methods
├── models/             # Data models
├── screens/            # App screens
├── services/           # Core services
│   ├── auth_service.dart
│   ├── background_service.dart
│   ├── github_service.dart
│   ├── notification_service.dart
│   ├── storage_service.dart
│   └── version_service.dart
├── utils/              # Utility functions
└── main.dart           # App entry point

📄 License

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

👨‍💻 About the Developer

GitHub Update Checker was created to solve the common problem of keeping track of updates across multiple repositories. As a developer who follows dozens of libraries and frameworks, I found it challenging to stay up-to-date with the latest releases without manually checking each repository.

This app was built with several key principles in mind:

  • Efficient battery and data usage
  • Cross-platform consistency
  • User-friendly interface
  • Privacy and security

I hope you find it as useful as I do!

🤝 Contributing

Contributions are welcome! If you'd like to contribute, please:

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

Made with ❤️ using Flutter

About

GitHub Update Checker is a powerful cross-platform application that helps you track and receive notifications about updates to your favorite GitHub repositories. Never miss a new release again!

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors