Overview of Connect IQ Apps accompanied with source code

I've made an overview on my website of the connect iq apps that are accompanied with source code: http://starttorun.info/connect-iq-apps-with-source-code/
This can be a great resource for starting developers to learn how certain things should be achieved.
(When you use something in your own apps be sure to give credit where credit is due and to respect the license of the open source app (usually the license is available in the root of the source code repo))

When I missed a source repo you can comment on the above post in the comments section (or you can also indicate it below with a reply in this forum thread)

Hope it helps to attract new developers to Connect IQ :)

  • The license applies to the source as published. 

    [Citation needed]

    Have you ever even read an open-source license? Hint: the key phrase is "derivative works".

    How much would it cost in time and money to take someone to court for violating a license? 

    This argument, that open source licenses are unenforceable (especially for small players), is a totally separate matter from the incorrect statement that  "making a simple change to code means that whatever license you use is no longer in effect". Not even sure how you could make a blanket statement like that about "whatever license" when in fact there's a multitude of open-source licenses, each with their own terms and conditions.

    Although I agree that people violate open-source licenses all the time, they are based on the same intellectual property law as copyrights, trademarks and patents.

    Try telling companies there's no point in trademarking names like Tesla, Twitter, and Forerunner, because in the past words like kleenex and xerox became so common that the trademark rights were lost.

    Try telling Apple and Garmin that there's no point in patenting proprietary processes because companies steal processes all the time, especially companies outside of the US.

    As a matter of fact your two arguments are in opposition to each other

    1) Your first argument is that "the license applies to the source as published" and "do you realize that making a simple change to code means that whatever license you use is no longer in effect.". This seems to imply that if someone took your code and republished it without any changes at all, they'd have more of a problem than if they made changes

    2) Your second argument is that open-source license are unenforceable

    Well, if 2) is true, why does 1) matter? If the license is unenforceable, why would anyone care in what situations it supposedly applies? By making the (incorrect) argument that changing code invalidates an open-source license, you're actually implicitly admitting that an open-source license has *some* value. Otherwise nobody would care if it's valid or not.

    Look at Garmin as an example.  You'll notice that they don't open source anything.

    Look at the dev of the wildly popular CIQ Crystal watchface as an example. 3 million downloads and it's open-sourced.

    Look at Google/Alphabet as an example. Google Chrome, the world's most popular browser, is based on the open-source Chromium browser. Anyone can make their own browser based on Chromium, yet that hasn't hurt Chrome's popularity.

    Look at Microsoft as an example. You'll notice they open-source VS Code, arguably the most popular source code editor in the world. This is after a long history of opposition to open source. Of course they don't do this out of the kindness of their hearts, they do it because the landscape has changed and because they can get free labor from volunteer coders to improve their product. Same as Garmin is happy to get free labor from CIQ devs and forum posters.

    I could make almost the same argument against writing CIQ apps for free and posting here for free. The only difference is we can get imaginary internet points and beer money from donations. The Crystal dev asks for donations too, despite open sourcing their app.

    Anyway, nobody can or should force you to open-source your apps - I don't open-source my CIQ apps either. That's totally different from saying that open-source licenses are useless. If you use the internet at all, you're very likely using infrastructure that runs on open-source software and you use protocols with open specifications.

  • It's a whole divide between what is OpenSource and what is IP. 

    Open-sourced code is still intellectual property. Again, a totally different argument than whether open-source licenses are enforceable.

    Unless you want to argue that that only trade secrets are IP, and only because they're kept secret. Which means that patents, copyrights, and trademarks are not IP.

    IOW, just because someone can easily steal your property doesn't make it any less your property. By analogy, if you have a simple deadbolt lock on your front door and no security system, I'm sure a competent thief can easily break into your house. Does that mean it's no longer your house?

  • Open source is more like leaving your door unlocked with a sign that says "Take what you want!"

  • The license applies to the source as published.

    If you can I would appreciate if you got some resources to back this up. It would really help me develop as a software engineer.

    Look at Garmin as an example.  You'll notice that they don't open source anything.

    Garmin does open source. Garmin has 29 repositories in GitHub alone: https://github.com/garmin .

    How much would it cost in time and money to take someone to court for violating a license?

    Most probably enough time and money for it to pay off in the end. But again this depends on the law of the country. If nothing else it would set up a good example on what happens when violating a license.

    the much simpler solution is to not open source your code

    Agreed! However the simplest solution is not always the right one.

    unless you don't even bother to license it

    Source code is not open source without a license: https://opensource.guide/how-to-contribute/#anatomy-of-an-open-source-project

  • Good to see some things haven't changed at all.

    -- open source developer

  • I think it's a pity to fill this thread with out of topic garbage...

  • Andreas -- your watch face no longer appears on the Connect IQ store.  Are you able to put it back?  I'm really missing it!  Thanks!

  • Thanks for asking! It was never on the Connect IQ store though and I don't plan to publish it there, I'm afraid, as it's possibly encumbered with a licensing issue with the design. I consider it just an educational project to showcase the source code for an analog watchface with (by now) quite a number of related concepts and how they all can work together. So you will need to compile it yourself and sideload it onto your watch to use it.

  • TL;DR: I created awesome-garmin at GitHub.


    It's definitely not the easiest thing to find open source project written in Monkey C to explore. Even less so regarding tooling and information around the ecosystem out there (f.ex. linter, formatters, build tools, prg parsers etc). I'm really impressed with all the work by markw65 with the monkeyc-optimizer and prettier tool and I wish there were more traction around that kind of projects, f.ex. native formatters and LSP servers from Garmin.

    For the projects that you actually find source code for it can be pretty hard to filter out old code written with old SDK versions vs. actively maintained projects.

    So with that said I decided to take a stab at an awesome list and created awesome-garmin at GitHub. It's mostly Monkey C source code but also some other links to tools in the ecosystem (such as the optimizer mentioned above). To try to avoid the list getting out of date and to make it easier to find actively maintained projects the list is re-generated every week and sorted by last commit.

    I want to expand this further and been thinking about a way to scrape Connect IQ store for apps with a link to source code but haven't found an good way to do that.

    Anyway, just wanted to drop the link here for anyone interested! I'd love any kind of contributions to the list and I hope the developer and open source community keeps growing!

  • Well done, Simon!

    I had the same idea of collecting an awesome list (https://github.com/Fun-with-Garmin-Development/awesome-connect-iq). I planned to include information such as how "fresh" a project is, whether the source code is readable, etc. I wanted the info to be published as a GitHub page, where users could filter/sort things by popularity, last commit date, etc.

    I envisioned that new projects could be submitted as an PR/issue (https://github.com/Fun-with-Garmin-Development/awesome-connect-iq/blob/validator/.github/ISSUE_TEMPLATE/project_template.yml)

    I got stuck on the concept stage, you actually published something ;-)

    I reviewed quite a few projects already. I haven't used that knowledge yet, but I may be able to contribute...

    As for my attempt to scrap Garmin IQ Store, my naive approach was to search for words like "github" or "bitbucket".

    The other anchor was that some decent developers, while publishing their apps, set value for "source code" attribute (for example https://apps.garmin.com/en-US/apps/e0a3add2-0596-4da3-a06c-757e05326320#0)

    Again, thank you for your project. I hope I could help somehow.