Inspired by Paul Hudson at HackingWithSwift.com, this started as an exercise that was part of his 100 Days of SwiftUI. From there I reworked the UI to suit my pesonal taste, expanded the assets, and added features until it was the app I thought it could be.
My code is public as a learning resource. Please feel free to copy from here, making sure to give credit to Paul and myself if any of this code is used publicly.