TouchVisualizer
Lightweight touch visualization library in Swift. A single line of code and visualize your touches!
Install / Use
/learn @morizotter/TouchVisualizerREADME
TouchVisualizer is a lightweight pure Swift implementation for visualising touches on the screen.
Features
- Works with just a single line of code!
- Supports multiple fingers.
- Supports multiple
UIWindow's. - Displays touch radius (finger size).
- Displays touch duration.
- Customise the finger-points image and colour.
- Supports iPhone and iPad in both portrait and landscape mode.
How it looks
Portrait:

Landscape:

Robots:

In-app implementation:

It's fun!
Runtime Requirements
- Swift 4.0
- Xcode 9.2
- iOS9.0 or later
TouchVisualizer works with Swift 5.2 from version 4.0.0.
Installation and Setup
Note: Embedded frameworks require a minimum deployment target of iOS 9.0.
Information: To use TouchVisualizer with a project targeting iOS 8.0 or lower, you must include the TouchVisualizer.swift source file directly in your project.
Installing with CocoaPods
CocoaPods is a centralised dependency manager that automates the process of adding libraries to your Cocoa application. You can install it with the following command:
$ gem update
$ gem install cocoapods
$ pods --version
To integrate TouchVisualizer into your Xcode project using CocoaPods, specify it in your Podfile and run pod install.
platform :ios, '9.0'
use_frameworks!
pod "TouchVisualizer", '~> 4.0'
Installing with Carthage
Carthage is a decentralised dependency manager that automates the process of adding frameworks to your Cocoa application.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate TouchVisualizer into your Xcode project using Carthage, specify it in your Cartfile:
github "morizotter/TouchVisualizer" "4.0.0"
Manual Installation
To install TouchVisualizer without a dependency manager, please add all of the files in /Pod to your Xcode Project.
Usage
To start using TouchVisualizer, write the following line wherever you want to start visualising:
import TouchVisualizer
Then invoke visualisation, by calling:
Visualizer.start()
and stop the presentation like this:
Visualizer.stop()
Get touch locations by this:
Visualizer.getTouches()
It is really simple, isn't it?
Customisation
TouchVisualizer also has the ability to customize your touch events. Here is an example of what can be customized:
var config = Configuration()
config.color = UIColor.redColor()
config.image = UIImage(named: "YOUR-IMAGE")
config.showsTimer = true
config.showsTouchRadius = true
config.showsLog = true
Visualizer.start(config)
Configuration properties
| name | type | description | default |
| :--------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------- | :------------ |
| color | UIColor | Color of touch point and text. | default color |
| image | UIImage | Touch point image. If rendering mode is set to UIImageRenderingModeAlwaysTemplate, the image is filled with color above. | circle image |
| defaultSize | CGSize | Default size of touch point. | 60 x 60px |
| showsTimer | Bool | Shows touch duration. | false |
| showsTouchRadius | Bool | Shows touch radius by scaling touch point. It doesn't work on simulator. | false |
| showsLog | Bool | Shows log. | false |
Documentation
Peripheral
Presentation
- TouchVisualizer Demo movie #potatotips // Speaker Deck @potatotips May 13 2015
Contributing
Please file issues or submit pull requests for anything you’d like to see! We're waiting! :)
Licensing
TouchVisualizer is released under the MIT license. Go read the LICENSE file for more information.
Miscellaneous
There is a similar touch visualization library called COSTouchVisualizer, which is written in Objective-C. COSTouchVisualizer supports earlier versions of iOS and is more mature. If TouchVisualizer isn't enough for you, try that!
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR

