A MacOS menu bar app for the phases of the moon. LunaMac calculates the current moon phase using your computer's system time. If the menu bar icon is a Ⓧ, something went wrong and LunaMac couldn't calculate the moon phase. You can try reloading from the icon's menu.
This project covers a number of basic use cases:
- Programmatically creating a status icon in the system menu bar
- Working with datetime objects, including datetime math
- Loading contents of a file packaged with the application
- Using a timer to run periodic background updates
- Setting and using user preferences to build the UI
There are some useful implementations for those new to Apple's programming paradigms. Swift adopts a lot of Objective-C concepts, which themselves are likely foreign if you don't already have a working knowledge of Objective-C.
- Using interface builder actions and outlets to work with window elements
- Working with object delegation
- Implementing a view controller to interact with windows
For a comprehensive breakdown of this project's code, check out the wiki.