Syncing between Mac & iOS

This is exactly how it’s working for me (and plenty of others it seems). Just make sure you hit sync or have it sent to sync on close.

I presume you’re not doing something complicated like saving as a local copy and dragging things back and forth, or trying to upload things to dropbox via their website or anything like that.

You guys are top notch with support!

Just got the iOS version and love it! I was at first delighted to see that OneDrive was integrated, but then disappointed to see that it didn’t work with the syncing–I’m forced to use Dropbox.

Please consider expanding syncing options to include OneDrive. A great many of us are Microsoft Word users, so we use OneDrive also. It would be MUCH more convenient than Dropbox for us, and clearly you’ve already integrated it to a degree.

Thank you for this quality product!

They can’t; Scrivener projects are just more complicated than Word documents. They also can’t integrate with iCloud. It’s a technical limitation that only Dropbox seems to provide a solution for.

OneDrive can accept any type of file. It backs up everything on my Mac–from videos and music to zip archives, game code and web projects. It’s exactly like Dropbox in what you can backup. There are no limitations. Maybe you’re thinking of iCloud?

I’ve been following the development of this since it was announced. Keith has mentioned that he had to use a programmer’s toolkit (aka an API) that digs deeper than the basic sync functionallity that most software can make use of. He’s stated on a number of occasions that other sync services do not provide the kind of low-level access to their sync services that a Scrivener project sync requires. It’s not the same as how you interact with it on a desktop operating system.

I can’t address the details (don’t know them), I’m just passing along the conclusion that Keith came to: Only Dropbox gives programmers the access needed for him to properly and reliably sync to the iOS Scrivener application. He has stated that he’ll keep OneDrive and iCloud in mind, should they ever provide the programmers toolkits needed to integrate them, but I wouldn’t hold my breath… the software was released less than 24 hours ago. In that time, I don’t think MS or Apple have provided the cross-platform APIs that he needs, but even if they did, it took months of research and planning to implement with Dropbox.

That’s interesting–but too bad. I really like OneDrive for everything. It’s pretty much replaced my need for anything like Dropbox. Not a huge deal to use Dropbox with Scrivener–it’s just one more location I need to think of. I appreciate your taking the time to explain.

I had the same initial problem of the IOS app and the Desktop app not syncing the way I wanted. Like others have posted this confusion came from the Menu options for sync: 1. Sync to mobile device, 2. Synch to external folder, 3. Other options…

None of that worked.

But, like said here: Just SAVE the project in the correct folder on Dropbox and you won’t have any problems

Also, as link said:

I think Literature&Latte should CHANGE and EXPLAIN what the Menu Synth options are all about.

As old fashioned advise says: KISS

.

There are a few factors:

  1. We need a sync solution that is cross-platform and works with Windows as well as Mac.

  2. We needed a sync solution with an API readily available in Objective-C, so that I didn’t have to write everything based on web hooks from the ground up.

  3. We needed something a lot of users have.

  4. We needed something that we knew synced reliably on macOS and Windows.

Dropbox ticked all of those boxes, and is the most popular sync solution. On the Mac, iCloud is equally popular, but it’s not as good a solution for Windows users and it also has real problems with the Scrivener file format, so isn’t really compatible.

Scrivener’s sync code is essentially split into two units:

  1. The code that uses the Dropbox APIs. This replicates what the Dropbox client does on the Mac, uploading, downloading and dealing with conflicts.

  2. The code that reads the files changed by the mobile version and merges them with desktop changes.

This means that, in theory, I can add other sync solutions at a later date. I “just” have to write the code that does (1) for other sync solutions.

The problem is that for each sync solution, I pretty much have to code from scratch what the sync provider’s desktop client does automatically. There are 4,000+ lines of code in my Dropbox sync file (probably 2,500+ once you remove blank lines and braces). And that’s for an API that provides an Objective-C wrapper (i.e. a wrapper in the language I use). For other APIs, I would have to replicate everything this does, but it would take more code because few, if any, of the other APIs have Objective-C wrappers, meaning I would have to write lots of code to wrap around the raw server calls.

It wouldn’t be so bad if the APIs provided by sync providers could do exactly what the sync clients do on the desktop. For instance, with Dropbox, on the desktop you just install the Dropbox app and that automatically syncs all the files in the Dropbox folder across machines and with their servers. It would be wonderful if the Dropbox APIs did the same, because then I could just write code that said, “Hey, Dropbox API, sync everything in this folder with the same folders on your servers.” That’s not how it works, however. Instead, I have to write code that replicates what Dropbox do for free on the desktop. I have to write the code that says, “Check what’s changed online, download this, and upload this. Create this folder, and make sure you create all these folders before putting files in them. Oh, and this file seems to have changed in two places, so rename one version and place it here, and upload the other here. Delete these files.” I also have to deal with storing a cache of the current folder state after a sync so that I can compare it to the Dropbox servers and the latest folder state when syncing to see what has changed.

All of this was a couple of months’ work at least. To add OneDrive support and support for other, similar solutions, I would have to do all of this again, plus the extra code (and learning time) to create my own wrapper for their server calls. So you are looking at probably a couple of months of coding for each sync solution.

