Syncing via the Cloud

[This is LEGACY information]

iThoughts can be configured so that changes to a map on one device will be automatically 'synced' to all other devices.

Overview (you can skip this bit)

Under the hood, all cloud syncing systems work pretty much the same. A document is stored centrally somewhere on the internet (usually in California!) and each device periodically checks for updates to that document and downloads them as necessary. When viewing/editing the document you are actually viewing/editing a local copy of that document. You are NOT modifying the central document (in California.) When you have made changes, the local copy is automatically uploaded to the internet (where all the other devices will see and download those changes.)

The illusion is that you are editing a single document in the cloud. You are not, you are editing a local copy that is seamlessly download/uploaded behind the scenes (no magic here!)

This is true of iCloud, Dropbox, OneDrive, GDrive and all the others.

This is how come you can edit a 'cloud document' without an internet connection!

This design has a rather irritating downside. It is possible to edit 'the same document' in 2 places simultaneously - without actually doing it simultaneously. Consider editing a document on your iPhone in Airplane mode - then editing the same document on your iPad (also in Airplane mode) - which version of the document is the one you want - both have different edits. This is known as a conflict.

What people 'expect' is that the changes are 'merged'. In reality, merging is really difficult to do automatically - so most apps (iThoughts included) don't bother trying. Most apps will simply pick the most recent changes and perhaps alert the user to the fact that some changes were overwritten. This is known as conflict resolution.

Conflicts are an unfortunate fact of life with syncing...

 

So which is best - iCloud, Dropbox, OneDrive, GDrive, WebDAV or …?

