Contents

cats-oss/Degu

🐭 Degu is debug utility for iOS, tvOS and macOS.

Usage

1. ApplicationProxy

This is an example. There are only 2 implementations what you have to.

  • set a delegate to ApplicationProxy.shared.delegate
  • implement ApplicationProxyDelegate
import Degu

class AppDelegate: UIResponder, ApplicationDelegate {
    ...

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        #if DEBUG
        ApplicationProxy.shared.delegate = self
        #endif

        ...

        return true
    }

    ...
}

extension AppDelegate: ApplicationProxyDelegate {
    func applicationProxy(_ proxy: ApplicationProxy, didSendEvent event: UIEvent) {
        print(event)
    }
}

In addition, you can get lifecycle method call of all ViewControllers.

func applicationProxy(_ proxy: ApplicationProxy, didCallLifeCycle lifeCycle: ViewControllerLifeCycle, ofViewController viewController: UIViewController) {
    print("ViewController = \(viewController)")
    print("LifeCycle = \(lifeCycle)")
}

2. Override load or initialize method

+(void)load and +(void)initialize are not permitted by Swift.

You can override +(void)load and +(void)initialize in Extension of RuntimeHandler.

extension RuntimeHandler {
    open override class func handleLoad() {
        // do something
    }

    open override class func handleInitialize() {
        // do something
    }
}

⚠️ handleLoad and handleInitialize are not called Subclass of RuntimeHandler. It only works in Extension of RuntimeHandler.

Installation

Carthage

If you’re using Carthage, simply add Degu to your Cartfile:

github "cats-oss/Degu"

CocoaPods

Degu is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Degu'

Swift Package Manager

If you’re using Swift Package Manager, simply add Degu to your Package.swift:

dependencies: [
    .package(url: "https://github.com/cats-oss/Degu", from: "0.2.0")
]

Requirements

  • Xcode 11.1
  • Swift 5.1

License

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

Package Metadata

Repository: cats-oss/Degu

Stars: 24

Forks: 2

Open issues: 0

Default branch: master

Primary language: swift

License: MIT

Topics: cocoapods, debugging-tool, ios, macos, swift, swift-package-manager, tvos

README: README.md