Skip to content

feat(mobile): Siri and Shortcuts intents plus a Control Center button#82

Open
GSTJ wants to merge 4 commits into
mainfrom
GSTJ/app-intents
Open

feat(mobile): Siri and Shortcuts intents plus a Control Center button#82
GSTJ wants to merge 4 commits into
mainfrom
GSTJ/app-intents

Conversation

@GSTJ

@GSTJ GSTJ commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

Pegada now shows up in Siri, Shortcuts and Spotlight ("Start Swiping", "Open Matches"), and iOS 18+ users can add a Pegada button to Control Center that jumps straight into the swipe deck.

Details

  • App Intents in Swift, compiled into the main app by a local config plugin: two intents with Siri phrases in English and Portuguese, availability-gated so the app still deploys down to iOS 15.1.
  • Control Center button as a WidgetKit controls extension (iOS 18+ only; older iOS never loads it, the app installs fine).
  • Localization rides the existing native-strings mechanism (en + pt-BR), including the Siri phrase catalogs.
  • SiriKit is deprecated as of WWDC 2026; this is the App Intents path, so it's forward-compatible with Spotlight and Apple Intelligence surfaces.
  • Release heads-up (not merge-blocking): EAS store builds need ios.appleTeamId in the app config so the new extension signs.
  • Version bumped to 1.5.0.

Testing steps

  1. Install the build, open the Shortcuts app and search Pegada: "Start Swiping" and "Open Matches" should appear as actions. Run one, the app opens on the right screen.
  2. Say to Siri "Start swiping on Pegada" (or in Portuguese with the phone in pt-BR): same result.
  3. Search "Pegada" in Spotlight: the actions should be offered under the app.
  4. iOS 18+: long-press Control Center, add control, search Pegada: a paw button should be available. Tapping it opens the app straight on the swipe deck.

GSTJ added 4 commits July 8, 2026 16:07
…ter button

Two Swift surfaces, both wired through CNG (nothing committed under ios/):

- Main app target: "Start Swiping" and "Open Matches" App Intents plus an
  AppShortcutsProvider, so both actions show up in the Shortcuts app, Siri
  and Spotlight. They deep-link via pegada://swipe and pegada://messages.
  Compiled in by the new plugins/withAppIntents.js config plugin, which also
  generates <lang>.lproj/AppShortcuts.strings for the Siri phrases. Titles
  and descriptions localize through native.json's new ios["Localizable.strings"]
  section (Expo's locales support handles it natively); keys are
  identifier-style because Expo writes .strings keys unquoted.
- targets/controls: iOS 18+ Control Center ControlWidgetButton (pawprint)
  that opens straight into the swipe deck, built as a WidgetKit extension
  via @bacons/apple-targets. Extension deployment target is 18.0, so older
  iOS ignores it while the app keeps supporting 15.1. Strings localized via
  the target's Localizable.xcstrings (en + pt-BR).

The app intents are availability-gated (16.0 for intents, 16.4 for the
shortcuts provider) since the app still deploys to iOS 15.1.

Skipped the iOS 26 interactive snippet: a matches-count snippet needs an App
Group entitlement plus a JS-to-UserDefaults sync bridge, too much surface for
this PR relative to the payoff.

Version bumped to 1.5.0 (native change).
…nsion target

iOS allows one widget extension per app, so targets/controls becomes the
shared targets/pegada-widgets target (deploymentTarget 16.2, byte-identical
config across feature branches). The control gates itself to iOS 18 with
@available / #available inside PegadaWidgetsBundle.swift.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant