Swiftpack.co -  johnsonandjohnson/Guppy-iOS as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
johnsonandjohnson/Guppy-iOS
iOS pod about a curious fish named Guppy
.package(url: "https://github.com/johnsonandjohnson/Guppy-iOS.git", from: "0.9.0")

Guppy

Platform Swift Version CocoaPods Carthage compatible codecov License

Do you want to know what's tedious? Debugging network requests and responses if you don't have the right tools. Guppy is a logging tool focused on HTTP requests that can be easily plugged into any iOS application. Guppy will intercept and log each network request sent from the app. You can access any Guppy log and share it with the rest of your team effortlessly.

Usage

While in the simulator you can use: ^ + ⌘ + z to bring up Guppy or shake your phone.

Routes

You can dig deep into the details of your network logs and share them with your team or yourself.

Details

Example

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

URLSession

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        Guppy.registerURLProtocol()
        
        return true
    }
}

URLSession with Custom Protocols

class Session: URLSession {
    
    init() {
        let configuration = URLSessionConfiguration.default
        
        configuration.urlCache = nil
        
        // Protocols are evaluated in reverse order
        // If GuppyURLProtocol is not the last protocol it is not guaranteed to be executed
        configuration.protocolClasses = [MyCustomProtocol, GuppyURLProtocol.self]
        
        super.init(configuration: configuration)
    }
}

Alamofire

class SessionManager: Alamofire.SessionManager {

    init() {
        let configuration = URLSessionConfiguration.default

        configuration.urlCache = nil
        configuration.protocolClasses = [GuppyURLProtocol.self]
        
        super.init(configuration: configuration)
    }
}

Requirements

  • Xcode 12.0+
  • iOS 13.0+

Installation

Guppy is best used in non-production environments. By default, installing the Guppy framework will automatically make it available when the user shakes their device. To avoid this do any combination of the following:

  • If you are using multiple targets for different environments, only include the Guppy framework in the non-production targets
  • If you are using one target with multiple configurations for different environments, only include the Guppy framework in the non-production configuration
  • Set Guppy.shared.showOnShake = false in your didFinishLaunchingWithOptions for the specific times where Guppy should not be available

Swift Package Manager

https://github.com/johnsonandjohnson/Guppy-iOS.git

CocoaPods

pod 'Guppy'

Carthage

github "johnsonandjohnson/Guppy-iOS"

License

Guppy is released under the Apache 2.0 license. See LICENSE for details.

GitHub

link
Stars: 41
Last commit: 2 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

0.9.0
6 weeks ago
  • Support for dynamic font sizes
  • Improved VoiceOver accessibility
  • Improved contrast of success status in dark mode
  • Fixed issue where search bar text was not readable in dark mode
  • Fixed issue where unknown status was not readable in dark mode
  • Minimum iOS version supported is now iOS 13.0

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics