Separate window or instance for each Webxdc [missing on Android and iOS, works on desktop]

At the moment there are different variants for each OS to open multiple Webxdcs. On Linux desktop you can open for example two editor Webxdcs and copy-paste stuff from one to another app which is convenient.

If you try to open two Webxdcs on Android you see it is not possible: if you open one app, the other gets closed.

So if you open another Webxdc, your old view is not stored and gets reset on the next opening.

What do you think about it? Has it any security or data-mix implications? Or is it possible to start each Webxdc as it own app instance on each OS? (at least Linux on desktop its handy :wink: )

I assume you are asking why you can not have multiple webxdc windows on mobile, generally we came to the conclusion that it is too complex to implement and maintain, but also:

  • iOS: your app can only have one window, so you would need to emulate multiple windows maybe with tabs like telegram mini apps
  • android: apps can have multiple activities / windows, but technically it is a challenge to communicate with them and user side might also be a challenge, because most people are probably not really used to an app having multiple windows

I don’t understand the rest of your question.

If there are no security considerations or data race conditions simply ignore the rest of my post.

On Android imagine the following user story:

  • The user has created shortcuts on his desktop for two Webxdcs
  • Then he opens A
  • Pushes home button
  • Opens B
  • Now he taps the square (or “task list button”) two times and expects to see A now but this is not possible

But I understand your point. It is a question of how to look on Webxdcs. It could be enabled in settings, or Webxdcs run by shortcut could act like real apps.

Tabs (on iOS) make no sense at all I think.

1 Like

That’s a really interesting observation. Having multiple Webxdcs open concurrently definitely adds convenience, especially for tasks like copy-pasting or comparing content side-by-side. On Android, the single-instance behavior might be due to memory limitations or app sandboxing rules. But if each Webxdc could be isolated enough to act like its own app instance, it would greatly enhance usability. As long as session isolation is properly handled, I don’t see immediate security concerns, though data-mix risks would need careful consideration.

As Webxdcs are using a CRDT event database data-mix risks shouldn’t be an issue, isn’t it?

Feel free to create a feature proposal for opening each webxdc app it’s own activity on android.

Should be possible, though there may be challenges (webrtc blocking, passing data between activities, background processes), so could be quite some effort.

Maybe if there is enough interest we could try it, but ultimately that’s for the delta chat android devs to decide (and I’m not one of them).

Once again, I don’t quite get what you are referring to. webxdc state updates are simple, just a list that you append to. webxdc mini app developers can chose to put a CRDT like yjs on top of that simple system, but they don’t have to.

There are no “data-mix” issues where data of multiple apps is mixed together. each app get’s it’s own virtual host / origin address, so the localstorage and other browser data is also separated.

Instead of opening multiple webxdcs in different windows/activities, why not do it like Cheogram, a tab-like switcher that allows to keep several webxdcs open in different tabs and easily switch between them. That avoids the IOS issues. And probably easier to implement than multiple activities, and probably even more user friendly because Android users aren’t used to using apps that have more than one window at the same time.

3 Likes