A MacOS menu bar applet that displays the current lunar phase.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.3 KiB


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.