[ios] Bookmarks synchronization into iCloud #2678
Labels
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
No due date set.
Dependencies
No dependencies set.
Reference: organicmaps/organicmaps-tmp#2678
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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...
There is a potential merge conflict if the same bookmarks file was edited on different devices.
(https://developer.apple.com/documentation/uikit/documents_data_and_pasteboard/synchronizing_documents_in_the_icloud_environment)
Please propose an implementation to properly merge conflicts in two KML files, that would be very helpful.
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
that's fully enough for a typical iOS user, but just by default use latest version by date, that's it.
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.
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.
Loosing carefully collected and edited bookmarks is a pain, that's why a proper merge solution is important.
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"?
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:
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.
You still don't understand the idea. The iCloud can be used for it, only the merge code is needed.