Github of Garmin WatchFaces for New Programmers

Hey! Thank you to everyone in the community that helped me as a new programmer and student in College. 

Here's my Github for anyone who thinks they can benefit from it : https://github.com/SarahBass . It is full of Garmin Watchface examples.  

I am just posting my examples as help for new people trying to learn. Some of the watches have the full program in a Zip File on the release page for you to try out in VS Code. Please Don't Do any Pull Requests- These are already published, and I like them the way they are even if they might be sloppy, not the most efficient, or maybe not well organized. They work fine, I haven't had any crashes, and I have lots of positive reviews in the Store, so I think they are good enough for a beginner to look at. Plus I have a moon phase calculator, Horoscopes, and other cool stuff in there that I designed.  

If you find anything helpful -Follow or Star as a thanks ! Pray Blush 

My github also has Fitbit Watch Examples, Android Watch Examples, and Zepp/Amazfit Examples. I am trying to build my resume - so any stars or Follows is appreciated! 

If anyone else has a Github they want to share, I'd love to follow and see how you design your Garmin watches too!

  • Great !

    I'm curious why your pictures look sharp on the watch but mine are blurry, since you did not upload your resource images to github, I do not know the magic, can you help me? Thanks.

  • Thanks!! I do have my image resources on some of the watches - Look at the side of Github to download the whole zip file and then open it up in Visual Studio Code. Here's an example of a full program you can play around with : https://github.com/SarahBass/VirtualPetMonkey

    Here is my super comprehensive answer:

    I am using Visual Studio Code and the simulator to take screenshots. I use my Macbook Pro to screen record the simulator at the resolution of my screen. I take screen recordings of my simulation tests, as I have to run the program doing different things on different size watches. After doing this and having a good 10 minutes of  video recording, I then take snapshots from the video and use that as my promo art. I also like to edit a little video together and post it, so users can see what the watch looks like on different devices.

    I think it is best to use a high resolution watch for promo pics. I took a look at my diagnostics (Look at statistics page after you publish) , and saw that a majority of people downloading my app were using a Venu 2S and a Vivioactive 4S. I used the higher resolution Venu 2S for my promos, with the Venu 2S watch showing to attract more users who have one. 

    All my in program images are .PNG files not .jpeg , and I do not use dithering. The PNG files are made in a free Art Vector program called Vectornator, now called Curve. (A super nice guy runs that app, and if you ever post your work on Instagram and link it to him, he probably will promote your art or watch.)

    The benefit of Vectornator is that all the art can actually be downloaded as a javascript, as it is using vectors not pixels. Nice for me because I use my art for multiple platforms including Apple Watch, Fitbit, and Wear OS. You can export the images in any resolution you want because they are not pixel based, but running entirely on Javascript. 

    Although most of my art looks like it was drawn by a child, it actually has a lot of thought behind it!

    If you look at my program, I specifically use colors that appear sharply on Garmin watches, hand programming the values into the Vector Art Program. See picture above - I control the Fill and Stroke with Hex Codes.

    Read this page about optimizing bitmaps : https://developer.garmin.com/connect-iq/connect-iq-faq/how-do-i-optimize-bitmaps/

     

    In my Halloween Watch (Which I am currently working on) I am only using Transparent, 0xFFFFFF , 0x000000, 0x00AA00, and 0xFF5500? There are only 4 colors in the whole watch, no blending, no dithering, no pixelization. 

    So I always generate my background as a vector circle and fill with a clean color, in this case 0xFFFFFF (By the way, White drains the battery significantly. Use a darker color for better battery management - Many of my watches have a 0x000000 black background for this reason and don't drain the battery at all)

    The Cat is a animated .png, and the background grave and moon is a separate .png behind it. 

    This is going to come out crystal clean on the display!  The colors will look the same on every device because I used 16 bit colors. 

     Here is another example where I did not optimize colors as much:

    So for this image.

    The bright teal color 0x54FF82 of the alien will appear great on AMOLED screens like Venu 2S, but will be translated to 0x00FF00 on 16 bit devices and  0x00FFAA on a 64 Bit Screen. 

    Now there are different looks on different screens. 

    Also, although my final product looks like one image, there are multiple .png files being drawn at once and layered together using a transparent color enabled.

    My watches never get the highly desired "Animated" seal because I don't use the official animation Toy Box Library. I am just flashing 2 images using a single line of code to keep the memory usage down. My code probably looks different from other developers - so keep in mind that people are probably better optimizing their code for each model. You might want that official Animation Seal because it will get you more downloads. 

    You should have clean bitmap images for the following sizes:

    216x216

    240x240

    360x300 

    360 x360

    390x390

    416x416

    454 x454

    This is why using Vectornator works great for me, I make one image and then export it in any size I need quickly and the resolution is always 100% crystal clear because it came from a clean javascript vector and isn't getting re-pixalated or stretched. Below is a picture of me choosing a PNG format and exporting it at a 454x454 size. I can change what size I want and even the format (If i want it to be a svg, png, jpeg and so on) because it is a vector run on javascript. 

    For more help, Look at this guideline for 64 bit colors and watch resolutions: https://developer.garmin.com/connect-iq/reference-guides/devices-reference/

    I hope that helps!

  • Thank you for your reply .

    Your best practices will help me solve a problem that has been bothering me for days, thank you again.

    I will try your method in the near future.

  • Cool! I like your Virtual Cat and Virtual Shiba. I haven't connected my watch to GitHub yet, so I'll download them a bit later! I'm also a student, but I struggle with such complex tasks. Although I'm trying to improve my learning. I've found some help on https://mysupergeek.com/assignment-help-service and they are really awesome folks. They break down information in a way that even I understand XD. Good luck with your projects! Maybe later I'll learn too.

  • Yes, I've recently delved into the world of developing Garmin Watchfaces on GitHub and I have to say it's been quite the learning curve. As a new programmer, the community here has been incredibly supportive and the resources available have been invaluable in helping me get started.

    However, I ran into some issues renewing my students' access to GitHub for programs like IntelliJ. Every time I try to renew, I receive a message saying that my account has already been used to apply, but I have not received an email invitation to continue. It's a bit frustrating, especially when I really want to continue my educational journey.

    Additionally, I have also explored services like 'nc cloud' and although they offer great features, navigating through some of the issues can be a challenge sometimes, especially for newcomers like me.

    Despite these obstacles, I am determined to move forward and keep learning. I hope that with a little patience and maybe some help from the community, I can solve these problems and continue exploring the exciting world of programming. If anyone has any advice or suggestions, I'm all ears!

  • Yes, I've recently delved into the world of developing Garmin Watchfaces on GitHub and I have to say it's been quite the learning curve. As a new programmer, the community here has been incredibly supportive and the resources available have been invaluable in helping me get started.

    However, I ran into some issues renewing my students' access to GitHub for programs like IntelliJ. Every time I try to renew, I receive a message saying that my account has already been used to apply, but I have not received an email invitation to continue. It's a bit frustrating, especially when I really want to continue my educational journey.

    Additionally, I have also explored services like 'nc cloud' and although they offer great features, navigating through some of the issues can be a challenge sometimes, especially for newcomers like me.

    Despite these obstacles, I am determined to move forward and keep learning. I hope that with a little patience and maybe some help from the community, I can solve these problems and continue exploring the exciting world of programming. If anyone has any advice or suggestions, I'm all ears!

    If you haven't received the renewal email, reaching out to GitHub support can often resolve the issue.  Before I contacted support, I also had a similar situation. Each attempt leads to a message that my account has already been submitted, but I have not received an invitation by email. This is very frustrating, especially as I am eager to continue my educational journey. For academic writing, Edubirdie https://edubirdie.com/philosophy-paper-writers has been a great resource, offering help with philosophy papers and more. Any advice on how to deal with the GitHub issue would be greatly appreciated! 

  • Getting Help with my Assignment was a game-changer for me! The team at Help Assignment really knows their stuff. They provided clear guidance and support, ensuring I understood every step. Their expertise made tackling complex tasks much easier. I highly recommend Help Assignment for anyone needing reliable assistance with their assignments!