XTINY font not tiny enough?

Does anyone else find that the XTINY font size is just too big on some devices?

I am really struggling to make a consistent looking UI when the ratio of font size between the XTINY and the larger number fonts varies between devices, this mainly seems to be an issue on the Venu Square models

Interested to know if anyone else has found that and did they end up rolling their own font set for some models?

I am sure that Garmin performed some human factors study to deliberately prevent app developers going too small...or maybe they just thought an XXTINY would sound stupid!

  • The sizes of native fonts are generally defined by the folks that do the firmware and not CIQ. and since the first CIQ device, the relative sizes have been different between devices.  And with NUMBER fonts the amount of whitespace above and below the characters varies.

    Year ago the FONT_SYSTEM_* fonts were added, with the intent being there would be the SYSTEM fonts which were the FW fonts, and the non SYSTEM fonts being CIQ fonts were things were relative, making porting apps easier.

    Not sure why but that plan was dropped not long after, but the names remained, so now the FONT_SYSTEM_* fonts are now the same as their FONT_* versions.

    Depending on how you do your code the complexity of porting to a new device can be minimal., but this has come up since day 1 of CIQ

    You can use your own custom fonts (I do that for some watch faces) to simplify things but then your fonts may look different than the fonts in everything else, and may not include all the characters needed for the language setting of the device

  • yes, for example in edge devices.

  • Yes, I'm already using a function to workaround the NUMBER font padding discrepancies. The issue I am finding with the XTINY is that, for example on the VenuSQ XTINY is 26px and screen is 240px height so thats 10.8% of the screen height, whereas on the Venu its 33px / 390 = 8.4% of height, which doesnt seem much but it looks pretty different on UI

  • Luckily I'm not supporting Edge Sweat smile

  • Try the f3 and fr920.  Two of the original CIQ device, and you'll see fonts are different.  And you'll see differences on many other devices.

    It's one of the challenges in porting apps to different devices that's been there since day 1 and you'll learn to write your apps such that things look ok on the different devices.

    What you want to do is make things look reasonable on both the venu SQ and venu1, then try the venu X1 (just announced)

  • I am writing my app to support 94 devices from the start....the UI layout is all based on percentages which works well on the whole, but when the font sizes don't scale up/down uniformly with the screen size it causes these issues 

  • Watches and non watches can use the same basic logic to handle the differences.  I have a number of apps that run fine on both,  I have a test app I wrote when the Edge 520 was first added to the CIQ devices, to understand the fonts.

  • Many of my apps support every CIQ device with the exception of the epix1 but that's for a number of reasons,

    Seems you are finding that multi device support isn't as easy as your first thought.

    If you look through the 10 years of posts here, you'll find that others were surprised by the same thing

  • I knew it was going to be a pain, I was just interested to know if any other developers had overcome this issue by loading their own 'XXTINY' font, it seems like the only way to achieve a consistant UI for some devices.

  • What I find particularly frustrating on Edge devices is the large gap between the LARGE and MEDIUM font sizes. Unfortunately, these devices don’t support vector fonts, which makes consistent sizing difficult.

    On devices that do support vector fonts, they’re a great solution for achieving uniform sizing across different screens, since you can specify the font size relative to the screen dimensions. They also allow you to go beyond the standard sizes—both smaller and larger—and can be used just like standard fonts, so it's relatively straightforward to support both types of devices with the same code.

    However, a major drawback of vector fonts is performance—rendering them is significantly slower compared to standard bitmap fonts. To improve efficiency, especially if you're reusing the same text in multiple places or across onUpdate calls, you can render the text once to a BufferedBitmap and reuse it.