I certainly don’t rule out adding support for other sync solutions in the future, but it won’t be for a little while. Things are further complicated by the fact that Scrivener uses Dropbox API 1, because that is the version of their API that has an Objective-C wrapper. But Dropbox has just deprecated API 1, and are turning it off entirely this time next year. But their Objective-C wrapper for API 2 won’t be available until August. This means that later this year, I am going to have to rewrite a lot of the Dropbox syncing code to support Dropbox API 2.

In other words, it all comes down to the practicalities of being a tiny team (i.e. a one-man coder in this case, as I’m the sole coder for macOS and iOS).

Now, at some point I do need to find a second developer to help me, and I want someone with sync expertise. That might open up possibilities. (Another practicality there is that we don’t even have offices, though!)

I hope that all makes sense and doesn’t come across as making excuses. :slight_smile:

All the best,
Keith

I’m a longtime Dropbox user and fan and am perfectly content to use it with Scrivener. However, if the main problem is the rtf packaging, might it someday be possible to permit iCloud syncing with writers who choose to use text-only Scrivener projects? I guess they can always use Ulysses or iAWriter or others.
Also, does MacOS Sierra’s newly added capacity ito allow iCloud sync with the Desktop and Documents folders possibly suggest that a solution may arrive from Apple? Or is that even relevant? (I’m not a coder.)

Short version: iCloud does not handle the links between components of a Scrivener package correctly. For example, it’s not possible to ensure that the .scrivx file (the master index used to build the Binder) matches the actual document files present in the project. The use of RTF files has very little to do with it.

Longer, more detailed version here:
literatureandlatte.com/blog/?p=713

Katherine

I guess I gotta chip in with this discussion. I’ve been a Scrivener User on the Mac for a long time and have been patiently waiting for the IOS version, you all know how long.

Now the wait is over over and I actually really like the IOS version, I think other than the mess of sync its a great app, especially on my iPad (I live on a boat) but even on the Iphone its a great tool. So no doubt, great job on the IOS version with the exception of syncing.

What is of course totally unacceptable is the choice, or lets say lack of choice in regards of syncing. I will NEVER put my creative work onto DROPBOX. All I want is plug my iPad or iPhone into my MBP and have it synced. Most of the time when I am writing, or come back from a remote sailing and writing trip I want to finish organizing my thoughts and I don’t have ANY need for an internet connection in this case. In fact, other than for occasional research work an internet connection is totally counterproductive for creative work. Just MHO.

Your argument that a Dropbox account is FREE, is total nonsense. You pay with your private data which they sell to third parties, that’s not FREE. It should be illegal to call data mining services FREE. Last time I checked, Mother Theresa didn’t work for them so I don’t think their altruistic streak is very pronounced :wink:. Dropbox, FB, Google, and all the other cloud vultures have created billions of $$$'s from luring unsuspecting users into giving them their data for free, that’s the only free part.

Because I really like Scrivener very much and of course as I have invested years into learning and setting up in Scrivener, I did try to find workarounds to sync between my three devices. But copying complete project files around is cumbersome, prone to failure, and defies all benefits of having the same SW on multiple devices. You change one line of a lyrics or a poem and have to make a note so you remember. Or constantly rename project files. Its a clear recipe for data loss and/or the need for sophisticated manual version control. That’s 1970’s syncing technology.

Your explanation that this is all iClouds fault, is pretty lame. I’ve been in SW R&D for a good part in my life. Yes, syncing, depending on your file model can be a tad complex. I understand that by using Dropbox’ s built in sync algorithms you saved a lot of time as you had no expenses coding the sync yourself. The ones who are paying the bill to Dropbox are the Scrivener users with their data. But there is tons of ready code out there to do the sync work. To force your customers to one of the worst cloud data collectors is ridiculous and unacceptable especially for creative people.
Its like Google’s Analytics and Adsense cookies (which run on Dropbox too). These are tools given to developers for FREE so they put it on their websites so they can milk the private data from the website visitors.

There may be people which are OK with the big brother data collection and sharing machine. Many, including myself, ARE NOT.

So if you really have no plans to support users with a privacy conscience, say that loud and clear. Don’t blame Apple or say maybe we do something if they change their iCloud file model. In may case I’d have waited in vain for the IOS version and that be the end of the Scrivener rope for me. Then I can keep writing as before in IOS notepad and use copy and paste to get it into the OS X version. I am a writer, not a file administrator. I’d would have been better served if you’d have made that clear much earlier then I could have acted accordingly. I have to say very clear that I feel very neglected in my sync needs and that until I read the manual and worked with the new SW I wouldn’t have been able to believe that you simply skipped on the most basic form of syncing projects between devices and tried to hand me over to Dropbox.

well, there is always hope. I see that I am not the only one in need of bare bone syncing without internet connection. I am looking forward for a quick resolution of this major usage shortcoming and hope that you will tackle this very soon.

all the best

cheers

Ernie

//////////////////////////////////

