• Connect IQ 4.0 Preview 3 SDK

    We released the Connect IQ 4.0 Preview 3 SDK  today, which includes several fixes for issues identified in earlier preview releases. We've also released two 4.0-compatible wearable device configurations (Upcoming Wearable and Upcoming Small Wearable), which you can use to start updating your own apps for future 4.0-compatible products. The Preview 3 SDK is required to use these devices, so be sure to install both!

    You can get the Connect IQ 4.0 Preview 3 SDK and the upcoming wearable configurations today using the Connect IQ SDK Manager (make sure you have the latest version). We also have a sample on Github that demonstrates Monkey Types features.

    For more information on some of the features available in the 4.0 SDK, please take a look at the Welcome to Connect IQ 4.0 announcement. If you have any feedback on these new features, we’d love to hear it. Please drop us a line in the forums so we can see what you think.

    • Apr 13, 2021
  • Garmin Developer Virtual Conference is back October 13, 2021

    Join us virtually on October 13, 2021 to learn about all things Garmin Developer Programs - including major developer announcements and information for the year ahead.

    Similar to last year, this free virtual event will have presentations and keynotes, breakouts and the opportunity to engage with our Garmin team in Q&A.

    More details will be available in the months ahead on developer.garmin.com/gdvc or right here on the Connect IQ Developer Forum. In the meantime, remember to mark the date - October 13, 2021 - in your calendars.

    Thanks to those who attended GDVC 2020, we reached more developers and partners than ever - engaging and connecting with people from around the world. If you missed last year’s event, don’t worry, there’s still time to view our breakout videos.

    Stay informed on all things GDVC, join our mailing list!

    • Apr 8, 2021
  • Enduro Now Available in Connect IQ SDK Manager

    The EnduroTmhas been added to the Connect IQ supported device list. Featuring a Power GlassTm solar charging lens that extends battery life and packed with top performance features, the Enduro GPS watch is built for extreme endurance athletes.

    Use the Connect IQ SDK manager to update your device library and add Enduro support to your apps.

    • Feb 16, 2021
  • Welcome to Connect IQ 4.0

    At the Garmin Developer Virtual Conference this year, we shared some of the new features coming to Connect IQ 4.0 and also released a preview of the new Visual Studio Code extension. Today we have released a first preview of the Connect IQ 4.0 SDK. Let’s dive a little deeper into the new features you can expect from Connect IQ 4.0.

    Monkey Types

    Monkey Types is the new gradual type system for Monkey C, and this release has the first developer preview of the feature. Monkey Types is turned off by default for language compatibility, but you can turn it on by going to the compiler options settings in Eclipse or Visual Studio Code and adding ‘-l 1’.

    As an example, here is a watch face onUpdate function using Monkey Types:

        // Update the view
        function onUpdate(dc as Dc) as Void {
            // Get and show the current time
            var clockTime = System.getClockTime();
    
            var info = System.getDeviceSettings();
            var hour = clockTime.hour;
    
            if(!info.is24Hour) {
                hour = hour % 12;
                hour = (hour == 0) ? 12 : hour;
            }
    
            var timeString = Lang.format("$1$:$2$", [hour.format("%02d"), clockTime.min.format("%02d")]);
            
            _timeLabel.setText(timeString);
    
            var date = Gregorian.info(Time.now(), Gregorian.FORMAT_SHORT);
            var dateString = Lang.format("$1$/$2$/$3$", [(date.month as Number).format("%02d"), date.day.format("%02d"), date.year.format("%02d")]);
            _dateLabel.setText(dateString);
    
            // Call the parent onUpdate function to redraw the layout
            View.onUpdate(dc);
        }

    If this looks remarkably like what you’re used to, that’s the point. Monkey Types uses type-inferencing to identify types when possible, and it will only type-check what it knows about (including the API). It does require function arguments, return values and member variables to have typing information added using the “as” keyword.

    The “as” keyword also does double-duty as the casting operator, which you can see on this line:

    var dateString = Lang.format("$1$/$2$/$3$", [(date.month as Number).format("%02d"), date.day.format("%02d"), date.year.format("%02d")]);
            _dateLabel.setText(dateString);

    The reason we need to cast month is that it can be a Number or a String, but only a Number has the format method. Monkey Types can see that without having to cast date as a Gregorian.Info.

    We think Monkey Types will make it much easier to find type errors. It also does not add any runtime cost and will work for code for all Connect IQ devices. We reserve the right to change the grammar or behavior, so don’t make any irreversible changes to your code based on this preview. Look in the Monkey C section of the documentation included in the SDK for more information.

    Resource Compiler Updates

    Traditionally, Garmin wearables have featured always-on displays, but limited color palettes to utilize for your Connect IQ apps. That all changed with the Venu®, which introduced the first AMOLED display for a Garmin wearable. We’ve brought a few changes to Connect IQ 4.0 to make it easier for you to support the wide range of displays in Connect IQ.

    First, the resource compiler now supports SVG as a standard import format. SVG is a popular vector format that is supported by a number of vector editing programs. SVGs are importable using the bitmap tag, which makes it easier to import complex vector imagery that scales across multiple products.

    Speaking of scaling, the bitmap tag also supports three new options for scaling a bitmap on import:

    Attribute

    Value

    Notes

    scaleX

    Pixel value or Percent

    Can be independent of scaleY. If scaleY is set but not scaleX, will assume scaleX = scaleY

    scaleY

    Pixel value or percent

    Can be independent of scaleY. If scaleY is set but not scaleX, will assume scaleX = scaleY

    scaleRelativeTo

    “screen” or “image”

    If scaleX or scaleY is a percentage, will compute the percentage relative to the screen resolution or the image resolution

    For example, if you want an image to be your header and take up the top 10% of the screen, you can use the syntax:

    <bitmap filename="example.svg" id="example" scaleY="10%" scaleRelativeTo="screen" />

    This will perform image scaling to account for the different watch face sizes on a vívoactive® 4s and a Venu. When combined with SVG, this makes it much easier to make layouts that scale across products.

    Get the Preview

    You can get the Connect IQ 4.0 preview SDK today using the Connect IQ SDK Manager (make sure you have version 1.0.2 of the SDK Manager). We have a sample on Github that demonstrates Monkey Types.

    If you have any feedback on these new features, we’d love to hear it. Please drop us a line in the forums so we can see what you think.

    • Feb 2, 2021
  • Dark Mode is the New Black

    The next version of the Connect IQ Store is adding a dark theme for the iOS and Android apps. Now your app icons can be presented in dark mode against a dark background (#252525) instead of the standard light theme (#FBFBFB).

    To make your apps look their best in dark mode, we have a few tips for you to try. If your app icon has a transparency, make sure to test it against both light and dark backgrounds to make sure it is visually pleasing. For app icons with a light background fill, we recommend rounding the outer corners to make them look better against a dark background.

    These changes will be coming to the Connect IQ app in early February, so now is your chance to try out dark mode and make your icons pop at launch.

    • Jan 22, 2021
  • Connect IQ 3.2.4 SDK Now Available!

    We released version 3.2.4 of the Connect IQ SDK this afternoon, which primarily addresses Simulator crashes that were occurring on macOS 11 (Big Sur). Check out SDK Manager for the update!

    General Changes

    • Allow spaces in paths when running monkeydo.
    • Fix a bug where the last step in a workout activity was not handled properly.
    • Fix a potential crash in Graphics.fitTextToArea().
    • Fix a bug in MapPolyline.addLocation() that resulted in errors if an array of locations was provided.
    • Fix issues with Graphics.fitTextToArea() for multi-byte code points.
    • Add app encryption support for app types other than audio content provider.
    • Fix miscellaneous documentation errors.

    Simulator Changes

    • Fix a simulator crash when running on macOS Big Sur.
    • Drop support for macOS 10.9 and older.
    • Prevent simulator lock-up that could occur on app launch.
    • Fix bugs in the object store editor where some values were not read-only.
    • Fix an issue that allowed a widget base view to receive input events.
    • Fix a crash due to out-of-bounds access on Menu2 views.
    • Fix a bug where the app settings menu was not properly enabled / disabled based on running app state.

    Compiler Changes

    • Fix a permission bug with new project templates.
    • Jan 19, 2021
  • SDK Manager 1.0.1 Released

    We've released a new SDK Manager to fix several issues:

    • Fix issue causing fonts to not be downloaded for some devices
    • Fix issue where the No, I'd like to log in every time option would not be honored
    • Fix issue where devices could not be downloaded

    If you're still running into issues with missing fonts, delete and redownload the device through the SDK Manager.

    You can download the latest version at https://developer.garmin.com/connect-iq/sdk/.

    • Jan 13, 2021
  • 3.2 Device Support!

    We updated several devices configurations for the SDK to support Connect IQ 3.2.x today. All of these devices currently support 3.2.x in firmware, and you'll now be able build your apps for these devices to support 3.2.x features:

    • Edge 530
    • Edge 830
    • Edge 1030
    • Edge 1030 Bontrager
    • Edge 1030 Plus
    • fēnix 5 Plus series
    • Forerunner 645 Music
    • Forerunner 745

    If you haven't already, launch the SDK Manager and download the updated device configurations!

    • Jan 5, 2021
  • App Monetization Guidelines

    If you have apps in the Connect IQ store that require some form of payment, then you’ll want to be aware of the new guidelines for developers. Starting today, we are asking all developers to let us know if their apps require payments in the newly added “Monetization” section of their app description:

    Why the Change?

    Several customers have reached out to us in frustration after being asked for a payment that they weren’t expecting. By adding this information, you can provide valuable information for your app’s users, so they won’t be met with surprises later. To help with this effort, we will add a banner to all monetized apps that says “Payment Required,” as shown here:

    Let Us Know by January

    We are asking all developers to select “yes” or “no” within this new monetization section of the app description by January 1, 2021, so that we can add these banners to the Connect IQ store where appropriate. For apps that require payment or a subscription for full functionality, we are also requesting that developers clearly explain what payment is necessary in the app description.

    If your app requires payments and you don’t let us know by January 1, your app may be rejected or removed from the store. Thanks in advance for your help in providing this valuable information to Connect IQ app users.

    • Dec 18, 2020
  • Fake Reviews

    Over the past few weeks we have identified that certain developers have engaged in gaming of the Connect IQ review system. This is in violation of the following clause of the Connect IQ SDK agreement:

    1. Prohibited Activity; Limitations: You may not: … (c) engage in any activity with respect to your Application or Program Materials that interferes with, disrupts, damages, or accesses in an unauthorized manner any Garmin platforms, or systems, or those of any of its affiliates or any third party;

     Our policy going forward will be to reject all apps from any developer who engages in this behavior. 

    • Dec 7, 2020