ubports / ubuntu-touch

A simple and beautiful mobile OS for everyone! This repository is for Ubuntu Touch issue tracking. It does not contain any code used to create Ubuntu Touch.
https://ubports.com
1.28k stars 110 forks source link

Seamless Convergence (two-way app sync) #901

Closed ajvsol closed 5 years ago

ajvsol commented 5 years ago

Curious if this is a goal post-OTA8 (or before it).

I'm not sure how many apps can be run on both Ubuntu desktop + mobile just with differing UIs but I'd think then it should be possible to sync the app data between devices, which allows you to pick up where you left off on one device when moving to use another.

If there's difficulty of doing that with the current state of apps then perhaps it's only feasible post-OTA8, where Anbox and Snap should allow easier cross-platform device use.

This might benefit from building on what KDE Connect has already created since they've got USB, WiFi and soon Bluetooth connectivity for file transfer.

dobey commented 5 years ago

Anbox and Snap are definitely not helpful here. This is a far bigger task than could be done for any near-term OTA by any means. The way this works also has to be handled per-app, rather than some massive global sync process. It doesn't make sense to just wholesale copy all config and data between a phone and a PC.

There's a lot to think about, design, plan, and build here.

ajvsol commented 5 years ago

I'm not sure I understand the obstacles there would be. Is it mainly due to differences in configs between devices? I guess apps would need to be "convergence aware" so they can detect the platform they're being run on and offer two different settings configs.

As for sync, I envisioned a global sync app which would allow you to choose to disallow certain apps from syncing - you don't need to sync every app with changed data, just the ones you want to use on both platforms.

Sure, of course. Just starting the conversation here, since it seems to be the next logical stage to take advantage of the fact that the same software (DEB, Snap, Anbox) can be run on both phone and desktop. Google's Fuschia project seems to be going in the same direction.

Flohack74 commented 5 years ago

Keep in mind that deb, snap are only packaging formats, they do nothing for convergence. Each App must be aware of the need to rescale and repaint the whole UI depending on the mode it is being used in. Anbox has nothing to do with convergence, its an Android-compatibility container.

So unless the App devs make convergent Apps that are built also for armhf and i386/amd64 you will not have much luck to say: Its the same App for both devices. Because its (technically) not.

ajvsol commented 5 years ago

Ah, I see now. I don't understand the difficulties involved in making cross-architecture compatible apps but it seems nontrivial judging by the limitations of Windows 10 Mobile on ARM.

An alternative to this could be having the same architecture on both devices i.e. x86-based phones or ARM-based laptops. The former seems stopped with the cessation of Intel Atom phones but the latter seems to be becoming more common e.g. Windows 10 Mobile laptops like HP Envy x2.

dobey commented 5 years ago

The problem is not difficulty in making apps that work across architectures. That is relatively easy, as most already can do this. There's a lot more to "convergence" than any one thing. The whole is comprised of the individuals.

What is difficult, is building a system that works as you described in your request here. Also, it's best to make such requests by stating and explaining what the problem is you think needs solved, rather than proposing solutions to an undefined problem. One wouldn't run into an emergency room at the hospital and attempt to explain to the doctors how to treat the emergency, rather than what the symptoms are. I don't understand why people think it's any more appropriate to do this for software developers, instead of doctors, mechanics, or technicians for other fields.

ajvsol commented 5 years ago

Ah, apologies seem to have skipped ahead a few steps then.

The problem would be the fact that it's still not simple to work on one device then quickly and easily continue working on another. The difference between this solution and others which utilise app mirroring however (e.g. Samsung DeX, Sentio Desktop, Windows 10 soon) is that it would take advantage of the underlying hardware of using a desktop workstation and allow more cross-platform software which is otherwise unavailable to either device.

Example usecases: being able to leave my desktop at any time and know I can access every app/data via mobile; being able to easily sync tab groups (or many other extensions) on my desktop browser to my mobile browser (since they're otherwise incompatible); switching as needed to full-fledged desktop apps like Nextcloud which are far more powerful than their mobile variants, etc.

dobey commented 5 years ago

The point of convergence is that in fact, one version of the app is not itself necessarily "more powerful" than the other version, because they are in fact, the same app, in both instances. They might be different installs, and have some differing configuration due to different form factors, but the app itself should be exactly the same.

garro95 commented 5 years ago

In my opinion, this discussion is not much about the "convergence" as intended by Canonical in the proposal of Ubuntu Touch (using the same device with different environments), but more about the convergence in the sense of convenience of using different devices with the same (or a consistent) Operating System and applications. In this sense I feel that there is the need for a simple way to synchronize things between devices, like contacts and documents. The same system could be used to make fast, frequent backups of the device and to transfer files between a desktop and the phone keeping them in sync. I think that this system should be able to work without relaying on other machines then two Ubuntu powered devices. I also have the filings that GNU/Linux already provides tools to do this, so we just need a comfortable GUI to expose these functionalities on both phones and desktops (e.g. a convergent application) and a wiki page on the UBports website that explains how to do it.

dobey commented 5 years ago

@garro95 The idea of "convergence" as intended by Canonical was always using using the same environment and apps across many devices, as well as being able to use just a phone in windowed mode on an external display. In fact, just before all the projects were dropped, one of the things that major work was being done on, was a storage framework, for making it easier to use the SD card or cloud services for storing data for applications, as well as a backup system for easily backing up application data to external sources.

UniversalSuperBox commented 5 years ago

Closing; discussions of this nature are more productive at https://forums.ubports.com. I'd encourage you to continue there.