Time is an illusion. (Albert Einstein)
Lunchtime – doubly so. (Douglas Adams)
There’s a good chance you’re wearing a watch on your wrist right now, and if you’re not wearing a horologically significant or sentimental time piece you’re probably wearing a smart watch, and if you’re wearing a smart watch it should be a Garmin watch (they did NOT pay me to say this)
Dussehra is a Hindu festival based on an Indian epic that celebrates the triumph of good over evil. The watch face features Ravana, the ten-headed demon killed by King Rama, decorated with some traditional Indian motifs and designs.Please configure your watch face via Garmin Connect Mobile, Garmin Connect IQ Mobile or Garmin Express. See full list on chariotsolutions.com. Develop watch faces, data fields, widgets and apps for our wearable devices. Garmin Connect Developer Program Develop custom applications using health and activity data and send training plans and courses to Garmin Devices. Nov 18, 2019 It was named the winner of “Best New Watch Face” at Garmin’s 2019 Connect IQ Developer awards. It shows a variety of stats and info, and there are three configurable data fields including heart-rate, battery level, and mobile notifications. It’s great to be able to develop watch faces and apps for smart watches, and I feel that Garmin is making the whole process easy for new developers, especially if you have some Android background. The only suggestion I have is to make the dev environment a little friendlier and documentation more organized.
Garmin watches are awesome. They are rugged, they hold the battery charge for days, some models even weeks, and they are highly customizable.
It is that last aspect that we’re going to concentrate on in this tutorial.
Garmin has an equivalent of Apple App Store (good name) or Google Play Store (horrible name), and it’s called Garmin Connect IQ Store (I’d like to be in that naming meeting)
App development for Garmin watches is done using proprietary language “Monkey C” (https://developer.garmin.com/connect-iq/monkey-c/) (probably named in that same meeting after everyone got drunk)
…yeah, really! What’s next? Monkey Do?
So, with that in mind, we’re going to design and implement a watch dial in monkey-c and deploy it to Garmin’s IQ store.
I wanted the watch face to look like Casio G-Shock because they are awesome, particularly G-LIDE model (GBX100)
I wanted the dial to show time, date, weather, pulse, steps, calories, distance walked today, and battery charge. I didn’t want to ask users for any extra permissions and I wanted this app to be as easy on the battery as possible, without any background processing.
I went on to design the dial on a piece of paper as I’ve heard that designing upfront makes the whole development process easier, and so I went through a couple of iterations.
Nothing exciting to talk about here, I just followed Garmin’s getting started guide: https://developer.garmin.com/connect-iq/connect-iq-basics/getting-started/
In short, you’ll need to download and install the Connect IQ SDK, sign up for dev account, install Eclipse (yuck) if you don’t already have one, install Connect IQ Eclipse plug-in, which turns Eclipse into a Connect IQ development environment, and generate dev key.
The installation will be somewhat painful if it’s your first development endeavor, but nothing like installation of an IBM Websphere Portal.
After all installation is done you can go ahead and create your own sample app to make sure everything works.
Follow this: https://developer.garmin.com/connect-iq/connect-iq-basics/your-first-app/
Once all steps are completed, run the app and this is what you’ll see in a simulator:
If you followed the instructions to the letter then you’ve probably installed command line tools, which give you wonderful commands like:
// Compile the executable:
> monkeyc -d fenix5plus -f /path/to/monkey.jungle -o project_name.prg -y /path/to/Dev_Key
// Run in the simulator
> monkeydo myApp.prg fenix5plus
I’m starting to really like these Garmin folks, they seem to have a sense of humor.
Source code of the sample app looks very much like Android source code, with classes extending Views, xml layouts and referencing elements by id:
Again, the way layout works is very similar to Android, the watch face layout is located in /resources/layouts/layout.xml
It looks like Garmin is running a highly customized version of Android, so Android devs will feel right at home here… if you want a flashback to the early days of Android.
Unlike working in Android Studio however, working in Eclipse feels like I’m back in early 2000s. It’s clunky and unnatural and unintuitive. Something that only takes a few seconds to implement in Android Studio now takes forever in Eclipse. This makes you really appreciate JetBrains’ IDEs (They did not pay me to say this.)
When laying out the elements on the watch face you have to remember that the coordinate system is based on a square screen, so the corners are beyond the round viewport of the watch. So, if you place something in the corners they will not show up, you’ll have to experiment with coordinates, like in the layout I have below:
You can define coordinates in pixels or percent.
I also wanted to display a grid of gray lines, like on Casio watches, this is taken care of by:
<drawable id=“scaffolding”></drawable> which references scaffolding.xml:
At this point all data except for the time is hardcoded. Time to connect it to the real data.
For getting the data on the screen we’ll use
Toybox.ActivityMonitor gives us heart rate, steps, burned calories and distance walked/ran since midnight. The distance is in cm, so we’ll have to convert it to miles or km based on system settings
Toybox.System gives us clock and battery
Toybox.Weather gives us weather
Toybox.Application gives us access to properties that can be set by the user in the app settings.
So now, once we have a layout defined, we can get the element in code by
and set its value, for example for the hours and minutes:
There is a way to create a watch face that would accept users’ custom settings, like for colors, or optional fields on the screen. For this you’ll define resources/settings/settings.xml
and resources/settings/properties.xml
To run settings screen for the simulator, use Eclipse’s ConnectIQ tab, then select App Settings Editor.
One of the main struggles I had was the battery icon. I wanted it to be a proper graph, indicating a real-time charge level. The problem is all Garmin devices have different resolutions, and there’s no notion of DIP in Garmin (Density Independent Pixels) So, I had to create my own DIP calculation:
Please don’t laugh, my brain still hurts.
Oh yeah, and be prepared to draw or modify icons pixel by pixel, and with specific colors Garmin recognizes. I used Gimp, it’s free and it’s awesome:
Anyway, after all said and done here’s what I got:
You can find it in Garmin’s app store here: https://apps.garmin.com/en-US/apps/c2f2b648-ab65-4329-991a-b9f240bcb92f
It’s great to be able to develop watch faces and apps for smart watches, and I feel that Garmin is making the whole process easy for new developers, especially if you have some Android background.
The only suggestion I have is to make the dev environment a little friendlier and documentation more organized. Working with Eclipse and Garmin’s plugin is a huge step back when compared to Android Studio and Intelli-J that it’s based on.
Watch Face Gallery
Working with current dev documentation can be frustrating and you’ll end up hunting for a simple answer forever.
Also, there’s a great forum for Garmin devs: https://forums.garmin.com/developer/connect-iq/
You’ll meet a lot of good folks there. They have changed my perspective on Garmin development from negative to positive over the course of 3 weeks.
Developers and the engaging and appreciative users are what made me enjoy the whole process.
Happy coding!
Joe Berger
References:
Special thanks to Joshua Miller for inspiration: https://medium.com/@JoshuaTheMiller/making-a-watchface-for-garmin-devices-8c3ce28cae08
Several of Garmin’s latest watches offer support for apps, music and other smart features. They can also be personalized by downloading and installing custom watch faces, which completely change the way the main display looks.
Some of the Garmin smartwatches that support custom watch faces include Fenix 6, Forerunner 235, Vivoactive 3, Forerunner 45, Forerunner 245 and Forerunner 945. If you’d like to check whether or not your device is supported you can visit Garmin’s ConnectIQ storefront.
Like much of Garmin’s downloadable content, the watch faces are created by third-party developers. You can browse, download and rate them via ConnectIQ. More are added to the store regularly, so it’s always good to check back and see what’s new.
You can also download apps, widgets, and other updates via ConnectIQ depending on the device you own. Almost any of Garmin’s wearables can be enhanced by adding new device apps or custom data fields, which allows the watch to track more than it does natively. A Garmin Approach golf-themed watch, for example, can be used to track hiking specific stats, or display a star-chart, merely by installing new content.
That being said, one of the best ways to spruce up your watch is to install custom watch faces. You can find new faces that display way more than just the time, like sports stats, calendar details and even custom graphics — there’s a Super Mario themed watch face!
To help you get started, here are some of the best Garmin watch faces you can download right now:
25. Duck Hunt
Remember the classic Nintendo game Duck Hunt? That’s precisely what this watch face is, an animated rendition. When you look at your watch the animation plays, showing an endearing Muttley giggling as ducks fly overhead.
There are no stats displayed, just the time and date so this watch face is best when you don’t care to see your data or metrics.
Compatible Devices: D2 Bravo/ Titanium / Charlie / Delta / Delta PX / Delta S, Descent MK1, Epix, ForeAthlete 230J / 235J / 630J / 735XTJ, Forerunner 230 / 235 / 245 / 245 Music / 45 / 630 / 645 / 645 Music / 735XT / 935 / 945, All Fenix 3, All Fenix 5, Fenix Chronos, Garmin Swim 2, Vivoactive, Vivoactive 3 / 3 Music, Vivoactive HR
24. CarbonAnalog
If you want a simple analog watch with a carbon-fiber style design then CarbonAnalog is a good choice. Right now, not many devices are supported. Hopefully, the developer will add more soon.
Compatible Devices: D2 Bravo, D2 Bravo Titanium, Fenix 3, Fenix Quatix 3, Fenix Tactix Bravo, Fenix 3 HR, Fenix Chronos
23. Energy Face
If you want a clean e-ink style watch face that doesn’t use a lot of battery, check out Energy Face. It also displays a huge selection of personal stats and info, like Bluetooth status, alarm, and moon phases. It also has several configurable fields.
Compatible Devices: Approach S60, All D2, Descent MK1, ForeAthlete 230J / 235J / 630J / 735XTJ / Forerunner 230 / 235 / 630 / 645 / 645 Music / 735XT / 935, All Fenix 3, All Fenix 5, Fenix Chronos, All MARQ, Vivoactive 3 / 3 Music
Energy Face at ConnectIQ
22. Simply Late!
This watch face offers a rather unique take on the modern watch. All that’s displayed is the current hour with a progress indicator to tell you what part of the hour you’re in. Data is also displayed nicely at the top. It’s meant for anyone who likes to see the current hour at a glance, but nothing more.
Compatible Devices: Approach S60, Captain Marvel, All D2, Descent MK1, First Avenger, ForeAthlete 230J / 235J / 630J / 735XTJ, Forerunner 230 / 235 / 245 / 245 Music / 45 / 630 / 645 / 645 Music / 735XT / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, Garmin Swim 2, All MARQ, Rey, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivoactive HR
21. Divinity
Like skulls? Want one on your watch face alongside the date and time? Then check out Divinity, an official watch face from Garmin.
Compatible Devices: Approach S60, All D2, Descent MK1, First Avenger, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 3, All Fenix 5, Fenix Chronos, All MARQ, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivolife
20. GearMin
The GearMin watch face is an absolute beast, displaying just about every stat and personal detail your watch can track. It’s for data lovers and always active people, specifically those that want quick access to all important stats. You get elevation, current location, date and time, total steps, goal progress, Bluetooth status, notifications, heart-rate, alarms, an activity graph and much more.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, Epix, First Avenger, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 630 / 645 / 645 Music / 735XT / 920XT / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivoactive HR, Vivolife
19. Classic Collection
The best thing about this watch face is it’s a bundle that includes several classic designs inspired by real watches. All of the faces feature analog clock designs, of which there are seven. There are a variety of configurable colors, backgrounds, clock hands and more.
Garmin Developer Watch Facebook
Compatible Devices: Approach S60, Captain Marvel, All D2, Descent MK1, First Avenger, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S
18. DividedTime
Want a plain style watch that displays the current time and date, with plenty of configurable options? Look no further than DividedTime. It offers a wide range of color options for the foreground and background. You can also remove everything extra for an incredibly clean style.
Compatible Devices: Approach S60, Captain Marvel, All D2, Descent MK1, First Avenger, ForeAthlete 735XTJ, Forerunner 230 / 235 / 245 / 245 Music / 45 / 630 / 645 / 645 Music / 735XT / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, Garmin Swim 2, All MARQ, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivolife
17. Infinity
Infinity mimics traditional analog watches by display hour, minute and second hands. In the background is an infinite array of cubes, which is where the name comes from. At the north side of the face is the battery level and the south side has total steps. It looks great, works great and is definitely one to grab.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, First Avenger, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Venu, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivolife
16. RunningPro
This watch face has another analog-style design, except it displays running and activity stats in the background. You can see battery levels, current weight, altitude, calories burned, total steps, data, moon phase and more.
Compatible Devices: All D2, Forerunner 645 / 645 Music / 935, All Fenix 3, All Fenix 5
15. Clock32
This watch face has a stylish, digital design with the time and date in the center and a progress bar around the edges. It supports multiple color configurations and displays a ton of extra details. You can see heart-rate, total steps, notifications, alarms, Bluetooth status, battery level and much more.
Compatible Devices: All D2, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 630 / 645 / 645 Music / 735XT / 920XT / 935 / 945, All Fenix 3, All Fenix 5, Fenix Chronos, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive HR
14. Time Flies
This watch face has a slick, analog and digital clock design with “rich customization options” and support for several detailed stats like data, Bluetooth status, and battery level.
Compatible Devices: Approach S60, All D2, Descent MK1, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 630 / 645 / 645 Music / 735XT / 920XT / 935 / 945, All Fenix 3, All Fenix 5, Fenix Chronos, All MARQ, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive HR, Vivolife
13. DigiSport
This watch face closely resembles the Nike face available on the Nike+ edition of the Apple Watch. The time is displayed on the right, and three circular icons sit on the left. The icons can be customized, allowing you to choose what’s displayed. Most of the options are unlocked by buying the premium version for $1.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, Epix, First Avenger, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 630 / 645 / 645 Music / 735XT / 920XT / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivolife
12. Lachesis (Light)
This animated watch face displays illuminated neon colors around the edges and places the time right in the center. There are four color schemes: coral pink, sunset orange, ocean green and sand grey. Extra info displayed includes calories burned, battery level, data and total steps.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, First Avenger, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Venu, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivolife
11. SkyTracker
If you want to see weather data, SkyTracker is the right watch face. It will show the temperature and weather conditions for your current location. It also displays battery level, heart-rate, mobile notifications, time and data. Additional options are available to unlock, too, like new colors and more.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, First Avenger, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 5, All Fenix 6, All MARQ, Rey, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivolife
10. ActiFace
If you want as much information on your small watch display as possible, then ActiFace is the right choice. It shows time and date, daily goal progress, total steps, mobile notifications and heart-rate. It also displays a useful activity history graph that shows the distance you’ve traveled and the total calories you’ve burned along the way.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, Epix, First Avenger, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 45 / 630 / 645 / 645 Music / 735XT / 920 XT / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, Garmin Swim 2, All MARQ, Rey, Venu, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivoactive HR, Vivolife
9. Gigantus
This watch face puts the time front and center in large, bold print. Various stats are displayed around the time, including heart-rate, Bluetooth status, alarms, activity details and more. You can also change the display colors by choosing from several presets.
Compatible Devices: Approach S60, All D2, Descent MK1, ForeAthlete 230J / 235J / 630J / 735XTJ, Forerunner 230 / 235 / 630 / 645 / 645 Music / 735XT / 935, All Fenix 3, All Fenix 5, Fenix Chronos, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music
Gigantus at ConnectIQ
8. Sport Master
Another official Garmin watch face, Sport Master is for all the active folks out there who want to track their progress in real-time. Time is displayed in both digital and analog formats. Additional details include calories burned, total steps, distance traveled, date, battery level and more.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, First Avenger, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Venu, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivolife
7. NoFrills
If you want something that has no frills, this watch face is the one to grab. The time sits front and center in a beautiful, bold font. As you progress towards your daily goal the numbers fill up with water. Additional stats are displayed around the edges including heart-rate, date, alarms, Bluetooth status, notifications and battery level.
Compatible Devices: Approach S60, Captain Marvel, All D2, Darth Vader, Descent MK1, Epix, First Avenger, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 45 / 630 / 645 / 645 Music / 735XT / 920 XT / 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Rey, Venu, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivoactive HR, Vivolife
6. Ha Long Bay
Another animated watch face, Ha Long Bay adds a beautiful boating scene. Stats include total steps, battery levels, Bluetooth on, and time and date. It’s minimal, but it looks great and leaves plenty of open space to see the animation.
Compatible Devices: Approach S60, All D2, Descent MK1, Epix, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 630 / 645 / 645 Music / 735XT / 920XT / 935 / 945, All Fenix 3, All Fenix 5, Fenix Chronos, All MARQ, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive HR, Vivolife
5. JBlack
If you want a clean watch face that’s packed to the brim with info, JBlack is your best bet. It shows alarms, battery levels, BT status, the current moon phase, total steps, and, of course, the time and date. Plus, if you make a small donation to the developer who created it, you can unlock a few other features too like heart-rate or sunrise and set times (to clarify, the watch already shows this info via settings but a donation adds support to the home screen).
Compatible Devices: D2 Delta / Delta PX / Delta S, Descent MK1, Forerunner 645 / 645 Music, 935 / 945, All Fenix 5, All Fenix 6, All MARQ
4. Crystal
Want as much information on-screen as possible, yet in an attractive way? Crystal is your type of watch face. It was named the winner of “Best New Watch Face” at Garmin’s 2019 Connect IQ Developer awards. It shows a variety of stats and info, and there are three configurable data fields including heart-rate, battery level, and mobile notifications.
Garmin Watch Face Builder
Compatible Devices: Approach S60, All D2, Darth Vader, Descent MK1, First Avenger, ForeAthlete 735XTJ, Forerunner 235 / 245 / 245 Music / 45 / 630 / 645 / 645 Music / 735XT / 920XT/ 935, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, Garmin Swim 2, All MARQ, Venu, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivoactive HR, Vivolife
Garmin Custom Watch Face
3. Movement
Made by Garmin, Movement is an excellent watch face in style and function. There’s a rainbow style UI, with various metrics placed around the face. You can see elevation, battery levels, a music equalizer, along with time and date. You can also change the colors to personalize the face if you like.
Compatible Devices: Approach S60, All D2, Descent MK1, Forerunner 245 / 245 Music / 645 / 645 Music / 935 / 945, All Fenix 3, All Fenix 5, Fenix Chronos, All MARQ, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivolife
2. Line
Create Garmin Watch Face
Line takes a unique approach to display metrics and time info on screen all at once. As the name suggests, a line separates the time and date from personal stats. There are multiple configurations so you can swap the layout to be side-by-side or top-bottom. You can change the display colors. The information shown includes calories burned, battery life, weather, heart-rate, mobile notifications, alarms and more.
Watch Facebook
Compatible Devices: Approach S60, Captain Marvel, All D2, Descent MK1, Epix, ForeAthlete 230J / 235J / 630J / 735XTJ / 920XTJ, Forerunner 230 / 235 / 245 / 245 Music / 630 / 645 / 645 Music / 735XT / 920XT/ 935 / 945, All Fenix 3, All Fenix 5, All Fenix 6, Fenix Chronos, All MARQ, Vivoactive, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivoactive 4 / 4S, Vivoactive HR
1. My Watch
My Watch takes the number one spot because of how functional it is. It doesn’t look bad either, especially with how the minor details are displayed. The time takes front and center, and you get a wide variety of stats and info including heart-rate, activity time, altitude, temperature, moon phases, and much more. There are also two styles, light and dark, and none of the features are locked behind a paywall or donation requirement.
Watch Face Amazfit
Compatible Devices: Approach S60, All D2, Descent MK1, Forerunner 645 / 645 Music / 935, All Fenix 5, Vivoactive 3 / 3 Mercedes-Benz Collection / 3 Music, Vivolife