[ios] Bookmarks synchronization into iCloud #2678

Closed
opened 2022-06-06 07:43:31 +00:00 by Volodymyr-13 · 13 comments
Volodymyr-13 commented 2022-06-06 07:43:31 +00:00 (Migrated from github.com)

iOS provides free 5Gb to any iPhone/iPad/Mac user. A 100% stable storage to use, so why it's fully ignored?
Any iOS app should use iCloud to store it settings and small types of data into iCloud.
Easily shared between devices and always backed/restored up automatically.

Later, if you be able to add some some yours external server sync(to which I won't have ever any trust) to make cross-platform sync, please anyway let me just have option - don't use any external servers to sync, since I want to use iCloud only and ever.

In the past 10 years, I have never ever lost any files or settings on an app that used iCloud.

I can just install some app, create some favorites in it, close app, remove it from device.
Then on any of my devices I can install this same app and all my settings/files will be recovered automatically and I'll never be prompted to login to somewhere...

iOS provides free 5Gb to any iPhone/iPad/Mac user. A 100% stable storage to use, so why it's fully ignored? Any iOS app should use iCloud to store it settings and small types of data into iCloud. Easily shared between devices and always backed/restored up automatically. Later, if you be able to add some some yours external server sync(to which I won't have ever any trust) to make cross-platform sync, please anyway let me just have option - don't use any external servers to sync, since I want to use iCloud only and ever. In the past 10 years, I have never ever lost any files or settings on an app that used iCloud. I can just install some app, create some favorites in it, close app, remove it from device. Then on any of my devices I can install this same app and all my settings/files will be recovered automatically and I'll never be prompted to login to somewhere...
biodranik commented 2022-06-06 08:34:36 +00:00 (Migrated from github.com)

There is a potential merge conflict if the same bookmarks file was edited on different devices.

There is a potential merge conflict if the same bookmarks file was edited on different devices.
Volodymyr-13 commented 2022-06-06 08:44:22 +00:00 (Migrated from github.com)

