Sample apps, libraries and code snippets for use with Garmin's Connect IQ SDK and the Monkey C programming language.
NOTE: Although the repo may contain contributions from Garmin employees and/or from the Garmin forums, this repo is an "unofficial" repo of Connect IQ and Monkey C sample code/projects and nothing said or done here should be considered sanctioned by Garmin. For the official repo of Connect IQ apps from Garmin, you can clone the connectiq-apps repo under the Garmin github account.
The Connect IQ SDK contains a bunch of sample apps which allow you to quickly get started with Monkey C and covers some common functionality such as rendering images or accessing web resources. This repo is not necessarily designed to replace those SDKs samples. Instead, this repo should be used to supplement the samples, covering additional functionality, diving deeping into things or offering more complete examples. This repo will also house a collection of common functionality (in the form of quasi libraries and code snippets) with the intent that developers can spend less writing the same code repetitively and can instead focus on building new, cool apps.
All of the source code within this repo is governed by the license specified by each contributor. As such, each project should have a LICENSE.txt (or similar file) which contains the text for the use license. Where no license has been specified it should be assumed the code is in the public domain. The individual source (and other) files may or may not contain the licensing text.
Contributions are encouraged to use a license with as much flexibility as possible, which currently is the "MIT License".
Download or clone the repo and add one, some or all of the projects to your Eclipse workspace. Read, run, learn and enjoy!
It is assumed that you are using the most current (stable/non-beta) SDK and all attempts are made to ensure that the code on the 'master' branch will run on the most current SDK. When a project, library or code snippet is only for a given version of the SDK, it will be moved to a separate branch named for that particular major version (eg. sdk-1.4, sdk-2.0). The repo also has (or will have) branches for beta versions of the SDK, when new functionality is added to an upcoming SDK.
The repo is broken into 6 sections; one section for each of the different project types (app, data field, watch face and widget) plus a section for "libraries" and a section for "code snippets".
The 'apps' section contains various examples of Connect IQ apps.
The 'datafields' section contains various examples of Connect IQ data fields, which are added to data screens on activities built into the various devices.
The 'watchfaces' section is for Connect IQ watch faces.
The 'widgets' section is for Connect IQ widgets.
The 'libraries' section contains working code for common functionality and is designed to be added to other projects. These libraries are typically larger in code size (more than a single function and/or span multiple files) and will not run as a standalone project. For example, there may be a contributed library for a fancy menu that combines text and icons.
The 'snippets' section contains useful snippets (small chunks) of code to accomplish commonly required things, such as creating a dynamic menu object or an efficient way to calculate the distance between two points.
Please see the CONTRIBUTING.md file for details on how contribute.
This repo would not be possible without the help of the "collective": admins, contributors and other users who watch, fork, comment and/or interact with this repo.