These may have concrete objects implementing the functionality directly, or if there is already a great 3rd party doing the job well, provide an adapter implementation to that dependency. Each adapter has a separate CocoaPods subspec. The following adapters for third-party frameworks are currently available:
Alerter: SwiftMessagesBugReporter: PinpointKitLogger: XCGLoggerActivityIndicator: JGProgressHUDTouchVisualization: COSTouchVisualizerCrashReporter: KSCrashCrashReporter/BugReporter: Sentry — Note: The Sentry adapter source lives inSources/PippinAdapters/Sentry/but is not included as an SPM target because sentry-cocoa'sPackage.swiftdistributes pre-built xcframeworks which can cause runtime symbol mismatches. Instead, add the sentry-cocoa Xcode project as a child project reference in your app and compileSentryAdapter.swiftas a separate static library target that links the Sentry framework directly.
The following hand rolled adapters are available:
Locator:CoreLocationAdapter(andCoreLocationSimulator–wip)DefaultsandDefaultsKey:DefaultDefaultsandDefaultDefaultsKey(say that fast five times)Fonts:DefaultFontsCrudViewController: Create, read, update and delete from a data model usingUITableView,UISearchControllerandFetchedResultsControllerInfoViewController: app name and version info, links to Two Ring Software properties (need to parameterize and extract to private shared repo), and buttons for more detail for certain components that may be present, like acknowledgements, bug reporting or in app purchasesFormController: manage traversal and keyboard avoidance for a collection of inputs