{"id":2706,"date":"2015-04-22T12:00:00","date_gmt":"2015-04-22T20:00:00","guid":{"rendered":"http:\/\/thinkapps.com\/blog\/?p=2706"},"modified":"2015-04-27T11:00:28","modified_gmt":"2015-04-27T19:00:28","slug":"apple-watch-app-case-study-clover-clover","status":"publish","type":"post","link":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/","title":{"rendered":"Apple Watch App Case Study: Clover Clover"},"content":{"rendered":"<p><em>This is the second installment of our <a title=\"Apple Watch app case studies\" href=\"http:\/\/thinkapps.com\/blog\/tag\/case-study\/\" target=\"_blank\">new series of case studies<\/a> on what it&#8217;s really like to design and develop Apple Watch apps.<\/em><\/p>\n<h2>The Idea<\/h2>\n<p>Growing up, I remember my favorite hand-held game was <a title=\"Simon\" href=\"http:\/\/en.wikipedia.org\/wiki\/Simon_(game)\" target=\"_blank\">Simon<\/a>. It&#8217;s amazing\u00a0the endless hours\u00a0of fun and frustration that were provided by\u00a0such a classic and simple game.<\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Simon-Game.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"552\" class=\"alignnone size-full wp-image-3111\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Simon-Game.jpg\" alt=\"Simon Game\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Simon-Game.jpg 736w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Simon-Game.jpg 300w\" sizes=\"(max-width: 736px) 100vw, 736px\" \/><\/a><\/p>\n<p><a title=\"Handheld Games Museum\" href=\"http:\/\/www.handheldmuseum.com\/MB\/Simon.htm\" target=\"_blank\"><em>Image credit<\/em><\/a><\/p>\n<p>When Apple announced the\u00a0<a title=\"Learn more about Apple Watch\" href=\"http:\/\/thinkapps.com\/blog\/tag\/apple-watch\/\" target=\"_blank\">Apple Watch<\/a>, we knew instantly that we had to create a similar version of Simon purely\u00a0from the standpoint that it fits into <a title=\"Important Design Principles for Apple Watch\" href=\"http:\/\/thinkapps.com\/blog\/design\/apple-watch-apps-important-design-principles\/\" target=\"_blank\">the Watch\u2019s form factor<\/a> and can be played within a few minutes.<\/p>\n<p>The result is\u00a0<a title=\"Clover Clover\" href=\"https:\/\/itunes.apple.com\/us\/app\/clover-clover\/id981732982?ls=1&amp;mt=8\" target=\"_blank\">Clover Clover<\/a>, our new game designed specifically for Apple Watch.<\/p>\n<h2>How It Works<\/h2>\n<p>Clover Clover is a simple memory game of observing a sequence and repeating it back. The game gets progressively harder and faster as the number of sequences\u00a0increases.<\/p>\n<p>There are four game modes:<\/p>\n<h3>1) Classic Mode<\/h3>\n<p>Repeat the sequence in the same order. Challenge Level: Easy<\/p>\n<h3>2) Monochrome Mode<\/h3>\n<p>Repeat the sequence in the same order but all clover leaves are the same\u00a0color. Challenge Level: Medium<\/p>\n<h3>3) Reverse Mode<\/h3>\n<p>Repeat the sequence in the reverse order. Challenge Level: Hard<\/p>\n<h3>4) Opposite Mode<\/h3>\n<p>Repeat the sequence in the same order but on the opposite sides. For example, if red, then\u00a0yellow and so forth. Challenge Level: Expert<\/p>\n<div class=\"video-wrapper\">\n<div class=\"video-container\"><iframe title=\"Simon like puzzle game &quot;Clover Clover&quot; for the Apple Watch apps\" src=\"https:\/\/www.youtube.com\/embed\/CgmnO8zkmew?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div>\n<h2>What&#8217;s In a Name?<\/h2>\n<p>The name \u201cClover Clover\u201d was\u00a0inspired by\u00a0my daughter Emma\u2019s love for\u00a0butterflies. When we were designing the <a title=\"Guide to UX and UI Design\" href=\"http:\/\/thinkapps.com\/blog\/design\/ux-and-ui-design-guide\/\" target=\"_blank\">User Interface (UI)<\/a>, she said to make it look like a butterfly.<\/p>\n<p>After many, many revisions, we came up with a symmetric shape that turned out more like clover leaves than a butterfly, but thankfully it still earned Emma&#8217;s approval.<\/p>\n<h2>Kicking Things Up a Notch<\/h2>\n<p>Each clover leaf is an actionable item in the\u00a0game, and\u00a0this design opened up a whole new creative possibility.<\/p>\n<p>We had to make a\u00a0decision whether to just make a simple tap game that was\u00a0static or to make something that was truly great. <strong>We knew anyone could create this game easily, but we wanted it to\u00a0be differentiated by the experience delivered through animations and game play.<\/strong><\/p>\n<p>We had a vision of making the animation more organic and natural feeling, as if the clover\u00a0was blooming. So we brainstormed on how to achieve it on the Apple Watch within the\u00a0limitations of the\u00a0<a title=\"Learn more about the WatchKit SDK\" href=\"http:\/\/thinkapps.com\/blog\/development\/how-to-develop-apple-watch-apps\/\" target=\"_blank\">WatchKit SDK<\/a>.<\/p>\n<p>The methods we chose were very, very\u00a0tedious, and all animation was a series of images, similar to an animated GIF.<\/p>\n<p>So we set on an ambitious plan to achieve something that might not be possible on the\u00a0Apple Watch due to the dependence on the processing power being offloaded to the\u00a0iPhone through Bluetooth. Little did we know that this game would take three times longer than\u00a0planned.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1316\" height=\"1300\" class=\"alignnone size-full wp-image-3108\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_IPhoneAndWatch.jpg\" alt=\"ScreenShot_IPhoneAndWatch\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_IPhoneAndWatch.jpg 1316w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_IPhoneAndWatch.jpg 300w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_IPhoneAndWatch.jpg 1024w\" sizes=\"(max-width: 1316px) 100vw, 1316px\" \/><\/p>\n<h2>At a Crossroads<\/h2>\n<p>Upon completing our first version, we were pretty satisfied with the app after testing it on the\u00a0Xcode Simulator (since we were not fortunate enough to have access to an actual Apple Watch device).<\/p>\n<p>But\u00a0with Apple\u2019s strict approval process of rejecting apps for reasons such as poor\u00a0performance of animations and the lag of\u00a0communication across Bluetooth between\u00a0iPhone and the\u00a0Watch, we knew our game would be rejected due to\u00a0our heavy usage of\u00a0animations.<\/p>\n<p>We were at a crossroads and had to decide whether to submit with the existing state of the\u00a0game or just do a static and simple one without any animations.<\/p>\n<p>Collectively as a group, we declared that we would keep the animation but would need to re-architect the event handling and animation of the game. Basically, this involved\u00a0re-creating our\u00a0game from scratch.<\/p>\n<p>We were behind on our deliverable plans already, but we knew that it was worth taking the additional time because we were onto\u00a0something great.<\/p>\n<h2>Take Two<\/h2>\n<p>This was where\u00a0we encountered our biggest challenge: how to re-create\u00a0a game that had too many extra features\u00a0that pushed the envelope on the device it was to be played upon.<\/p>\n<p>What was our new approach?<\/p>\n<p>First, we started with the basics and compressed every\u00a0graphical element in the entire game. Instead of creating it as a standard \u201cPNG\u00ad24\u201d image,\u00a0we had to change it to\u00a0&#8220;PNG\u00ad9 Perceptual, Non-\u00adtransparent (black background\u00a0color), 32 Colors.\u201d<\/p>\n<p>We decreased the size of the graphics by 3x, and, with them being non-transparent, it\u2019s more efficient in rendering the graphics to the screen.<\/p>\n<p>Secondly, we redid all animation to be in the compressed format as well as consolidated\u00a0the animation altogether.<\/p>\n<p>Originally, we had up to six elements on the screen animating\u00a0individually at the same time. But that would take too much processing power to kick them off\u00a0all at once. So, we consolidated all animation to be on one image, further reducing our\u00a0need for processing power.<\/p>\n<p>Finally, in terms of the code\u00ad, the biggest change was the event handling.<\/p>\n<p>The concern was that, when a user does a tap event to the screen, it\u2019s sent to the iPhone for processing and\u00a0then relayed back. Well, if the user taps quickly on multiple items, the game must know\u00a0how to handle that.<\/p>\n<p>So we came up with a state machine algorithm to queue all event\u00a0requests and handle the valid ones and disregard the invalid ones. This state machine\u00a0was the driving force between what gets handled and what animation it kicks off. That\u00a0was our biggest saving grace.<\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1316\" height=\"984\" class=\"alignnone size-full wp-image-3107\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg\" alt=\"ScreenShot_WatchApps\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg 1316w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg 300w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg 1024w\" sizes=\"(max-width: 1316px) 100vw, 1316px\" \/><\/a><\/p>\n<h2>The Sweet Taste of Victory<\/h2>\n<p>When we submitted to Apple for approval, we contacted the review team and stated our\u00a0design approach and how we would handle every scenario.<\/p>\n<p>After being\u00a0in review for\u00a0three days, Apple\u00a0informed us that everything worked great on the device with no\u00a0performance issues. What a relief!<\/p>\n<p>Ironically, a simple game that I played as a kid that provided enjoyment but also frustration has come back into my life as an adult, with a similar mix of frustration and\u00a0pleasure.<\/p>\n<p><strong>We\u00a0hope everyone will enjoy <a title=\"Clover Clover game info\" href=\"https:\/\/itunes.apple.com\/us\/app\/clover-clover\/id981732982?ls=1&amp;mt=8\" target=\"_blank\">our Clover Clover game<\/a> and see the passion that we put into every line of code and every pixel of artwork.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><em>Your app could be perfect for the Apple Watch and we&#8217;d love to help you build it. <a title=\"Apple Watch App Development by ThinkApps\" href=\"http:\/\/thinkapps.com\/apple-watch\/?Campaign_ID=701F0000000SQ0Y&amp;lead_source=Blog\" target=\"_blank\">Reach out to our Apple Watch team<\/a> at ThinkApps and get started today.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.<\/p>\n","protected":false},"author":46,"featured_media":3110,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[66,242,237,26,364,243,160],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apple Watch App Case Study: Clover Clover<\/title>\n<meta name=\"description\" content=\"This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apple Watch App Case Study: Clover Clover\" \/>\n<meta property=\"og:description\" content=\"This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/\" \/>\n<meta property=\"og:site_name\" content=\"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more\" \/>\n<meta property=\"article:published_time\" content=\"2015-04-22T20:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-04-27T19:00:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg\" \/>\n<meta name=\"author\" content=\"Henry Ton\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Henry Ton\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/\",\"url\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/\",\"name\":\"Apple Watch App Case Study: Clover Clover\",\"isPartOf\":{\"@id\":\"http:\/\/localhost:8080\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Clover-Clover-featured-image.jpeg\",\"datePublished\":\"2015-04-22T20:00:00+00:00\",\"dateModified\":\"2015-04-27T19:00:28+00:00\",\"author\":{\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/7929edca7eaef3cf12dd82559645f4aa\"},\"description\":\"This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.\",\"breadcrumb\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#primaryimage\",\"url\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Clover-Clover-featured-image.jpeg\",\"contentUrl\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Clover-Clover-featured-image.jpeg\",\"width\":1301,\"height\":733,\"caption\":\"Clover Clover featured image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/localhost:8080\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apple Watch App Case Study: Clover Clover\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/localhost:8080\/blog\/#website\",\"url\":\"http:\/\/localhost:8080\/blog\/\",\"name\":\"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/localhost:8080\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/7929edca7eaef3cf12dd82559645f4aa\",\"name\":\"Henry Ton\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/48fb325e884ad276c82b886d78de892c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/48fb325e884ad276c82b886d78de892c?s=96&d=mm&r=g\",\"caption\":\"Henry Ton\"},\"description\":\"Henry Ton is the founder of ArchSquare. Located in Phoenix, AZ, ArchSquare specializes in mobile development for the iPhone, iPad, and Apple Watch.\",\"sameAs\":[\"http:\/\/www.archsquare.com\/\",\"https:\/\/x.com\/archtrainer\"],\"url\":\"https:\/\/thinkapps.com\/blog\/author\/henry-ton\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apple Watch App Case Study: Clover Clover","description":"This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.","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:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/","og_locale":"en_US","og_type":"article","og_title":"Apple Watch App Case Study: Clover Clover","og_description":"This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.","og_url":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/","og_site_name":"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more","article_published_time":"2015-04-22T20:00:00+00:00","article_modified_time":"2015-04-27T19:00:28+00:00","og_image":[{"url":"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/ScreenShot_WatchApps.jpg"}],"author":"Henry Ton","twitter_misc":{"Written by":"Henry Ton","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/","url":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/","name":"Apple Watch App Case Study: Clover Clover","isPartOf":{"@id":"http:\/\/localhost:8080\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#primaryimage"},"image":{"@id":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#primaryimage"},"thumbnailUrl":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Clover-Clover-featured-image.jpeg","datePublished":"2015-04-22T20:00:00+00:00","dateModified":"2015-04-27T19:00:28+00:00","author":{"@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/7929edca7eaef3cf12dd82559645f4aa"},"description":"This case study of Clover Clover, a Simon-like game, sheds light on some of the design and development challenges involved in creating an Apple Watch app.","breadcrumb":{"@id":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#primaryimage","url":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Clover-Clover-featured-image.jpeg","contentUrl":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/04\/23003400\/Clover-Clover-featured-image.jpeg","width":1301,"height":733,"caption":"Clover Clover featured image"},{"@type":"BreadcrumbList","@id":"https:\/\/thinkapps.com\/blog\/development\/apple-watch-app-case-study-clover-clover\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/localhost:8080\/blog\/"},{"@type":"ListItem","position":2,"name":"Apple Watch App Case Study: Clover Clover"}]},{"@type":"WebSite","@id":"http:\/\/localhost:8080\/blog\/#website","url":"http:\/\/localhost:8080\/blog\/","name":"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/localhost:8080\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/7929edca7eaef3cf12dd82559645f4aa","name":"Henry Ton","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/48fb325e884ad276c82b886d78de892c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/48fb325e884ad276c82b886d78de892c?s=96&d=mm&r=g","caption":"Henry Ton"},"description":"Henry Ton is the founder of ArchSquare. Located in Phoenix, AZ, ArchSquare specializes in mobile development for the iPhone, iPad, and Apple Watch.","sameAs":["http:\/\/www.archsquare.com\/","https:\/\/x.com\/archtrainer"],"url":"https:\/\/thinkapps.com\/blog\/author\/henry-ton\/"}]}},"_links":{"self":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/2706"}],"collection":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/comments?post=2706"}],"version-history":[{"count":17,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/2706\/revisions"}],"predecessor-version":[{"id":3175,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/2706\/revisions\/3175"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/media\/3110"}],"wp:attachment":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/media?parent=2706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/categories?post=2706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/tags?post=2706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}