just read the Dropbox Privacy Policy and check outgoing traffic with tools like LIttle Snitch, see which trackers run while you are on Dropbox (with Ghostery for example) and it will make your skin crawl and you will never again put a single bit to their servers.

Exactly what do you expect L&L to do when Apple’s own sync protocols mangle packaged files – the underlying APPLE technology that supports the Scrivener file format?

No, seriously, what do you REASONABLY expect L&L to do in this situation when not even Apple has bothered to get their product working with their own technology? Come up with their own sync protocol? Even with existing code and APIs, we’d be waiting for the iOS version for another five years. L&L had to use a pre-existing engine. (That’s like expecting a game designer to write their own engine instead of using Unity or one of the other choices out there.)

Dropbox is the only widely-used cloud sync application that supports OSX, Windows, and iOS (and looking toward the future, Android). Yes, there are others out there that support all those platforms, but they don’t have nearly as many users. At least with Dropbox, the majority of people who are the target audience probably already have a Dropbox account and are familiar with it. OneDrive is right there with iCloud – not up to the task. Writing code to support a sync engine has no single well-defined API all sync providers use so you can write once and let the user pick their favorite sync client/engine.

L&L offered iOS users a choice – do it without the wire via Dropbox, or use the wire with iTunes. They’re not forcing anyone to use Dropbox. Just because they made the choice YOU don’t like doesn’t mean it was the wrong one to make.

Have you checked how to sync via iTunes?

“… while you are on Dropbox”? Could you explain what you mean? When am I on Dropbox?

Novelist, given your preference for working without an internet connection, the point made by Lunk and Devinganger bears repeating. You surely missed the option for syncing using direct USB connection via iTunes. No internet connection required, I believe. It seems that would perfectly suit your use case, omit the need to use Dropbox and considerably decrease your stress levels.

Out of curiosity, I logged into the Dropbox web interface, which I rarely use. The login screen has a single tracker blocked by Ghostery (Google Tag Manager) and the file screens after logging in have no trackers.

FWIW I’ve just done the same and Ghostery didn’t find any trackers, neither did Cookie, which is set to delete any trackers, log any.

Incidentally anyone who doesn’t wish to use DropBox might find it worth giving Box a try. I’ve used it on occasion and it seems OK with package files. YMMV of course - use at your own risk. Being aimed more at business users they may take a different approach to security although I doubt whether there is that much of a difference.

I almost never log on to the Dropbox web interface. Usually only use the app, on both Mac and iOS. The apps are downloaded via App store so they shouldn’t contain spy ware, right? So what’s the big danger?

A sudden spike in your tin-foil budget?

A. there is no Scrivener SYNC via iTunes!! All you can do is COPY a complete project file. Thats called copying, not syncing although it happens while iTunes actually syncs data between other ios and osx applications.
What for do i need a multiplatform software if i can’t use to work it on a smartphone, a pad and a desktop/laptop at random on the same project without having the need for manual file management?
You have a glorious idea on a morning beach walk and manifest that in same Scriener acts on the phone. Back on the boat you put some meat to that while its still fresh and you do that on the pad as the laptop needs a charge first before the next session. Then later you fire up the newly charged laptop and sync from the phone and pad and get it all together. That is what a cooperating multiplatform SW does. What am I gonna do? Wait with my ideas until the laptop is charged(at least nobody was able to work on the project here :wink:, then copy the phone file to the laptop, then to pad, then back. Or rename the project files as per device and the copy, open and cut and paste ? Gotta be kidding me, right ?
Lets face it, Scrivener is not a cooperating multiplatform SW without the use of Dropbox. Period !!! Copying project files has Nothing to do with syncing, absolutely nothing. We have to stop talking of syncing Scrivener files via iTunes, because there is no such thing.

B. for the Dropbox fans. If you can’t see multiple trackers when you are active in Dropbox, then you are not looking. And actually I don’t care what other people do with their privacy. You can trade whatever of yoursel to whoever for whatever price. But I care about mine and I am simply put off by having a great piece of SW which has a total lack of syncing cababilities unless I’d be willing for a free data donating account with Dropbox.
I don’t have a FB account, because I don’t need it. I don’t have a Google, Whatsup, Snapchat, and whatever account, because I don’t need it. Nor do I need a Dropbox account. All i need is a good writing SW.

C. I have not asked for a refund, neither do i plan to so, and I still think that with the exception of this syncing mess that Scrivener is great SW and that Keith and his team have done a tremendous job.
But I also do think that it is my right as a customer to voice my frustration. I would simply not have expected being left in the rain like this.

Enough of this. Other SW will come up or bd available, or I will just keep using notepad and the osx version. The way we write and record our thoughts will change in ways yet unimaginable, very soon. And privacy will be an option.

it is outright scary of what some people know of how they are spied on. Do yourself a favor and read Dropbox’ privacy policy and exactly which data they collect. On the IZoS spps too. And close your mobile browser and clear website data cache before you fire up tge dropbox app on ios. And never leave the dropbox app open. And there are tools who show you which traffic with which servers.