beeware / toga

A Python native, OS native GUI toolkit.
https://toga.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
4.35k stars 671 forks source link

DynamicIsland and Live activities support for iOS and iPadOS #2770

Open hkdkfih opened 2 months ago

hkdkfih commented 2 months ago

What is the problem or limitation you are having?

DynamicIsland and Live activities support for iOS and iPadOS

Describe the solution you'd like

ios activitykit (https://developer.apple.com/documentation/activitykit and https://developer.apple.com/design/human-interface-guidelines/live-activities)

Describe alternatives you've considered

_

Additional context

No response

freakboy3742 commented 2 months ago

Thanks for the suggestion. The issue with supporting a feature like DynamicIsland is that there is an extent to which it is "Apple specific" - it's a manifestation of a feature that only exists on iOS and iPadOS. That means it's not entirely compatible with a cross-platform toolkit like Toga.

The first step in any proposal like this one is to find a generic capability that exists on every platform, and then work out how to represent that generic capability with platform-specific APIs. You can see an example of what this sort of discussion look like with #97 - the discussion around system tray support.

There may well be a generic representation of this idea that could be added to Toga - but more research (especially on the options for Android) is required.

In the meantime, if you've got an app that you know is going to be iOS specific, you are able access native APIs directly using the Rubicon cross-platform layer. Your app will no longer be cross-platform, but you can have access to ActivityKit (and almost any other platform-specific API).