I would like to experiment with creating an app for the Garmin Swim 2 which uses SDK 1.4.0. The oldest SDK shown by my Connect IQ app running on my Ubuntu desktop is 3.1.8.
How do I get the proper SDK?
I would like to experiment with creating an app for the Garmin Swim 2 which uses SDK 1.4.0. The oldest SDK shown by my Connect IQ app running on my Ubuntu desktop is 3.1.8.
How do I get the proper SDK?
You can use any current SDK to build for the Swim 2 (or any CIQ device) Don't confuse the version of CIQ on a device with the SDK version you are using.
I did try using Connect IQ 4.1.5, 4.1.3, and 3.2.5 as the default SDK specified in the sdkmanager and the Garmin Swim 2 did not appear on the list of possible devices in Monkey C: Edit Products. A whole bunch of other Garmin devices do appear.
What kind of app is it? Gamin Swim 2 only supports watch faces.
On Windows, see %APPDATA%\Garmin\ConnectIQ\Devices\garminswim2\compiler.json - appTypes
Use 4.1.5 and make sure you don't have the min SDK/API Level for your app set to something like 3.x.x.
The Swim2, like the fr45, only supports watch faces. No device apps, widgets, or data fields.
Thanks, this worked.
For posterity, 3.x.x or greater did not work.
Yes, because the fr45 and Swim 2 are CIQ 1.4.x, as are things like the va,fr23x, fr630, fr920, fenix3.
Some like the va-hat and fr375 are ciq 2.x.x, etc, and setting 3.3.x can cause issues with ciq 4.0.x.
I always use a min SDK/API level of 1.2, and remove others as targets and use "has" where needed.
setting 3.3.x can cause issues with ciq 4.0.x
To clarify this, since Garmin won't, Garmin has basically defined "CIQ System 5" as:
- CIQ 3.3 for 3.x devices
- CIQ 4.1 for 4.x devices
(The reason for this is that devices which launched with CIQ 3 will never get CIQ 4, but Garmin still wants to have a common "new" set of features that applies that both CIQ 3.x devices and CIQ 4.x devices.)
So there's a bunch of features that are only available for System 5, but the API docs for them always say "Since: CIQ 3.3"
The problem is that in this case, "Since: CIQ 3.3" *really* means:
- Since CIQ 3.3, for CIQ 3.x devices
- Since CIQ 4.1, for CIQ 4.x devices
What does this have to with minimum API level in the manifest?
There's no way to use minimum API level to include System 5 devices/firmware, and only System 5 devices/firmware.
- If you set it to 3.3.x, you'll incorrectly include 4.0 devices
- If you set it to 4.1.x, you'll incorrectly exclude 3.3 devices
This also means that if you want to publish an app which *relies* on a System 5 feature (as an integral part of its functionality), there's no user friendly way to do this (i.e. by excluding their devices from the store.) If you use a low minimum API level like 1.2 and only select target devices which *may* have System 5 firmware, then you'll still have to use has at runtime to make sure that System 5 feature is available. So what do you do if it that feature is unavailable at runtime? Display an error message, apologize, and ask the user to uninstall the app?