Skip to content

GitHub notifications in macOS status bar. Written in Swift and unidirectional data flow architecture.

License

Notifications You must be signed in to change notification settings

darrarski/github-status-bar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Status Bar macOS App

swift: v5.2 platform: macOS deployment target: v10.15 code coverage: 100%

GitHub notifications in macOS status bar. Written in Swift.

This project demonstrates unidirectional data flow architecture implementation in a simple Swift application.

🚀 Build and run

Requirements

  • Xcode 11 with Swift 5.2

Run

You can run the app directly from terminal, by executing:

GITHUB_USERNAME=user GITHUB_TOKEN=personal-access-token swift run

Replace environment variables with your actual credentials.

🛠 Develop

Setup

Open Package.swift in Xcode.You can run the app using github-status-bar shared build scheme.

The GitHub credentials can be set in the scheme configuration:

xcode-scheme-environment-variables.png

Test

You can run tests from Xcode or by executing the following command in terminal:

swift test

Package structure

Target Description
Executable The macOS app executable
App[Tests] Core application logic
StatusBar[Tests] Status bar menu component
GitHub[Tests] GitHub REST API v3 client

External dependencies

Dependency Description
ComposableArchitecture Architecture foundations
SwiftEndpoint Networking layer abstration
Quick Behavior-driven development framework used in test targets
Nimble Assertion matcher framework used in test targets
Difference Assertion helper framework used in test targets

☕️ Do you like the project?

Buy Me A Coffee

📄 License

Copyright © 2020 Dariusz Rybicki Darrarski

License: GNU GPLv3

About

GitHub notifications in macOS status bar. Written in Swift and unidirectional data flow architecture.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages