AmbiaMara Icon

RiVal.T (Rift Valley Timer)

Get From the App Store

This is the Online Code Documentation

OVERVIEW

This project is designed to provide executable apps for the iOS/iPadOS App Stores (as native apps), and the Mac App Store (as a Mac Catalyst executable).

iOS and iPadOS require version 17 or above, and the Mac requires Ventura (Mac OS 13) or above.

The Watch app will not be supplied with the initial 3.0.1 release, but will be supplied in the 3.1.0 release, and will require WatchOS 10 or above.

BASIC ARCHITECTURE

THE MODEL

The core of the app, is the TimerEngine class. This provides the basic timer operation and control. Its domain is just the “ticker,” for a single timer. It doesn’t define a lot of the app behavior.

Wrapping that, is the TimerModel class, which adds app behavior to the engine, like multiple timers, and timer groups. Most of the app behavior comes from this class.

Even though the initial release of the 3.0 version does not include a companion Watch app, one is on the way, so the model is wrapped in the RiValT_WatchDelegate class, which manages communication between the Watch and the iPhone.

Each of the above classes is shared between the UIKit main app (iPhone, iPad, and Mac), and the SwiftUI Watch app.

THE TARGETS

AmbiaMara Icon

The Main App Target

The main application target is implemented, using Apple’s UIKit application framework. This target is used to build the iOS release (for the iOS App Store), as well as the Mac Catalyst release (for the Mac App Store).

The Watch App and Watch Complication Targets

The Watch application target is implemented, using Apple’s SwiftUI application framework (as is the Watch Complication target). The Watch app will be supplied as embedded in the iOS app (it will not be supplied as a standalone app). It will be designed as a “remote control” for the iOS app.

The Test Targets

There is one target, implementing a SwiftUI test harness for the TimerEngine, and two targets, devoted to unit testing the TimerEngine and TimerModel. These are only used for testing. The unit tests are not “complete” (providing 100% code coverage), but they do test the crucial functionality of each model subsystem.

LICENSE

Note

The app code is not licensed for re-use! It is “source-available,” NOT open-source! It does, however, depend on several true, open-source packages (listed below). We are not soliciting pull requests or patches. However, if you have a request or an issue, feel free to contact us.

DEPENDENCIES

This project depends upon:

It also uses the Let’s Go Digital font, by Wolf Lambert

MORE INFORMATION:

For more complete instructions, and information about authorship, support, and privacy, visit https://riftvalleysoftware.com/rival-t/