{"id":316,"date":"2020-05-18T16:18:01","date_gmt":"2020-05-18T21:18:01","guid":{"rendered":"https:\/\/mikespsyche.com\/?p=316"},"modified":"2020-05-18T16:18:01","modified_gmt":"2020-05-18T21:18:01","slug":"touch-visualization-during-presentations","status":"publish","type":"post","link":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/","title":{"rendered":"Touch Visualization During Presentations"},"content":{"rendered":"<p>I&#8217;ve used the awesome <a href=\"https:\/\/github.com\/morizotter\/TouchVisualizer\">TouchVisulizer<\/a> in several of my projects now, but the last couple times I&#8217;ve used it I had to use a fork since the original maintainer isn&#8217;t providing any updates for the latest iOS and Swift changes.<\/p>\n<p>The other downside is that it is still only compatible with Carthage and CocoaPods. So, compared to SPM, it&#8217;s a lot more involved to integrate it into your project.<\/p>\n<p>One might wonder what the value of this framework even is since users don&#8217;t usually want to see evidence of their grubby mitts on screen. The reason for it is for situations like presentations or screen recording demos. It&#8217;s notoriously hard to follow onscreen action when you have no context as to where the user touched.<\/p>\n<p>Anyways, I had been day dreaming about how one would make one of these frameworks. Ultimately, I had the idea that I could track all touch events in a UIWindow, generate a circle CGPath for each touch, then render them in a CAShapeLayer drawn at the highest position on screen. So I did that.<\/p>\n<h2>Introducing <a href=\"https:\/\/github.com\/mredig\/TouchDoll\">TouchDoll<\/a><\/h2>\n<p>The result is my new framework <a href=\"https:\/\/github.com\/mredig\/TouchDoll\">TouchDoll<\/a>, named for its ability to show you where on screen it&#8217;s being touched. It&#8217;s only available via SPM and is super simple to use.<\/p>\n<ol>\n<li>Import the module:\n<ul>\n<li><code>import TouchDoll<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Activate it\n<ul>\n<li><code>window.showTouches()<\/code><\/li>\n<\/ul>\n<\/li>\n<li>If you ever want to toggle off\n<ul>\n<li><code>window.hideTouches()<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Currently there are no configuration options. However, the code is quite simple and I would expect that many novice coders would be able to follow the logic. I am completely happy and open to pull requests, if any configuration options are deemed necessary.<\/p>\n<p>Check it out! I hope you like it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve used the awesome TouchVisulizer in several of my projects now, but the last couple times I&#8217;ve used it I had to use a fork since the original maintainer isn&#8217;t<a class=\"read-more more-link\" href=\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-316","post","type-post","status-publish","format-standard","hentry","category-swift"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Touch Visualization During Presentations | Mike&#039;s Psyche<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Touch Visualization During Presentations | Mike&#039;s Psyche\" \/>\n<meta property=\"og:description\" content=\"I&#8217;ve used the awesome TouchVisulizer in several of my projects now, but the last couple times I&#8217;ve used it I had to use a fork since the original maintainer isn&#8217;tContinue reading\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\" \/>\n<meta property=\"og:site_name\" content=\"Mike&#039;s Psyche\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-18T21:18:01+00:00\" \/>\n<meta name=\"author\" content=\"Michael\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\"},\"author\":{\"name\":\"Michael\",\"@id\":\"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046\"},\"headline\":\"Touch Visualization During Presentations\",\"datePublished\":\"2020-05-18T21:18:01+00:00\",\"dateModified\":\"2020-05-18T21:18:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\"},\"wordCount\":279,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046\"},\"articleSection\":[\"Swift\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\",\"url\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\",\"name\":\"Touch Visualization During Presentations | Mike&#039;s Psyche\",\"isPartOf\":{\"@id\":\"https:\/\/mikespsyche.com\/#website\"},\"datePublished\":\"2020-05-18T21:18:01+00:00\",\"dateModified\":\"2020-05-18T21:18:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mikespsyche.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Touch Visualization During Presentations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mikespsyche.com\/#website\",\"url\":\"https:\/\/mikespsyche.com\/\",\"name\":\"Mike's Psyche\",\"description\":\"Swift and maybe more?\",\"publisher\":{\"@id\":\"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mikespsyche.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046\",\"name\":\"Michael\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mikespsyche.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e754bec0598d19c61efb5820591b4ab3?s=96&d=wavatar&r=r\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e754bec0598d19c61efb5820591b4ab3?s=96&d=wavatar&r=r\",\"caption\":\"Michael\"},\"logo\":{\"@id\":\"https:\/\/mikespsyche.com\/#\/schema\/person\/image\/\"},\"description\":\"I love Swift, World of Warcraft, my wife, and my dog. (not necessarily in that order)\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Touch Visualization During Presentations | Mike&#039;s Psyche","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/","og_locale":"en_US","og_type":"article","og_title":"Touch Visualization During Presentations | Mike&#039;s Psyche","og_description":"I&#8217;ve used the awesome TouchVisulizer in several of my projects now, but the last couple times I&#8217;ve used it I had to use a fork since the original maintainer isn&#8217;tContinue reading","og_url":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/","og_site_name":"Mike&#039;s Psyche","article_published_time":"2020-05-18T21:18:01+00:00","author":"Michael","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michael","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#article","isPartOf":{"@id":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/"},"author":{"name":"Michael","@id":"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046"},"headline":"Touch Visualization During Presentations","datePublished":"2020-05-18T21:18:01+00:00","dateModified":"2020-05-18T21:18:01+00:00","mainEntityOfPage":{"@id":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/"},"wordCount":279,"commentCount":0,"publisher":{"@id":"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046"},"articleSection":["Swift"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/","url":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/","name":"Touch Visualization During Presentations | Mike&#039;s Psyche","isPartOf":{"@id":"https:\/\/mikespsyche.com\/#website"},"datePublished":"2020-05-18T21:18:01+00:00","dateModified":"2020-05-18T21:18:01+00:00","breadcrumb":{"@id":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mikespsyche.com\/touch-visualization-during-presentations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mikespsyche.com\/"},{"@type":"ListItem","position":2,"name":"Touch Visualization During Presentations"}]},{"@type":"WebSite","@id":"https:\/\/mikespsyche.com\/#website","url":"https:\/\/mikespsyche.com\/","name":"Mike's Psyche","description":"Swift and maybe more?","publisher":{"@id":"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mikespsyche.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/mikespsyche.com\/#\/schema\/person\/6ea249535952c80ed7d586291ebd3046","name":"Michael","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mikespsyche.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e754bec0598d19c61efb5820591b4ab3?s=96&d=wavatar&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e754bec0598d19c61efb5820591b4ab3?s=96&d=wavatar&r=r","caption":"Michael"},"logo":{"@id":"https:\/\/mikespsyche.com\/#\/schema\/person\/image\/"},"description":"I love Swift, World of Warcraft, my wife, and my dog. (not necessarily in that order)"}]}},"_links":{"self":[{"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/posts\/316"}],"collection":[{"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/comments?post=316"}],"version-history":[{"count":1,"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/posts\/316\/revisions"}],"predecessor-version":[{"id":317,"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/posts\/316\/revisions\/317"}],"wp:attachment":[{"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/media?parent=316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/categories?post=316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikespsyche.com\/wp-json\/wp\/v2\/tags?post=316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}