pxt icon indicating copy to clipboard operation
pxt copied to clipboard

Integration of "Universal Links" to open MakeCode projects directly within app on iOS

Open joernalraun opened this issue 8 months ago • 2 comments

Feature Request: Support for Universal Links on iOS for makecode.calliope.cc

Summary

To significantly improve the user experience on iOS—especially when interacting with shared MakeCode project links for the Calliope mini—we propose full support for Universal Links. This would allow links to makecode.calliope.cc to open directly in the Calliope iOS app instead of in the browser, enabling a seamless workflow for flashing projects to the Calliope mini.

Current Limitation

Currently, when a user clicks a MakeCode link (e.g., makecode.calliope.cc/abc123) on iOS, it opens in Safari. If the Calliope iOS app is installed, the ideal behavior would be to open the app directly and load the project.

Goal

Implement Universal Links so that URLs pointing to MakeCode projects automatically open in the Calliope iOS app when installed.

What’s Needed

To enable this, Apple requires an apple-app-site-association (AASA) file to be served from the following location:

https://makecode.calliope.cc/.well-known/apple-app-site-association

Example Content of the AASA File

{
  "applinks": {
    "details": [
      {
        "appIDs": ["TEAMID.APPBUNDLEID", "TEAMID.APPBUNDLEIDDEBUG"],
        "components": [
          {
            "/": "/*",
            "comment": "We match any path on the (sub)domain, as all paths are valid MakeCode IDs"
          }
        ]
      }
    ]
  }
}
  • TEAMID: Found in the Apple Developer Account.
  • APPBUNDLEID and APPBUNDLEIDDEBUG: Identifiers for the release and debug versions of the Calliope iOS app.
  • These values can be sent by email or added to the release build.

Benefits

  • Seamless UX: Opens shared MakeCode project links directly in the app.
  • Improved Accessibility: Flashing from browser to Calliope mini via app becomes instant and intuitive.
  • Testing Ready: This feature is already implemented in the TestFlight version and can be tested as soon as the file is correctly served.

Thanks!

@abchatra @eanders-ms same has also been addressed here: https://github.com/microsoft/pxt-calliope/issues/326

joernalraun avatar May 28 '25 16:05 joernalraun

@joernalraun is there a timeline you are targeting for this?

abchatra avatar May 28 '25 21:05 abchatra

@abchatra thanks for your fast reply! The next planned update of the app is the first week of July, so that would be perfect, as implementation work there already has been done.

joernalraun avatar May 29 '25 09:05 joernalraun

Dear @abchatra any news on this? Do you see the option to implement it?

joernalraun avatar Jun 30 '25 11:06 joernalraun

@riknoll is going to take a look.

abchatra avatar Jun 30 '25 19:06 abchatra

@riknoll did you have had the chance to look into this and/or might have some infos on timing?

joernalraun avatar Jul 14 '25 10:07 joernalraun

looking at it now, seems pretty simple to add. i'll try and get something working this week.

riknoll avatar Jul 14 '25 17:07 riknoll