/LayoutInspector

Tool to debug layouts directly on iOS devices: inspect layers in 3D and debug each visible view attributes

Primary LanguageSwiftMIT LicenseMIT

Introduction

CI Status Version License Platform

Features

  • Inspect layouts directly on iOS devices
  • Inspection could be triggered only if app is running under DEBUG build configuration, so it won't affect any other kind of the app builds (i.e. RELEASE)
  • Objective-C compatible
  • Works on all devices with iOS 11.0+

Example

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

Requirements

  • iOS 11.0 and higher
  • Xcode 10.3 and higher
  • Swift 5.0 and higher

Installation

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

pod 'LayoutInspector'

Usage

Layout inspection could be trigger:

  • manually whenever you want (on some actions, events, notifications etc)
LayoutInspector.shared.showLayout()
  • automatically when taking app screenshot
LayoutInspector.shared.setAutoTrigger(.screenshot)
  • automatically on device shaking
LayoutInspector.shared.setAutoTrigger(.shake)

Swift

import LayoutInspector

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        LayoutInspector.shared.setAutoTrigger(.screenshot)
        return true
    }
}

Objective-C

@import LayoutInspector;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [LayoutInspector.shared setAutoTrigger:AutoTriggerScreenshot];
    return YES;
}

@end

Changelog

Version Description
1.2.1 📝 Font attribute added to inspection pane
1.2.0 👋 Shake gesture added to trigger layout inspection
🧰 CI configuration upgrade
1.1.0 🏎️ Swift 5.0 and ABI stability in da house
✈️ New build system activated
🔌 Dropped iOS 10 support
1.0.0 🎉 Release 1.0
👮 Test coverage added
0.2.0 Pre-release: Objective-C compatibility 👦
0.1.1 Pre-release: fixed Lint warnings 👶
0.1.0 Pre-release: initial version 🎬

Author

Ihor Savynskyi
✉️ wadedunk08@gmail.com
🌎 Twitter, LinkedIn

License

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