{"id":707,"date":"2020-09-23T21:46:37","date_gmt":"2020-09-23T20:46:37","guid":{"rendered":"http:\/\/www.sebcharrot.com\/blog\/?p=707"},"modified":"2020-09-23T21:49:34","modified_gmt":"2020-09-23T20:49:34","slug":"my-first-3-garmin-watch-faces","status":"publish","type":"post","link":"http:\/\/www.sebcharrot.com\/blog\/my-first-3-garmin-watch-faces\/","title":{"rendered":"My First 3 Garmin Watch Faces"},"content":{"rendered":"\n<p>About a year ago I bought a <a rel=\"noreferrer noopener\" href=\"https:\/\/buy.garmin.com\/en-GB\/GB\/p\/646690\/pn\/010-02120-30\" data-type=\"URL\" data-id=\"https:\/\/buy.garmin.com\/en-GB\/GB\/p\/646690\/pn\/010-02120-30\" target=\"_blank\">Garmin Forerunner 245<\/a> to take my run-tracking to the next level. In almost every respect it&#8217;s left my previous Fitbit in the dust (cough&#8230; sleep tracking). And means I can run a race without needing to carry a phone. Lovely stuff.<\/p>\n\n\n\n<p>One of the things I found most intriguing about a Garmin device was the prospect of being able to build my own watch-faces using the <a rel=\"noreferrer noopener\" href=\"https:\/\/developer.garmin.com\/connect-iq\/overview\/\" data-type=\"URL\" data-id=\"https:\/\/developer.garmin.com\/connect-iq\/overview\/\" target=\"_blank\">Connect IQ SDK<\/a>.<\/p>\n\n\n\n<p>It was fairly straightforward to put an initial app together using Garmin&#8217;s own language <a rel=\"noreferrer noopener\" href=\"https:\/\/developer.garmin.com\/connect-iq\/monkey-c\/\" data-type=\"URL\" data-id=\"https:\/\/developer.garmin.com\/connect-iq\/monkey-c\/\" target=\"_blank\">Monkey C<\/a> &#8212; a name I can only assume was coined for the corollary &#8220;Monkey do&#8221; pun &#8212; and a bit harder to master. Maybe I&#8217;ll go into more depth of the hows in a future post, but for now I just wanted to share the results of my messing around over the course of a few evenings.<\/p>\n\n\n\n<h2>Eye See You<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><a href=\"https:\/\/apps.garmin.com\/en-US\/apps\/5c67b598-35b9-4466-8a72-8df26e4c0c2c\" rel=\"https:\/\/apps.garmin.com\/en-US\/apps\/5c67b598-35b9-4466-8a72-8df26e4c0c2c\"><img loading=\"lazy\" src=\"https:\/\/services.garmin.com\/appsLibraryBusinessServices_v0\/rest\/apps\/5c67b598-35b9-4466-8a72-8df26e4c0c2c\/icon\/6724a314-1c3b-465e-9c55-8186bd74e1a5\" alt=\"App Icon\" width=\"433\" height=\"433\"\/><\/a><\/figure><\/div>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/apps.garmin.com\/en-US\/apps\/5c67b598-35b9-4466-8a72-8df26e4c0c2c\" data-type=\"URL\" data-id=\"https:\/\/apps.garmin.com\/en-US\/apps\/5c67b598-35b9-4466-8a72-8df26e4c0c2c\" target=\"_blank\">Link here<\/a><\/p>\n\n\n\n<p>For some reason the first thought that occurred to me when staring at my big spherical watch was: what if it was staring back? Throw in some creative license, and possibly some delayed wish-fulfillment from when I was 13, and I ended up hooked on the idea of having Sauron&#8217;s all-seeing eye on my wrist.<\/p>\n\n\n\n<p>The key here was creating a graphic that would meet the devices&#8217; ridiculously small memory. Cue a lot of posterising, playing with values, compression, and I had something I was happy enough with. Though it left me envious of the Apple Watch&#8217;s rich display.<\/p>\n\n\n\n<p>Anyway, turned out alright for a first go.<\/p>\n\n\n\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/apps.garmin.com\/en-US\/apps\/5c67b598-35b9-4466-8a72-8df26e4c0c2c\" target=\"_blank\" rel=\"noreferrer noopener\">Download &#8216;eye see you&#8217;<\/a><\/div>\n<\/div>\n\n\n\n<h2>Eye Spy<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><a href=\"https:\/\/apps.garmin.com\/en-US\/apps\/9892ddec-fd7c-4f5c-a23a-cae55834ad85\"><img loading=\"lazy\" src=\"https:\/\/services.garmin.com\/appsLibraryBusinessServices_v0\/rest\/apps\/9892ddec-fd7c-4f5c-a23a-cae55834ad85\/icon\/28dd2bb8-cca9-4046-a46a-863ab526094c\" alt=\"App Icon\" width=\"445\" height=\"445\"\/><\/a><\/figure><\/div>\n\n\n\n<p><a href=\"https:\/\/apps.garmin.com\/en-US\/apps\/9892ddec-fd7c-4f5c-a23a-cae55834ad85\" data-type=\"URL\" data-id=\"https:\/\/apps.garmin.com\/en-US\/apps\/9892ddec-fd7c-4f5c-a23a-cae55834ad85\" target=\"_blank\" rel=\"noreferrer noopener\">Link here<\/a><\/p>\n\n\n\n<p>Are we seeing a theme here? In what perhaps is an obvious logical leap, I started asking myself questions like, &#8220;What if the eye could blink?&#8221; and &#8220;What if the eye didn&#8217;t belong to an immortal evil force?&#8221;.<\/p>\n\n\n\n<p>And that&#8217;s how we came to Eye Spy, a regular eyeball on your arm. This was a simpler affair since the only graphic was a much smaller iris, and I didn&#8217;t have to worry too much about clarity or recognisability as long as it just generally looked good. <\/p>\n\n\n\n<p>At this point I started to add more features. I was quite happy with the battery, since it was completely constructed from shape vectors. I also started to figure out how to share common logic between my watch faces using <a rel=\"noreferrer noopener\" href=\"https:\/\/developer.garmin.com\/connect-iq\/core-topics\/shareable-libraries\/\" data-type=\"URL\" data-id=\"https:\/\/developer.garmin.com\/connect-iq\/core-topics\/shareable-libraries\/\" target=\"_blank\">Monkey Barrels<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/apps.garmin.com\/en-US\/apps\/9892ddec-fd7c-4f5c-a23a-cae55834ad85\" target=\"_blank\" rel=\"noreferrer noopener\">download &#8216;eye spy&#8217;<\/a><\/div>\n<\/div>\n\n\n\n<h2>Vinyl<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><a href=\"https:\/\/apps.garmin.com\/en-US\/apps\/835ffb06-d8e9-4174-8fa2-24aa5bbf878b\"><img loading=\"lazy\" src=\"https:\/\/services.garmin.com\/appsLibraryBusinessServices_v0\/rest\/apps\/835ffb06-d8e9-4174-8fa2-24aa5bbf878b\/icon\/5ddfe9d6-ad0d-4d2a-a47f-c8d9c94c7ffe\" alt=\"App Icon\" width=\"437\" height=\"454\"\/><\/a><\/figure><\/div>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/apps.garmin.com\/en-US\/apps\/835ffb06-d8e9-4174-8fa2-24aa5bbf878b\" target=\"_blank\">Link here<\/a><\/p>\n\n\n\n<p>Next on my list was something quite different, but again inspired by riffing on the circular form factor. I thought it would be pretty funky to have a vinyl record spinning in the watch, with the relevant info (date, time) on the record label itself.<\/p>\n\n\n\n<p>This one involved no image resources whatsoever &#8212; I built the entire UI programmatically with shapes. This involved some trial-and-error to work out a good amount of spacing for the highlights, and a little bit of maths to plot the arcs correctly &#8212; especially since Garmin watches come in all sorts of sizes and at all sorts of resolutions.<\/p>\n\n\n\n<p>By this point I was getting much more comfortable with the language and framework. And this has by far been the most popular watchface on the store &#8212; much to my surprise.<\/p>\n\n\n\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/apps.garmin.com\/en-US\/apps\/835ffb06-d8e9-4174-8fa2-24aa5bbf878b\" target=\"_blank\" rel=\"noreferrer noopener\">download &#8216;vinyl&#8217;<\/a><\/div>\n<\/div>\n\n\n\n<h2>Summary<\/h2>\n\n\n\n<p>I have many more ideas for enhancements to these watch faces, and many more ideas for new watch faces besides, it&#8217;s just a case of finding the time. In any case this has been an enjoyable exercise, even if in the end I settled on wearing a picture of my son&#8217;s face instead.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>About a year ago I bought a Garmin Forerunner 245 to take my run-tracking to the next level. In almost every respect it&#8217;s left my previous Fitbit in the dust (cough&#8230; sleep tracking). And means I can run a race without needing to carry a phone. Lovely stuff. One of the things I found most&hellip;&nbsp;<a href=\"http:\/\/www.sebcharrot.com\/blog\/my-first-3-garmin-watch-faces\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">My First 3 Garmin Watch Faces<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"categories":[23],"tags":[199,197,198,200],"_links":{"self":[{"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/posts\/707"}],"collection":[{"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/comments?post=707"}],"version-history":[{"count":6,"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/posts\/707\/revisions"}],"predecessor-version":[{"id":715,"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/posts\/707\/revisions\/715"}],"wp:attachment":[{"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/media?parent=707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/categories?post=707"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sebcharrot.com\/blog\/wp-json\/wp\/v2\/tags?post=707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}