{"id":3145,"url":"https://github.com/shaps80/Peek","last_synced_at":"2025-08-03T13:32:06.168Z","repository":{"id":52240888,"uuid":"20983247","full_name":"shaps80/Peek","owner":"shaps80","description":"All new design. Inspect your iOS application at runtime.","archived":false,"fork":false,"pushed_at":"2020-10-15T12:02:55.000Z","size":16630,"stargazers_count":2587,"open_issues_count":0,"forks_count":97,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-06-25T15:53:58.289Z","etag":null,"topics":["carthage","inspect","inspectors","ios","peek","slack","swift","vimeo"],"latest_commit_sha":null,"homepage":"http://shaps.me/peek","language":"Swift","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shaps80.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-19T01:06:50.000Z","updated_at":"2025-06-11T19:10:31.000Z","dependencies_parsed_at":"2022-08-26T06:01:24.760Z","dependency_job_id":null,"html_url":"https://github.com/shaps80/Peek","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/shaps80/Peek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaps80%2FPeek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaps80%2FPeek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaps80%2FPeek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaps80%2FPeek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shaps80","download_url":"https://codeload.github.com/shaps80/Peek/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaps80%2FPeek/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268525004,"owners_count":24264086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["carthage","inspect","inspectors","ios","peek","slack","swift","vimeo"],"created_at":"2024-01-05T20:16:32.704Z","updated_at":"2025-08-03T13:32:05.389Z","avatar_url":"https://github.com/shaps80.png","language":"Swift","funding_links":[],"categories":["Tools","Swift","WebSocket"],"sub_categories":["Web View","Other free courses"],"readme":"[![Peek Site][gif]][peek]\n\n[![Carthage][carthage-0]][0]\n[![Version][pods-1]][1]\n[![License][pods-2]][2]\n[![Language][pods-3]][3]\n[![Platform][pods-4]][4]\n\n# Peek: All new design\n\nPeek 5 with an all new design and all new features. Whether you're a developer, designer or QA/tester, Peek can help you at all stages of your development process.\n\n[Watch the Promo][vimeo] to see it in action.\n\n## Unified Inspectors\nAll inspectors and attributes have now been unified into a single window, making inspection simpler and faster than ever before.\n\n## Collapsible Groups\nFeeling overwhelmed with all the information Peek has to offer? Simply tap the header to expand/collapse any section. Peek will even remember your choice across launches!\n\n## Nested Inspectors\nPeek now supports nested Inspectors. This powerful feature allows Peek to surface even more detail about your application. In fact Peek 5.0 more than doubles the number of attributes it can inspect.\n\n## Previews\nViews, images, colours and more can now provide snapshot previews to help you better identify what you’re inspecting.\n\n## Reporting\nAn all new reporting system allows you to export screenshots, metadata and even suggested values using the iOS native share sheet.\n\n## Accessibility\nPeek itself is now more accessible with Dynamic Type, but Peek can also surface accessibility details from your application.\n\n## Search\nYou can now search within Peek, making it easier than ever to inspect your apps.\n\n## Less Code \u0026 Dependencies\n\nThanks to an all new architecture Peek is also now smaller. Providing more features with much less code, leaving a very small footprint on your application.\n\n\n# Ready to get started?\n\n## Designers \u0026 Testers\n\n- Simply press one of your volume key(s) to show \u0026 hide Peek\n- Now tap or drag your finger across the screen\n- Tap the inspectors button (or double tap anywhere on the screen) to show the Inspectors for the selected view\n\nYou can't get simpler than that!\n\n## Developers\n\n### Device\n\nThe simplest way to integrate Peek into your project is to use `Cocoapods` or `Carthage`:\n\n```ruby\n# Cocoapods\npod 'Peek', :configurations =\u003e ['Debug']\n\n# Carthage\ngithub \"shaps80/Peek\" ~\u003e 5.1.0\n```\n\nYou only need 1 line of code to enable Peek in your application:\n\n`window?.peek.enabled = true`\n\n### Simulator\n\nWhen running in the Simulator you'll need a couple of extra lines:\n\n```swift\n// Your AppDelegate\noverride func motionBegan(_ motion: UIEventSubtype, with event: UIEvent?) {\n    // iOS 8/9 requires device motion handlers to be on the AppDelegate\n    window?.peek.handleShake(motion)\n}\n```\n\nor\n\n```swift\n\n// Your ViewController\noverride var canBecomeFirstResponder: Bool {\n    return true\n}\n\noverride func motionBegan(_ motion: UIEventSubtype, with event: UIEvent?) {\n    // iOS 10 now requires device motion handlers to be on a UIViewController\n    UIApplication.shared.keyWindow?.peek.handleShake(motion)\n}\n```\n\nNow you can press `CMD+CTRL+Z` (or use the Menu option) to show/hide Peek in your Simulator.\n\n### Contributing\n\nContributions to Peek are welcomed and encouraged!\n\nIt is easy to get involved. Please see the [Contributing guide][contrib-guide] for more details.\n\n[A list of contributors is available through GitHub.][contrib-list]\n\nTo give clarity of what is expected of our community, Peek has adopted the code of conduct defined by the Contributor Covenant. This document is used across many open source communities, and I think it articulates my values well. For more, see the [Code of Conduct][code-of-conduct].\n\n# What is Peek?\n\n[![Peek on Vimeo][preview]][vimeo]\n\nPeek is an open source framework that provides runtime inspection of your application while its running on your device (or Simulator).\n\n- Developers can use Peek to inspect their user interfaces at runtime.\n- Designers can verify that the applications meets their design specifications.\n- Testers and QA can check accessibility identifiers, validate behaviour and report issues.\n\nPeek is a tool to aide you at all stages of your development process.\n\n# How does Peek work?\n\nPeek scans your entire user interface on the screen then provides overlays with layout information and attribute inspectors.\n\nPeek includes an intelligent filtering system to best determine which views you care about while ignoring those you are not likely to be interested in.\n\nFor example, by default Peek will not show you many of Apple's system components unless they are subclassed.\n\nPeek presents itself in its own window that sits directly on top of your own app's user interface to ensure that it doesn't interfere with normal functionality.\n\nPeek also allows you to test all supported orientations on both iPhone and iPad.\n\nMost importantly Peek doesn’t interfere with your applications logic or user interface in anyway. It provides read-only inspection to guarantee you’re seeing live-values only!\n\n# Demo\n\nIf you're not ready to integrate Peek into your own project, You can simply download this repo and run the sample project included :)\n\nIts a small app that perfectly demonstrates the power of Peek!\n\n# Configuring Peek\n\nPeek allows many options to be configured, allowing you more control over how Peek is configured as well as reporting options:\n\n```swift\nwindow?.peek.enableWithOptions { options in\n    options.theme = .black\n    options.activationMode = .auto\n    options.shouldIgnoreContainers = true\n\n    /*\n      Sometimes it can also be useful to include additional metadata with each report.\n     */\n    options.metaData = [ \"Environment\": \"UAT\" ]\n}\n```\n\n# Safety First\n\nPeek is designed to be as safe as possible. Peek will never retain objects from your application. It will never use a background thread. Peek won't even run unless you explicitly enable it!\n\nGo ahead, take a Peek at your app now :)\n\n# Supported Platforms and Versions\n\nPeek is officially supported (and tested) with the following configurations:\n\n- iOS 9.0+ (Swift and Objective-C)\n\n\u003e Note: if you're having issues with Swift versions when using Cocoapods, try adding the following to your `Podfile`:\n\n```ruby\npost_install do |installer|\n    installer.pods_project.targets.each do |target|\n        if target.name == \"Peek\" then\n            target.build_configurations.each do |config|\n                config.build_settings['SWIFT_VERSION'] = '4.0'\n            end\n        end\n    end\nend\n```\n\n# Swift Versions\n\n**Swift 4.x**\n\nCurrently supported by version Peek v4.0 – v5.0\n\n**Swift 3.x**\n\nNot officially supported. Its recommended you update to Swift 4 and Peek 5.0\n\n**Swift 2.3**\n\nIf you need Swift 2.3 support, update your Podfile as such:\n\n`pod 'Peek', '2.3'`\n\n**Swift 2.2**\n\nIf you need Swift 2.2 support, update your Podfile as such:\n\n`pod 'Peek', '2.0'`\n\n---\n\n# Attribution\n\nOriginal concept, code and app design by [@shaps][5]\u003cbr /\u003e\n\nIcons in the demo app found on [The Noun Project][6].\nArtwork by [Vitaliy Gorbachev][7]\n\n[0]:  https://github.com/Carthage/Carthage\n[1]:\thttp://cocoapods.org/pods/Peek\n[2]:\thttp://cocoapods.org/pods/Peek\n[3]:\thttp://cocoadocs.org/docsets/Peek\n[4]:\thttp://cocoapods.org/pods/Peek\n[5]:\thttps://twitter.com/shaps \"Shaps on Twitter\"\n[6]:\thttps://thenounproject.com\n[7]:\thttps://thenounproject.com/vitalikexpert\n\n[pods-1]:\thttps://img.shields.io/cocoapods/v/Peek.svg?style=flat\n[pods-2]:\thttps://img.shields.io/cocoapods/l/Peek.svg?style=flat\n[pods-3]:\thttps://img.shields.io/badge/language-swift-ff69b4.svg\n[pods-4]:\thttps://img.shields.io/cocoapods/p/Peek.svg?style=flat\n[carthage-0]: https://img.shields.io/badge/Carthage-✓-4BC51D.svg?style=flat\n\n[peek]: https://shaps.me/peek\n[preview]: https://github.com/shaps80/Peek/raw/master/preview.jpg\n[vimeo]: https://player.vimeo.com/video/261323610\n[gif]: https://github.com/shaps80/Peek/raw/master/preview.gif\n[contrib-guide]: https://github.com/shaps80/Peek/blob/master/CONTRIBUTING.md\n[contrib-list]: https://github.com/shaps80/Peek/graphs/contributors\n[code-of-conduct]: https://github.com/shaps80/Peek/blob/master/CODE_OF_CONDUCT.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaps80%2FPeek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaps80%2FPeek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaps80%2FPeek/lists"}