Welcome to Connect IQ System 5

Today, Garmin announced Connect IQ System 5. This version of the Connect IQ system is focused on helping you make better, faster and stronger Connect IQ apps. Let’s take a quick look at some of the features.

Visual Studio Code Monkey C Extension 1.0.0

Last year, we announced the Visual Studio Code Monkey C extension and released the first beta. Today, we released version 1.0.0 with debugging support. With this release, we now recommend Visual Studio Code for Connect IQ development. The extension requires Connect IQ SDK 4.0.6, which you can get with the SDK Manager.

We are not deprecating the Eclipse plug-in at this time, but we also are not planning any future enhancements for the plug-in. All new development will be focused on the Visual Studio Code extension.

Improved App Settings

We know mobile app settings are important to your app experience, and we are giving you some new options for structuring your settings presentation.

Groups allow you to group a collection of related settings together. In mobile applications, they are editable in a sub-page, while in Garmin Express, they will be grouped together. You can also allow a group to be enabled and disabled by a Boolean setting. Groups can have a description string to explain the settings contained within.

Growable lists allow the user to edit a list of records. The user can add records up to a predetermined size or remove them from the list. In your app, they will show up as an array of dictionaries.

These features will all use the same back-end across mobile, Express and the Connect IQ SDK to reduce variance.

Here is some sample resources XML for how to use the feature:

<settings>

    <setting propertyKey="@Properties.recordInformation" title="@Strings.recordInformation">
        <settingConfig type="boolean" />
    </setting>

    <!-- 
        Here is the syntax for creating a group. This group has a
        dependency on the setting above being enabled with the
        "enableWithTrue" attribute.
    -->
    <group id="recordInfo" 
        title="@Strings.recordInformation" 
        description="@Strings.recordInfoGroupDescription" 
        enableIfTrue="@Properties.recordInformation">
        <!--
          The two settings are visually grouped together. In mobile
          they will be on their own page. In Express they are put within
          a visual grouping
        -->
        <setting propertyKey="@Properties.recordZoneGraph" title="@Strings.recordZoneGraph">
            <settingConfig type="boolean" />
        </setting>

        <setting propertyKey="@Properties.recordTimeInZones" title="@Strings.recordTimeInZones">
            <settingConfig type="boolean" />
        </setting>
    </group>

    <!-- 
      This is the syntax for a variable sized list group.
      In the properties.xml "customZones" is of type "array".
      The "maxLength" attribute puts a cap on how many items
      the user can create.
    -->

    <setting propertyKey="@Properties.customZones" title="@Strings.customZones" maxLength="6">
        <setting type="string" title="@Strings.zoneName">
            <settingConfig id="zoneName" type="alphaNumeric"/>
        </setting>

        <setting type="number" title="@Strings.speedCutoff">
            <settingConfig id="speedCutoff" type="numeric"/>
        </setting>

    </setting>

</settings>

Activity Simulation

We have revamped the simulation interface for the Connect IQ simulator. Now you can set where in your workout you want to add a simulation and have better control of the simulation events.

Profiler

We are also adding a new Connect IQ profiler to better measure app performance and see where to focus your attention. The profiler captures time spent in total within a function and for the code within a function and lets you examine the different call stacks profiled. The profiler is integrated into the simulator, and the devices will allow hardware profiling, as well.

New Guidelines

We want you to be able to make apps that feel native to the Garmin device experience. To help you design for all our products, we have revamped our user experience guidelines to document our device family personalities and help you make more native-feeling apps.

In addition, we’ve updated our app review guidelines to better help your apps get through review.

More Data

We are adding lots of new metrics and data access to the Connect IQ API:

In Toybox.ActivityMonitor:

  • Body Battery
  • Stress
  • Remaining recovery time

In Toybox.UserProfile:

  • VO2 Max
  • Activity history

In Toybox.Sensor:

  • Magnetometer
  • Gyroscope

This gives more insight to the user and will look great on a watch face.

Coming in 2022 - Revamped App Store Analytics

Next year, we plan to give the app analytics in our app store a total overhaul. Once this update is released, you will be able to see your total installs, your installs broken down by version and device, and the estimated percentage of users that currently have your app installed. This feature will be coming in 2022.

Try it Today

You can get the beta of Connect IQ System 5 from the Connect IQ SDK manager. To try the new version, you will need to download the SDK, as well as the following devices:

  1. fēnix® 6 Pro System 5 Preview
  2. Venu 2 System 5 Preview

These downloads will let you try out the new APIs on simulated devices. We look forward to your feedback!