In the second quarterly maintenance release of 2023, System 6 is getting some exciting new features that you can take advantage of in your Connect IQ apps.
Wait, 6.2.0?
You might be wondering about the new system number. After years of matching the SDK version with the Connect IQ API version, the SDK is getting a new versioning scheme:
Version Digit |
Meaning |
Value |
Major |
The current system level of the Connect IQ platform |
6 (For System 6) |
Minor |
The current annual quarterly maintenance release |
2 (For quarter two) |
Micro |
SDK release within a quarter |
0 (First release in quarter two) |
Make sense? Good. Now here is what's new.
Scalable Fonts
Font support for Garmin devices can vary from device to device. All devices support Unicode bitmap fonts, but some devices support scalable fonts. If a device supports scalable fonts, the supported fonts are published in the Reference Guide as Scalable Font entries in the font list.
To access a scalable font, you can call Graphics.getVectorFont() using the name from the device reference as the :face argument. The :face argument also will take an array of face names. This allows you to specify backup font faces that are acceptable for your needs in case the device doesn’t support your preferred choice. You can also specify the font size in pixels.
Scalable fonts work with Dc.drawText() but can also be used with the Dc.drawAngledText() and Dc.drawRadialText(). These APIs only support scalable fonts and do not support custom fonts loaded as resources.
We have new syntax for layouts. In layout definitions, there are three ways to refer to fonts:
Reference |
Description |
Example |
System font reference |
Reference the standard FONT enumeration in the Graphics module. |
Graphics.FONT_SMALL |
Custom font reference |
Reference a font in application resources. |
@Rez.Fonts.MySmallFont |
Scalable font reference |
Reference a system scalable font. This is the font name and the pixel size separated by a colon. Additional font names can optionally be added separated by a comma. |
"#BionicBold:12,Roboto" |
Bitmap Transformation
API level 4.2.2 introduces Dc.drawBitmap2() with some powerful new features.
Connect IQ allows you to create two-dimensional affine transforms using the Graphics.AffineTransform class. AffineTransform provides access to the underlying transformation matrix and common operations like rotation, scaling and shearing.
To apply the transform, pass the AffineTransform into Dc.drawBitmap2() as the :transform argument in the options dictionary.
Sometimes you want the color of an asset, like an icon, to be user-definable. For example, you may want the complication icons on a watch face to match a user-defined theme color. One of the features of Dc.drawBitmap2() is the ability to apply a tint color to an asset. The :tintColor option can be used to specify a color to apply to a white asset.
Requesting Reviews
As a developer, you want your users to review your apps after they’ve had positive experiences. Ideally, this would be a low-friction experience to maximize the number of users who leave positive reviews.
For compatible devices, the steps to leave a review are as follows:
- Request a review token
- Receive a token from the store
- Initiate the review process
To prevent user harassment, apps must request permission from the app store to perform a review request. The app store validates a number of factors, including if you have recently requested a review from a user and if the user is using the most recent version of the app. The token request can be made with the WatchUi.makeReviewTokenRequest() call. This call is asynchronous, and you must provide this call with a Lang.Method callback.
When the server responds to your review request, your callback will be invoked with the server response code and optionally the review tokens. The response codes are as follows:
Response | Description | API Level |
---|---|---|
REVIEW_REQUEST_STATUS_GRANTED | Request is granted, and token has been provided | 4.2.0 |
REVIEW_REQUEST_STATUS_DENIED | User does not meet review requirements | 4.2.0 |
REVIEW_REQUEST_STATUS_FAILED | Cannot make review request at this time | 4.2.0 |
If you receive a token it should be valid for the current day. When you are ready for the user to review the app, you can use WatchUi.startUserReview()
with the valid token from a token response.
Red Shift
The epix (gen 2) Pro series introduced a new feature called Red Shift that makes the watch easier to read in low light conditions. The Connect IQ simulator will now let you simulate red shift for testing purposes.
Try It Today
These System 6 features are now available for the following devices:
Scalable Fonts |
Bitmap Transformation |
On-Device Reviews |
epix(gen 2) |
Epix (gen 2) |
Edge® 540 |
Get the Connect IQ 6.2.0 SDK with the SDK manager today to update your apps with these exciting features.