(https://developer.apple.com/documentation/uikit/documents_data_and_pasteboard/synchronizing_documents_in_the_icloud_environment)

Handling version conflicts in document-based apps is straightforward because UIDocument does most of the heavy lifting.

(https://developer.apple.com/documentation/uikit/documents_data_and_pasteboard/synchronizing_documents_in_the_icloud_environment) > Handling version conflicts in document-based apps is straightforward because UIDocument does most of the heavy lifting.
biodranik commented 2022-06-06 09:19:58 +00:00 (Migrated from github.com)

Please propose an implementation to properly merge conflicts in two KML files, that would be very helpful.

Please propose an implementation to properly merge conflicts in two KML files, that would be very helpful.
Volodymyr-13 commented 2022-06-06 09:40:58 +00:00 (Migrated from github.com)

I already did it in a previous post...
I can add only this https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/DocumentBasedAppPGiOS/ResolveVersionConflicts/ResolveVersionConflicts.html#//apple_ref/doc/uid/TP40011149-CH6-SW1

An Example: Letting the User Pick the Version

that's fully enough for a typical iOS user, but just by default use latest version by date, that's it.

I already did it in a previous post... I can add only this https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/DocumentBasedAppPGiOS/ResolveVersionConflicts/ResolveVersionConflicts.html#//apple_ref/doc/uid/TP40011149-CH6-SW1 > An Example: Letting the User Pick the Version that's fully enough for a typical iOS user, but just by default use latest version by date, that's it.
biodranik commented 2022-06-06 11:09:15 +00:00 (Migrated from github.com)

I didn't see any KML-specific code in your URLs, did I miss something?

Implementing manual version picking is not user-friendly and costly to develop. How would you highlight the difference? Who will implement it and support it in the UI?

A proper "merge" implementation should automatically and accurately merge KML differences while leaving an option to restore a specific previous revision (if iCloud allows it). It would be great if someone can contribute it, the same "merge" implementation can be reused later across all OM platforms in C++.

The same "merge" implementation will allow collaborative bookmarks sharing with friends and family.

I didn't see any KML-specific code in your URLs, did I miss something? Implementing manual version picking is not user-friendly and costly to develop. How would you highlight the difference? Who will implement it and support it in the UI? A proper "merge" implementation should automatically and accurately merge KML differences while leaving an option to restore a specific previous revision (if iCloud allows it). It would be great if someone can contribute it, the same "merge" implementation can be reused later across all OM platforms in C++. The same "merge" implementation will allow collaborative bookmarks sharing with friends and family.
Volodymyr-13 commented 2022-06-06 11:27:05 +00:00 (Migrated from github.com)

You diving too deeply, well yes it's like a perfect solution for all, I agree.

But I'm asking about implementing the simplest way available only for iOS, which described in that links previously.
Basically, you'll need only 1 popup, which asks which file to keep from 2 files(local - iCloud) showing it's date modified. Thats it.

You even can just pick the latest file by date automatically, nothing more, no UI, but anyway this will work and favorites will be backed up into my iCloud account for all my devices.

You diving too deeply, well yes it's like a perfect solution for all, I agree. But I'm asking about implementing the simplest way available only for iOS, which described in that links previously. Basically, you'll need only 1 popup, which asks which file to keep from 2 files(local - iCloud) showing it's date modified. Thats it. You even can just pick the latest file by date automatically, nothing more, no UI, but anyway this will work and favorites will be backed up into my iCloud account for all my devices.
biodranik commented 2022-06-06 15:30:10 +00:00 (Migrated from github.com)

Loosing carefully collected and edited bookmarks is a pain, that's why a proper merge solution is important.

Loosing carefully collected and edited bookmarks is a pain, that's why a proper merge solution is important.
Volodymyr-13 commented 2022-06-07 08:33:17 +00:00 (Migrated from github.com)

iCloud will not let this happen. You'll just always pick file by the latest modified date.
You don't need any complex merge operations/dialogs, this is totally wrong direction for consumers area of Apple products.

Example, I have GPX files in my iCloud Drive, this is exactly the same what this app should do.
I edited 1.gpx file on my Mac, then later opened it on my iPhone and edit it again on the device, since iCloud will just use the latest version and I can continue to edit it later on my iPad too, then more later I can open this file on Mac and continue to edit it.. etc.. All this will be always latest version of my 1.gpx file.

Do you think, in all these years doing so, have I ever seen at all "merge window"?

iCloud will not let this happen. You'll just always pick file by the latest modified date. You don't need any complex merge operations/dialogs, this is totally wrong direction for consumers area of Apple products. Example, I have GPX files in my iCloud Drive, this is exactly the same what this app should do. I edited 1.gpx file on my Mac, then later opened it on my iPhone and edit it again on the device, since iCloud will just use the latest version and I can continue to edit it later on my iPad too, then more later I can open this file on Mac and continue to edit it.. etc.. All this will be always latest version of my 1.gpx file. Do you think, in all these years doing so, have I ever seen at all "merge window"?
biodranik commented 2022-06-12 23:20:54 +00:00 (Migrated from github.com)
  1. I'm talking about smart, automated merge without any user interaction. This is the only right way to proceed, because...
  2. In your GPX example, disable the internet connection. Then edit the GPX file on both devices, making different changes. Then enable the internet again and check which modifications you will lose.
  3. Then expand (2) to shared editing between two or more people.
1. I'm talking about smart, automated merge without any user interaction. This is the only right way to proceed, because... 2. In your GPX example, disable the internet connection. Then edit the GPX file on both devices, making different changes. Then enable the internet again and check which modifications you will lose. 3. Then expand (2) to shared editing between two or more people.
Volodymyr-13 commented 2022-06-13 09:26:14 +00:00 (Migrated from github.com)

I fully understood all this.

You basically want to create a simple git system, which will be automatically merge 1 file, sound very ambiguous..
But a lot of situations and problems and questions.. I can just tell you that it's impossible in practice. And it will give rise to a huge number of problems, where they should not be and drive users crazy.

Here's what macOS/iOS does now if a file had a conflict:

Screen Shot

So, iCloud will always pick the latest file by modified date and if a conflict is found, it saves two files.
Nothing is lost, no questions to the user.
But I would add not just a number, but a device and a date/time, for example: "new(13:37:56 - 05/15/22 - iPhone 8).gpx"

And I'd like to remind, that I created this bug because I'm worried about losing my bookmarks. They are not backed up to iCloud right now while using this app, so I can easily lose them.
I'm currently using maps.me app, which uses iCloud to backup bookmarks, so I know for 100% that all my bookmarks are securely saved.

I fully understood all this. You basically want to create a simple **git** system, which will be automatically merge **1 file**, sound very ambiguous.. But a lot of situations and problems and questions.. I can just tell you that it's impossible in practice. And it will give rise to a huge number of problems, where they should not be and drive users crazy. Here's what macOS/iOS does now if a file had a conflict: <img width="233" alt="Screen Shot" src="https://user-images.githubusercontent.com/3391456/173318305-30a9c06f-ec9d-4c52-8026-251f4962d054.png"> So, iCloud will always pick the latest file by modified date and if a conflict is found, it saves two files. Nothing is lost, no questions to the user. But I would add not just a number, but a device and a date/time, for example: "new(13:37:56 - 05/15/22 - iPhone 8).gpx" And I'd like to remind, that I created this bug because I'm worried about losing my bookmarks. They are not backed up to iCloud right now while using this app, so I can easily lose them. I'm currently using maps.me app, which uses iCloud to backup bookmarks, so I know for 100% that all my bookmarks are securely saved.
biodranik commented 2022-06-13 20:41:33 +00:00 (Migrated from github.com)
  1. Bookmarks are backed up into iCloud now, so they will be restored if you restore a phone from a backup.
  2. Does maps me use iCloud? In the old code it stored bookmarks on proprietary mail.ru servers.
  3. Your solution confuses users, they will have more and more files with slightly different changes that are hard to understand and compare.
  4. You did not understand the idea, it is not about git. It is about collaborative editings, like a shared google doc, which is always of the actual version.
1. Bookmarks are backed up into iCloud now, so they will be restored if you restore a phone from a backup. 2. Does maps me use iCloud? In the old code it stored bookmarks on proprietary mail.ru servers. 3. Your solution confuses users, they will have more and more files with slightly different changes that are hard to understand and compare. 4. You did not understand the idea, it is not about git. It is about collaborative editings, like a shared google doc, which is always of the actual version.
Volodymyr-13 commented 2022-06-13 21:00:25 +00:00 (Migrated from github.com)
  1. At least something, but this is almost nothing. Will not sync across devices, will not be backed up instantly, user can disable iCloud backup and so this will not work at all.
  2. Yes, there is options for that and login with Apple.
  3. This is really strange that you thinking like that, this is how Apple does their job for any files from iCloudDrive, so they confuse users? And this is really very very rare case, when you as user, suddenly tried to edit files on both devices without internet. I’m editing a lot .gox files on my Mac, saving them into iCloudDrive, then counting editing on iPad and then open them on iPhone. For all this process I never ever saw any merge dialogs or file duplicates, because it always updates and internet is everywhere, this is 99.9 percent.
  4. I’m just telling about simple backup .kml or .gpx files into iCloud drive which this app definitely should use for iOS and which should be limited for iOS only, such this is flawless experience and works across all Apple ecosystem. If you want to sacrifice this by doing some cross-platform data backup, this will lower the quality of the app.
1. At least something, but this is almost nothing. Will not sync across devices, will not be backed up instantly, user can disable iCloud backup and so this will not work at all. 2. Yes, there is options for that and login with Apple. 3. This is really strange that you thinking like that, this is how Apple does their job for any files from iCloudDrive, so they confuse users? And this is really very very rare case, when you as user, suddenly tried to edit files on both devices without internet. I’m editing a lot .gox files on my Mac, saving them into iCloudDrive, then counting editing on iPad and then open them on iPhone. For all this process I never ever saw any merge dialogs or file duplicates, because it always updates and internet is everywhere, this is 99.9 percent. 4. I’m just telling about simple backup .kml or .gpx files into iCloud drive which this app definitely should use for iOS and which should be limited for iOS only, such this is flawless experience and works across all Apple ecosystem. If you want to sacrifice this by doing some cross-platform data backup, this will lower the quality of the app.
biodranik commented 2022-06-13 21:42:10 +00:00 (Migrated from github.com)

You still don't understand the idea. The iCloud can be used for it, only the merge code is needed.

You still don't understand the idea. The iCloud can be used for it, only the merge code is needed.
This repo is archived. You cannot comment on issues.
No labels
Accessibility
Accessibility
Address
Address
Android
Android
Android Auto
Android Auto
Android Automotive (AAOS)
Android Automotive (AAOS)
API
API
AppGallery
AppGallery
AppStore
AppStore
Battery and Performance
Battery and Performance
Blocker
Blocker
Bookmarks and Tracks
Bookmarks and Tracks
Borders
Borders
Bug
Bug
Build
Build
CarPlay
CarPlay
Classificator
Classificator
Community
Community
Core
Core
CrashReports
CrashReports
Cycling
Cycling
Desktop
Desktop
DevEx
DevEx
DevOps
DevOps
dev_sandbox
dev_sandbox
Directions
Directions
Documentation
Documentation
Downloader
Downloader
Drape
Drape
Driving
Driving
Duplicate
Duplicate
Editor
Editor
Elevation
Elevation
Enhancement
Enhancement
Epic
Epic
External Map Datasets
External Map Datasets
F-Droid
F-Droid
Fonts
Fonts
Frequently User Reported
Frequently User Reported
Fund
Fund
Generator
Generator
Good first issue
Good first issue
Google Play
Google Play
GPS
GPS
GSoC
GSoC
iCloud
iCloud
Icons
Icons
iOS
iOS
Legal
Legal
Linux Desktop
Linux Desktop
Linux packaging
Linux packaging
Linux Phone
Linux Phone
Mac OS
Mac OS
Map Data
Map Data
Metro
Metro
Navigation
Navigation
Need Feedback
Need Feedback
Night Mode
Night Mode
NLnet 2024-06-281
NLnet 2024-06-281
No Feature Parity
No Feature Parity
Opening Hours
Opening Hours
Outdoors
Outdoors
POI Info
POI Info
Privacy
Privacy
Public Transport
Public Transport
Raw Idea
Raw Idea
Refactoring
Refactoring
Regional
Regional
Regression
Regression
Releases
Releases
RoboTest
RoboTest
Route Planning
Route Planning
Routing
Routing
Ruler
Ruler
Search
Search
Security
Security
Styles
Styles
Tests
Tests
Track Recording
Track Recording
Translations
Translations
TTS
TTS
UI
UI
UX
UX
Walk Navigation
Walk Navigation
Watches
Watches
Web
Web
Wikipedia
Wikipedia
Windows
Windows
Won't fix
Won't fix
World Map
World Map
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: organicmaps/organicmaps-tmp#2678
No description provided.