I realize this topic has come up before but with constant updates to both ios and ipads and of course, Scrivener, I was wondering if there’s as yet any plans in future for adding iCloud sync option to iOS?
Dropbox works ok for me but personally with the iPad being where I get most of my work done, iCloud syncing would be much cleaner, especially when allowing sync between Scrivener iOS and the app I use for editing which is Notebooks by Alfons Schmid.
Thank you!
My understanding is that Apple does not provide an adequate API for Literature and Latte to develop a robust sync engine. I wouldn’t hold my breath for Apple to fix that.
Meantime, if you can fit your projects into Dropbox’s “free” size, then consider it an opportunity since you don’t have to clog up and use disk space on your iCloud account. I have many works-in-progress manuscripts there. Dropped my paid Dropbox account a while back.
Fair enough…I keep hoping that will change some day!
In meantime (with my limited knowledge on subject) I do wonder if Scrivener iOS could at least get an update to be able to export sync data files in rtf or plain text format similar to macos. This would make it possible to sync with Notebooks app for example.
it is not, and i hope never becomes, a swiss army knife of bespoke syncing with everything. Remember that Scrivener’s sync is for just that–sync between devices running Scrivener. It’s not intended to act as a server to other apps or purposes, frankly.
It is hard to see the strong motivation for LitLat to develop that particular functionality for iOS. First, because underwriting your desire to execute one of Scriv’s basic functions (editing text!) in some other app could hardly be a priority. Secondly, it seems that Scriv has already provided the functionality you need for this. It is located in the MacOS version (which I gather you have) but it was developed (before Scriv had its own iOS app) precisely for your use case. Sync to External Folder is exactly for enabling you to export the rtf guts of your project to some mobile-accessible folder of your choosing so you can then edit it in some third-party app and then later (back in MacOS) sync back to your Scriv project using that same function.
I definitely agree Id not necessarily want nor need for it to sync with everything. That said, there are instances where it could be useful - depending on one’s personal preferences and style (ie, note taking, style editing etc).
Not to say much of that isnt already in Scrivener. Scrivener is a very full package Im generally very happy with and have been using since 2014 for my long form writing but I personally would find use for better syncing with iCloud should that ever become a possibility.
I understand it might not be a priority for L&L though as mentioned previously, there are situations where being able to sync or export to iCloud or 3rd party apps could be useful (again - personal preference or style would dictate the extent of that).
My question was more for L&L to see if something like that would be in the works at some point as it would be relevant to how I write.
We don’t comment on future plans.
iCloud sync is a very common feature request. As noted, though, the current design of iCloud makes it extremely challenging to implement.
I can’t speak for Keith, but I wouldn’t expect “tools to help people not use Scrivener” to be a particularly high priority.
Hi,
Although we don’t generally comment on future plans - mainly because plans can too easily be interpreted as promises - I can say that iCloud support is a plan for the future, but it will be some time coming and is unlikely to be part of Scrivener 3.
For a long time the technical hurdles needed to make something like Scrivener work on iCloud were too high. This is down to how Scrivener supports research features and how it is a bit of a hybrid between a “shoebox” and a “document” app. With improvements in iCloud and the Apple frameworks, however, those hurdles have largely been removed.
The problem remaining is that Scrivener was built from the ground up to work around some of those hurdles, and the way it’s built won’t play well with iCloud (or rather it won’t play with iCloud at all). Essentially - I’ll try to keep this as non-techie as possible, but it is a coding issue - when creating an app that opens “documents” (or “projects” in Scrivener’s case), the standard way of interacting with Apple’s frameworks is not to work with the files in the file system directly, but instead with a “file wrapper”. A “wrapper” is basically an abstraction in code that represents files, and which you can work with while letting Apple’s code interact with the actual file system.
It used to be the case, however, that if you tried to work with a wrapper in an app such as Scrivener, all of the data inside that wrapper would be loaded into memory as soon as the file was opened. In Scrivener’s case, this meant that if you opened a 2GB .scriv file, all 2GB would get loaded into memory immediately - ouch. And yet the whole point of Scrivener’s file format - a .scriv file is really a folder full of files - is to make it so that only the files in a project needed in a given session are loaded into memory.
The only way for me to work around this was to override, at quite a low level, file loading and saving, and to work with the file system directly so that I could ensure only the files inside the .scriv project you actually needed in a session ever got loaded.
For a long time, this wasn’t a problem - it’s a robust and stable solution. But when Apple introduced iCloud, they built it into the frameworks on the assumption that apps such as Scrivener were working with file wrapper abstractions and not working with the file system directly. This is why Scrivener cannot work with iCloud.
At some point not too long ago, the issues with file wrapper loading got fixed in the Apple frameworks, so that now it is possible to have something like Scrivener sync with iCloud (if you have a lot of large research files, you could run into issues, but that’s caveat emptor). However, the current version of Scrivener is built to work with the file system directly, meaning it can’t sync with iCloud, and this isn’t something that can just be patched - the way it works with files is woven into the very fabric of the app, with the project load/save code being the foundations most of the edifice is built upon (forgive the mixed metaphors).
So here’s the crux: we plan to support iCloud in a future version, and it is possible these days, but the only way we can do so is with a fundamental rewrite - perhaps even starting again. So that’s why it won’t be coming any time soon.
All the best,
Keith
Would this require a change to the basic project format? In particular, would it break Windows compatibility unless Windows Scrivener is also rewritten?
Not necessarily. The format would still essentially be a folder full of files as it is now; it’s the way the code interacts with it, not the format itself, that is the block to using iCloud now (it used to be the file format that was the issue because of the aforementioned technical problem with folders all being read into memory at once when using the “wrapper” abstraction). I say “not necessarily”, though, because if we were to rewrite then there are a few tweaks I would make to the details of the folder format (but not to the general principle of it being a folder with files inside). Then Windows would need updating too. But we’re not talking near future here…
Wow and thank you very much for both a) all the work you’ve been and continue to put into this app and b) explaining in such detail the complexities involved with implementing the changes. That does help understand and makes complete sense!
Scrivener has been my go-to app for writing for several years now and Ive always enjoyed the experience and intend to continue that! My curiosity for its API capabilities with iCloud and syncing with other apps are merely “extras” however, and situational. Not so much to move away from Scrivener but rather to complement it in specific areas.
Its certainly good to know that eventually a solution could be out there, and again - I really appreciate the time you took to explain the process that would be involved.
Keep up the amazing work!
Both very good news and not-so-good (but not unexpected) news. Thanks for the update!
This is welcome news.
Thanks for a great reply, love the detail and the important thing for you folks is, I will be a paying customer for Scrivener and will find a work around for the others.
For future plans, I would be happy to use a subscription plan, ala Adobe Creative Cloud, so that I could use on any machine rather than carting my two Macs around but, regardless, remain a loyal Scrivener user regardless…
Hope you don’t mind me resurrecting an old-ish thread, but I was puzzled by the quoted remark, because in my iCloud Drive folder I see a place for Scrivener—which I presumed was there to sync its files/projects via iCloud:
There is a difference between sync and copy operations.
If you put a project in the iCloud folder on the Mac, iCloud can copy it to the corresponding folder in the iOS Files app. From there, you can put it in Scrivener’s dedicated file space, and Scrivener can open it. It will appear in the “On this [device]” section of Scrivener’s project list. You can then do the same in reverse to get it back to the Mac. This is our recommended solution for people who don’t want to use Dropbox.
But this is a copy operation, meaning the project is copied as a complete unit. A “sync” operation, as the word is used in this thread, compares the copy of the project on the device to the copy on the shared server (exclusively Dropbox, for Scrivener projects) and uploads/downloads individual component files as needed to make the two match.
Copy operations are generally safer than sync operations: since you’re copying the whole project as a unit, there’s little risk of file conflicts, missing components, and all the other sync issues that people run into. Sync operations are generally faster, as the amount of data being moved is generally much smaller.
I’m confused. Isn’t syncing used for all files placed inside the iCloud folder and subfolders? The first time, sure, the files are copied, but afterward aren’t they synced?
My interpretation of things is, zip the project on your Mac, put the zip file in any iCloud folder, then on your iPad access that iCloud folder and unzip the project into the Scrivener local [on this device] folder. Zipping the project essentially forces iCloud to copy the file as one piece.
Is that correct?
Again, in the context of this thread, “syncing” refers to the specific process of uploading/downloading the components of a project in order to make the iOS Scrivener version match the version on the sync service’s server. That is only possible with Dropbox.
Yes, you can use iCloud to share projects between devices. You cannot use it for direct synchronization with iOS Scrivener.
Ah, I didn’t realise until I had posted that this thread was in the “Scrivener for iOS” section particularly. My mistake, sorry. I was thinking of any sort of iCloud sync for Scrivener, not just for iPhone.
But since it is about iOS, then with regard to your comment:
… I have two Scrivener projects in this iCloud Drive folder on my Mac, yet they are nowhere to be seen in the iOS Files app — there’s no corresponding ‘Scrivener’ folder in the ‘iCloud Drive’ folder there. There is a ‘Scrivener’ folder in the ‘On My Phone’ folder there, but that only contains two projects I synced long ago using Dropbox and which I’d forgotten about.