{"id":16800923,"url":"https://github.com/asafkorem/costouchvisualizer","last_synced_at":"2025-12-12T06:15:09.302Z","repository":{"id":15287764,"uuid":"18017290","full_name":"asafkorem/COSTouchVisualizer","owner":"asafkorem","description":"Visualize touches, gestures and long presses on your iPhone or iPad","archived":false,"fork":false,"pushed_at":"2023-06-09T17:48:21.000Z","size":2756,"stargazers_count":961,"open_issues_count":9,"forks_count":70,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-10-20T00:53:09.376Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.conopsys.com/COSTouchVisualizer/","language":"Objective-C","has_issues":true,"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/asafkorem.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-03-22T18:59:10.000Z","updated_at":"2024-10-10T18:50:03.000Z","dependencies_parsed_at":"2023-07-27T18:48:26.689Z","dependency_job_id":null,"html_url":"https://github.com/asafkorem/COSTouchVisualizer","commit_stats":null,"previous_names":["conopsys/costouchvisualizer","joeblau/costouchvisualizer"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asafkorem%2FCOSTouchVisualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asafkorem%2FCOSTouchVisualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asafkorem%2FCOSTouchVisualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asafkorem%2FCOSTouchVisualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asafkorem","download_url":"https://codeload.github.com/asafkorem/COSTouchVisualizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586248,"owners_count":21128997,"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","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":[],"created_at":"2024-10-13T09:35:28.106Z","updated_at":"2025-12-12T06:15:09.268Z","avatar_url":"https://github.com/asafkorem.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# COSTouchVisualizer\n\n![COSTouchVisualizer](https://raw.githubusercontent.com/conopsys/COSTouchVisualizer/master/touchvisdemo.gif \"COSTouchVisualizer iOS\")\n\n[![Version](http://cocoapod-badges.herokuapp.com/v/COSTouchVisualizer/badge.png)](http://cocoadocs.org/docsets/COSTouchVisualizer)\n[![Platform](http://cocoapod-badges.herokuapp.com/p/COSTouchVisualizer/badge.png)](http://cocoadocs.org/docsets/COSTouchVisualizer)\n\n## Swift Usage\n\nUsing COSTouchVisualizer is possible with Swift.  Inside your AppDelegate, redefine your window and declare a visualizer window with storyboards.\n\n**With Storyboards**\n```swift\nclass AppDelegate: UIResponder, UIApplicationDelegate, COSTouchVisualizerWindowDelegate {\n\n  lazy var window: UIWindow? = {\n      var customWindow = COSTouchVisualizerWindow(frame: UIScreen.mainScreen().bounds)\n      customWindow.touchVisualizerWindowDelegate = self\n      return customWindow\n      }()\n...\n}\n```\n**Without Storyboards**\n\n## Objective-C Usage\n\nTo run the example project; clone the repo, and run `pod update` from the Example directory first.  By default, this project has `Debug Mode` disabled.  If you want to see the gestures while you're testing, follow the **Debugging Mode** instructions.\n\n**With Storyboards**\n in your `AppDelegate` implementation simply add the following getter\n\n```objective-c\n#import \u003cCOSTouchVisualizerWindow.h\u003e\n\n...\n\n// Add this method to your AppDelegate method\n- (COSTouchVisualizerWindow *)window {\n    static COSTouchVisualizerWindow *visWindow = nil;\n    if (!visWindow) visWindow = [[COSTouchVisualizerWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];\n    return visWindow;\n}\n```\n\n**Without Storyboards**\n```objective-c\n#import \u003cCOSTouchVisualizerWindow.h\u003e\n\n...\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n    // Setup window\n    self.window = [[COSTouchVisualizerWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];\n    self.window.backgroundColor = [UIColor whiteColor];\n\n    ...\n\n}\n```\n\n**Delegate**\n\nTo make the window change active status dynamically or to enable debugging mode, you could make an object\nimplements the ```COSTouchVisualizerWindowDelegate``` protocol.\n\nHere are 2 optional methods in this delegate protocol:\n```objective-c\n- (BOOL)touchVisualizerWindowShouldShowFingertip:(COSTouchVisualizerWindow *)window;\n- (BOOL)touchVisualizerWindowShouldAlwaysShowFingertip:(COSTouchVisualizerWindow *)window;\n```\n\nBy default, the window only shows fingertip when there is a mirrored window.\n\nThe first delegate method (```-touchVisualizerWindowShouldShowFingertip:```) tells the window to enable\nfingertip or not. You should return ```YES``` to enable the fingertip feature, or ```NO``` if you want to close this\nfeature.\n\nThe second method (```-touchVisualizerWindowShouldAlwaysShowFingertip:```) tells the window to always show the\nfingertip even if there's no any mirrored screens (when returning YES). If this method returns NO, the window\nonly show fingertip when connected to a mirrored screen.\n\n```objective-c\n- (COSTouchVisualizerWindow *)window {\n  if (!_customWindow) {\n    _customWindow = [[COSTouchVisualizerWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];\n\n    // ... other setup code\n\n    _customWindow.touchVisualizerWindowDelegate = self;\n  }\n  return _customWindow;\n}\n\n- (BOOL)touchVisualizerWindowShouldAlwaysShowFingertip:(COSTouchVisualizerWindow *)window {\n    return YES;  // Return YES to make the fingertip always display even if there's no any mirrored screen.\n                 // Return NO or don't implement this method if you want to keep the fingertip display only when\n                 // the device is connected to a mirrored screen.\n}\n\n- (BOOL)touchVisualizerWindowShouldShowFingertip:(COSTouchVisualizerWindow *)window {\n    return YES;  // Return YES or don't implement this method to make this window show fingertip when necessary.\n                 // Return NO to make this window not to show fingertip.\n}\n```\n\n**Customization**\n\n```objective-c\n// Add these lines after the windows is initialized\n// Touch Color\n[visWindow setFillColor:[UIColor yellowColor]];\n[visWindow setStrokeColor:[UIColor purpleColor]];\n[visWindow setTouchAlpha:0.4];\n// Ripple Color\n[visWindow setRippleFillColor:[UIColor yellowColor]];\n[visWindow setRippleStrokeColor:[UIColor purpleColor]];\n[visWindow setRippleAlpha:0.1];\n```\n\n## Requirements\n\nThis project requires ARC.\n\n## Installation\n\nCOSTouchVisualizer is available through [CocoaPods](http://cocoapods.org), to install\nit simply add the following line to your Podfile:\n\n    pod \"COSTouchVisualizer\"\n\n## Author\n\nJoe Blau, josephblau@gmail.com\n\n## License\n\nCOSTouchVisualizer is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasafkorem%2Fcostouchvisualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasafkorem%2Fcostouchvisualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasafkorem%2Fcostouchvisualizer/lists"}