Super excited about interactive widgets in iOS 17! Starting & stopping time entries in @timery widgets *without having to open the app* will be such a great improvement, and I can’t wait to bring this to Timery later this year!

I’ve had this working for like 20 minutes and I immediately want to install the beta on all my devices just for this.

A big thank you to everyone involved in bringing us interactive widgets this year! 🥳

More @timery experiments! I wanted some visual feedback that the widget is starting or stopping a time entry when a button is pressed since the action could take a couple seconds.

Widget interactions are through Buttons or Toggles, and Toggles update their state immediately while the action happens and then again when it’s finished.

So I changed what were Buttons to Toggles. And now while the widget performs the action, the start or stop icon swaps to a loading icon and then back. Much better!

iOS 17 beta 2 enabled another fun thing for interactive widgets: starting Live Activities! So starting a time entry from a @timery widget will also start a Live Activity!

And speaking of Live Activities, since they’re part of WidgetKit, they gain interactivity too. So the stop button can stop the time entry without having to open the app!

@joehribar @timery How did you exactly achieve this? Using LiveActivityStartingIntent? Can't get it to work yet ...
@Reutter Yeah! It’s using LiveActivityStartingIntent (or if you’re supporting iOS 17 and up LiveActivityIntent). https://developer.apple.com/documentation/appintents/liveactivitystartingintent
LiveActivityStartingIntent | Apple Developer Documentation

The protocol represents types which are expected to start, pause or otherwise modify a Live Activity in their method.

Apple Developer Documentation
@joehribar Doesn‘t seem to work for me (at least in beta 3). Is there any special implementation I need to know about ? Just call the code to open a Live Activity in perform()