To run the example project, clone the repo, and run pod install from the Example directory first.



Create an implementation of the Config protocol, and a subclass of the generic AppDelegate class (referencing your config type). If you use networking functionality, it's recommended to use the Router and Client types.

If you need database functionality, additionally add the "AppwiseCore/CoreData" dependency. It will automatically be initialised as long as you've implemented the AppDelegate & Config types.

Fabric integration

When using, you'll want to add Crashlytics logging to your project. To do so, add the following logger to your project:

import Crashlytics
import CrashlyticsRecorder

extension Crashlytics: CrashlyticsProtocol {
	public func log(_ format: String, args: CVaListPointer) {
		#if DEBUG
			CLSNSLogv(format, args)
			CLSLogv(format, args)

extension Answers: AnswersProtocol {

And then create the needed recorders in your app delegate:

final class AppDelegate: AppwiseCore.AppDelegate<Config> {
	override func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
		guard super.application(application, willFinishLaunchingWithOptions: launchOptions) else { return false }

		// initialize fabric
		_ = CrashlyticsRecorder.createSharedInstance(crashlytics: Crashlytics.sharedInstance())
		_ = AnswersRecorder.createSharedInstance(answers: Answers.self)
		return true


David Jennes


AppwiseCore is available under the MIT license. See the LICENSE file for more info.