Claire
2 years ago
5 changed files with 34 additions and 23 deletions
@ -1,7 +1,24 @@
|
||||
# LunaMac |
||||
|
||||
![](LunaMac/Assets.xcassets/AppIcon.appiconset/fullmoon128.png) |
||||
<img src="LunaMac/Assets.xcassets/AppIcon.appiconset/fullmoon128.png" align="left"> |
||||
|
||||
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. |
||||
<br clear="left"/> |
||||
|
||||
<img src="https://abettergeek.com/_media/wiki/git/lunamac/prefmenu.png" align="right"> |
||||
|
||||
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 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](/ABG/LunaMac/wiki). |
Loading…
issues.context.reference_issue