the f5,f5x,q5,D2 Charlie and 935 all have the same screen size and fonts, so if you work with one, it'll work for all -240x240 the f5s, Chonos are the same size, with the same native fonts - a bit smaller than the 240x240 devices - and are 218x218. The f3 is the same size but the fonts are different
So, how you handle this kind of depends on how you wrote your WF. If you don't use layouts, in onLayout you can figure out if you're on a 240x240 device, or a 218x218 device, set a few variables need to display things, and just let onUpdate do it's thing Adding the f3 is a bit trickier, as you need more than just width/height to see if you're running on that, so you figure out a few things at runtime
If you use layouts, you can do things at compile time, using resource overrides -see the programmers guide.
With this you can have different layouts, custom fonts, bitmaps, etc, and can even have different code for different devices with build file excludes. and can do overrides based on the devive and not just the family
resources-fenix3
I didn't note that while the Approach S60 is also 240x240, the native fonts are different than the f5 devices.
On one of my apps where I draw everything, I use a 2400x2400 coordinate system and divide everything by a factor which is determined by the screen size. 10 for 240x240 watches, and 11 for 218x218 watches. Seems to work well for me.
gasterpod, one thing to consider is that not all 240x240 devices are the same (nor are the 218x218s).
For example, the Approach S60 is 240x240, the fonts are different than the f5 family and 925, and for 218x218, the fonts are different between the f5x and f3.
dividing might get you part of the way but fonts can be indeed very different on some devices the xtiny is equal in size to tiny and small font, while on others it's totally different. I usually reference the ux guide of the sdk when developing a screen for a new watch (ux guide is found in the root of the sdk folder)