For those that have adopted App Intents in their apps, or are considering it: What are the main frustrations / limitations you have hit? FB numbers are great, but in this case not required!
@mgorbach It is limiting for new interactive Widgets not to be able to use AppIntents that request a value from the user. Example: a widget that shows the number of pages read of a book, taps a button to update reading progress, and the Intent asks the user for the number of pages read

@simonemontalto @mgorbach This might be a TERRIBLE idea, but I think there's a way to implement this.

Your widget could have two buttons next to each other, - and +. When tapping one of the two you update a value persisted to disk and re-render the widget. Above the two buttons you have a label showing the persisted value.

Below it all you could have a "Save" button that persists the number to your database.

@JagCesar @mgorbach Yes, it is feasible for small numbers. But if a user read dozens of pages it could be very uncomfortable.

@simonemontalto @mgorbach oh yeah, that’s right! As you could’ve guessed I’m a light reader 😅

Maybe an option is to have two buttons per side?

<<-10 <-1 +1> +10>>

@mgorbach Hey! Love App Intents, but can't use interactive widgets because of a limitation with how they are run — this is stopping me from shipping for iOS 17. Context here: FB12479763

Thanks!

@mgorbach And have mentioned before, but would love a way to "compose" App Intents for App Shortcuts.

e.g. "Like current song" should be made up of "Get current song → Like {song}".

Otherwise I'm required to duplicate my intents into hard coded versions e.g. "Like current song", etc. just for this

I would guess from a UX standpoint, you would also prefer composable intents because it highlights to new shortcuts users that actions /are/ composable, and users can jump in and edit as needed too!

@mgorbach (this is on my backlog to submit as a Feedback, let me know if you'd recommend I do that sooner rather than later)
@edwellbrook Do it sooner! After today's developer beta, things start to get locked in for the fall release – now's the time.

@mgorbach I have implemented them in a few of our apps, but a problem remains: I don't have a good overall view of how & where intents are used.

It a piece in several different puzzles. For example, supporting Shortcuts was a goal and something we tested, but I don't know how Siri and Widgets will use that same definition.

It's an all encompassing technology without any samples/documentation that covers all the cases in a holistic way.

@mgorbach Biggest pain point right now is that our Interactive App Intents stopped working in seed 2. They were working in seed 1, now only get the following error in the console:

Could not find an intent with identifier NextInstructionIntent, mangledTypeName: Optional("15WidgetExtension21NextInstructionIntentV")

@mgorbach Another issue we've run into is that the new Interactive Button requires an App Intent.

We want to start playing music in our main target from the widget. Should be possible using INPlayMediaIntent, but this intent doesn't conform to AppIntent so can't be used 😢

@JagCesar @mgorbach +1 and not just for widgets.

I migrated my intents to AppIntents but I have INPlayMediaIntent that is keeping me from removing the intents extension, which I would love to get rid of.

@mgorbach I have a few relatively minor issues, but this one would be huge for me (and I think you are tracking it 🤞), and would let me take Signals to the next level! FB12239247

@mgorbach I think bigger picture/higher level documentation could help.

Currently everything is pretty well documented, but maybe the higher level vision and patterns are still hard to see.

AppIntents becomes more powerful if all participating apps are implemented using same ideas I think.

I always liked this:

https://dl.acm.org/doi/pdf/10.1145/141937.141943

Maybe the most strait forward way to provide this would be an official, comprehensive, and updated example app.

@mgorbach When implementing AppIntents I found this project by far the most useful resource: https://github.com/mralexhay/Booky

It's nice, but incomplete. More useful would be if Apple maintained a similar project and really exercised all the major features and expected patterns.

That would make AppIntent adoption much easier and I think really increase the quality of the average app implementation.

GitHub - mralexhay/Booky: A demo app exploring the new App Intents framework in iOS16.

A demo app exploring the new App Intents framework in iOS16. - GitHub - mralexhay/Booky: A demo app exploring the new App Intents framework in iOS16.

GitHub
@mgorbach Also this example project, put it on GitHub and keep it updated as bugs arise, new features come out, etc.

@mgorbach More thorough documentation, more "how to tie everything together" high-level documentation, generally more documentation, example projects on GitHub/ GitLab/ whatever.

I'll be frank: There have been so many "How to draw an owl"-meme moments for me while getting into App Intents (and Apple frameworks in general) — thankfully, I found a nice group of devs who I could quiz but without them, I would've been utterly lost.

Please get to the level of, say, a RevenueCat SDK documentation.

@mgorbach I dig the macOS/iOS frameworks but I think Apple could do a much, much, MUCH better job when it comes to technical documentation. There's so much glossing-over, it's not friendly to newcomers or relative newcomers.

Thanks! 🖖🏼

@mgorbach I have an enum that conforms to AppEnum but it was silently breaking in Xcode 14 due to the fact that it was in a local swift package. In Xcode 15 it’s been a runtime error so the project can’t run.
@rwitherspoon Huh, did you take an enum that is defined in a Swift package (a framework build product I assume) and conform it to AppEnum within your app in an extension?

@mgorbach that’s finally what I had to do to get everything working. I figured shortcuts may be generated during compile time or app install based on the contents of the app target- not the packages.

The worst of it was that a “ghost” shortcut was still showing in Shortcuts.app before I finally did this. I had to rerun over and over again while changing the shortcut title to finally notice what was going on.

@mgorbach That you can't have app workflows when the intents are implemented in an extension, or did this get fixed in 17?
@helge it is indeed fixed! Try it out :)

@mgorbach just stumbled scores your post and thought I might also share boundaries I hit.

I wanted to share all my AppIntents via a local SPM package. But when declare them as part of an AppShortcut provider, they are not found during build time. I do also use the new AppIntentsPackage but no luck so far. Should this setup be supported ?

Feedback is filed under: FB12550171

@alexanderwe Is your SPM package generating a framework in the build product?
@mgorbach It does declare a .library in its product definition in its Package.swift file - this is then linked in the iOS target where the AppShortcutProvider is defined.
@mgorbach we’d like to start video playback without opening the app via Picture in Picture.
@mgorbach I’m currently struggling to get AppIntentsExtension to work on iOS 16 (it works fine under iOS 17). There’s a simple project and screenshot of the error in FB12653357. Thank you!
@mgorbach I have few observations, hope not too late:
- Does ShowsSnippetView only work when the intent is initiated by the Shortcuts app (or Siri)? Would love to be able to run my intent via a small Lock Screen widget directly and provide the snippet to the user; FB12804339
- Is there a way to dismiss the snippet programmatically and/or run another intent (via a button in the currently presented snippet) also returning a snippet? Currently the new intent executes but the new snippet never shows