There are pros and cons with all of them:

  • iCloud Drive is the simplest to administer (often there is nothing to do - you're probably already logged in!)

  • iCloud Drive is a total black box. When things don't work as expected, you're on your own. There is nothing I can do to help and good luck getting anyone at Apple to help out.

  • iCloud Drive will sync in the background (even when iThoughts is not running.)

  • iCloud Drive forces you to store your maps all in one top level folder whereas Dropbox lets you store your maps however you like.

  • iCloud Drive documents cannot be shared between different users. Dropbox has a 'Shared Folder' capability.

  • Dropbox tends to sync more quickly and reliably in my experience.

 

Personally, I would enable iCloud Drive anyway - it will run alongside Dropbox. If you find that you need more flexibility and predictability then I'd invest the time in getting Dropbox configured.

 


iCloud

iCloud Drive is the name of a document syncing service offered by Apple. It is available on Mac, iOS and Windows. The central idea behind iCloud Drive is that

Each application has its own folder within iCloud Drive and any documents (or folders) placed within that application folder will then be synced to all other iCloud enabled devices.

It's important to understand that, with iCloud Drive, Apple are dictating that files and folders should be stored 'per application'. This is different to the way many people manage their files (where files from different applications are often stored together in 'per project' folders.) The reason for this 'sandboxing' is to stop one application messing with the files from another application. In recent versions Apple have 'hacked' this so that there are ways for one app to access files created by another - but I wouldn't recommend attempting this -  there lies a whole bag of hurt. If you want 'per project' folders then I'd recommend the Dropbox route instead.

On iOS and Mac, you're probably already logged into iCloud - but in case not, you should login using your Apple ID in the Settings App (and ensure iCloud Drive is enabled)

Back in iThoughts (on iOS) you will then see a 'special folder' in the map picker. Anything you place in here will automatically be 'synced'. On Mac and Windows you will see an equivalent folder in Finder/Explorer.

NB: On Windows you will need to install the Apple iCloudDrive software - see here

NB2: If you don't have iThoughts installed on your Mac then it can take upto 24 hours for the iThoughts folder to appear (I kid you not)

That's all there is to it! 

There is the small matter of the iCloud Drive App on iOS. This is another Apple hack. It looks like the elusive 'file manager' for iOS - but don't be fooled, it is no such thing. Do not attempt to open maps from here - it won't work as you expect for a whole bunch of technical reasons. I would go into details, but you wouldn't thank me for it...

 


Dropbox

Dropbox is the 'de-facto' consumer document cloud syncing thingy. For some reason business IT departments tend to shun it - but for normal people it is absolutely the simplest and most reliable way to keep documents synced between multiple devices. Download the app, enter your email/password and boom - you have a Dropbox folder on your Mac/Windows machine that will keep everything within it synced between all your devices. It just works (no really it does!)

The challenge comes when configuring Dropbox within iThoughts. Unfortunately it is not as simple as iCloud. That's because you have more flexibility and so need to make some decisions.

 

The easy way...

Assuming you have a Dropbox account setup and the Dropbox app installed on your iOS device then do the following:

  1. Tap on the Share toolbar button

  2. Tap on the Cloud option.

  3. You will be asked if you want to auto-configure Dropbox syncing (choose Yes)

  4. You will be switched into the Dropbox app where you will be asked if you want to allow iThoughts to have access to your Dropbox folder (choose Allow)

  5. You will now be switched back into iThoughts.

What this has done is configured a 'Linked Folder' within iThoughts (called Dropbox) and associated it with a folder on Dropbox called iThoughts. Kind of confusing now I've written it down - but basically, any map in the Dropbox folder on your iOS device will automatically be synced with the iThoughts folder on Dropbox.

Now if you go to another iOS device and repeat that, then both devices will have a 'Linked Folder' (called Dropbox) both associated with the same folder in Dropbox (called iThoughts.)

The less easy way...

So the above configured a Linked Folder (on iOS) called Dropbox and a folder on Dropbox called iThoughts. It also configured the system to sync .itmz files (i.e. iThoughts files.)

This is great - but what if you want to sync with a different folder or multiple folders on Dropbox or sync a different file type or even sync with different Dropbox accounts? All possible if you're prepared to spend a few minutes setting it up!

The basic concepts are:

  • A 'Linked Folder' is a special folder on your iOS device which will stay synced with a specific folder on Dropbox.

  • You can have any number of linked folders (each associated with different Dropbox folders - or accounts.)

  • The attributes associated with a Linked folder are:

    • Name (e.g. MyDropboxMapsFolder)

    • Associated Dropbox folder path (e.g. /MyMaps).

    • Associated Dropbox account.

    • List of file types to keep in sync (e.g. ITMZ, MMAP, PDF)

When configuring a Linked Folder you obviously need to associate it with a Dropbox path (and account) but you also need to list the file formats that are to be synced. Normally, ITMZ is the only format you'd sync - but if you use a different mind map app on the desktop (e.g. Mindmanager, Freemind etc.) then you can have it sync those file formats also. This means that when syncing, iThoughts will also automatically import/export that file format. You can even enable a format like PDF or PNG in which case, a PDF/PNG version of the map will be synced (uploaded) each time the map is synced.

 

Some points to note (Dropbox):

  • Syncing only happens on WiFi (by default.)

  • Local (iOS) changes are synced (up to Dropbox) 30 seconds after the app is closed (by default.)

  • Remote (Dropbox) changes are checked for when the app starts (but no more frequently than every 10 minutes)

  • You can force it to sync immediately by long pressing on the Share toolbar button.

  • When syncing there is an annoying black box telling you it is syncing. This is a crude way of me stopping you editing a map whilst it is being synced. Sorry! This can be annoying. You can disable the message in the Settings.

  • If you get a conflict then:

    • On iOS it will always default to using the version actually in Dropbox. Any local changes will be saved in a copy of the map (renamed with a suffix of 'conflict')

    • On OSX it will always default to using the version actually in in Dropbox - but you can recover a previous version using either the Dropbox website or the macOS Versions feature.

    • On Windows it will always default to using the version actually in in Dropbox - but you can recover a previous version using the Dropbox website.

  • Renaming/Moving maps can cause issues. A rename/move performed within the app on iOS effectively results in a file copy (i.e. you end up with 2 copies of the file.) This is an implementation issue that I plan to address in future. In the meantime, if you must rename/move a file it is best done in Dropbox itself (via the Dropbox app or website) then the changes are reflected correctly down into iThoughts.