惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
M
MIT News - Artificial intelligence
D
Docker
S
SegmentFault 最新的问题
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
C
Check Point Blog
GbyAI
GbyAI
美团技术团队
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog

Peter Steinberger

OpenClaw, OpenAI and the future | Peter Steinberger Shipping at Inference-Speed | Peter Steinberger The Signature Flicker | Peter Steinberger Just Talk To It - the no-bs Way of Agentic Engineering | Peter Steinberger Claude Code Anonymous | Peter Steinberger Live Coding Session: Building Arena | Peter Steinberger My Current AI Dev Workflow | Peter Steinberger Essential Reading for Agentic Engineers - August 2025 | Peter Steinberger Just One More Prompt | Peter Steinberger Poltergeist: The Ghost That Keeps Your Builds Fresh | Peter Steinberger Don't read this Startup Slop | Peter Steinberger Essential Reading for Agentic Engineers - July 2025 | Peter Steinberger Self-Hosting AI Models After Claude's Usage Limits | Peter Steinberger Logging Privacy Shenanigans | Peter Steinberger VibeTunnel's first AI-anniversary | Peter Steinberger Making AppleScript Work in macOS CLI Tools: The Undocumented Parts | Peter Steinberger Peekaboo 2.0 – Free the CLI from its MCP shackles | Peter Steinberger Command your Claude Code Army, Reloaded | Peter Steinberger Essential Reading for Agentic Engineers | Peter Steinberger Slot Machines for Programmers: How Peter Builds Apps 20x Faster with AI | Peter Steinberger My AI Workflow for Understanding Any Codebase | Peter Steinberger stats.store: Privacy-First Sparkle Analytics | Peter Steinberger Showing Settings from macOS Menu Bar Items: A 5-Hour Journey | Peter Steinberger VibeTunnel: Turn Any Browser into Your Mac's Terminal | Peter Steinberger Vibe Meter 2.0: Calculating Claude Code Usage with Token Counting | Peter Steinberger llm.codes: Make Apple Docs AI-Readable | Peter Steinberger Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention | Peter Steinberger Peekaboo MCP – lightning-fast macOS screenshots for AI agents | Peter Steinberger Migrating 700+ Tests to Swift Testing: A Real-World Experience | Peter Steinberger Commanding Your Claude Code Army | Peter Steinberger
Real-time collaboration, Apple, and you | Peter Steinberger
Peter Steinberger · 2016-09-08 · via Peter Steinberger

Yesterday at the Apple Event, next to iPhone 7 and Apple Watch Series 2, Apple announced something interesting: real-time collaboration for iWork across Mac, iPad, iPhone and the web.

So far there’s no beta available, but Apple demonstrated how it’d work by editing a set of Keynote slides on stage. Users will be able to add text, images, and animations to their documents in real time on all platforms that Apple supports.

iWork Real-time collaboration

Image by The Verge

History

One of the first apps that made collaborative editing easy on the Mac was SubEthaEdit back in 2003. It used Bonjour to broadcast messages in the local network, but later added collaborative editing over the Internet. However, it was Google that made real-time collaboration mainstream with Google Docs, which originally was named Writely - an experiment with the (back then) new Ajax technology and the “content editable” function in browsers.

Microsoft first added real-time editing in 2013, but only for its Office Web Apps. Only much later did Microsoft ship a variant of it in Office 2016; however, it currently only works in Word. Other apps are planned in the future. There are even third-party products such as the Dropbox badge (Codename “Project Harmony”) that have tried to ease the problem of conflicting files caused when multiple people edit at the same time.

It’s nothing new for Apple, either. Apple first added support for collaborative editing in iWork for iCloud in 2013. It was quite limited and only worked across the web, leaving out Mac and iOS, as platforms, completely.

Looking at the history, one might wonder why it took so long to move from web to apps. One word: offline-support. While it’s a reasonable assumption to require a working internet connection for web apps, this breaks down for native apps. Try disabling your Wi-Fi while editing a Google Doc - it won’t allow you to type anymore. This allows for a much simpler client-server sync model, where changes can be sent to a server immediately, without complex offline storage or a conflict resolution model.

Technology

Offline-first, real-time collaborative sync is hard. There are only a few vendors out there that support all of the above. Apache CouchDB is an open source, document-oriented NoSQL database. It also offers frameworks for iOS and Android.

Google’s Firebase is a real-time database with great support for mobile. However, it’s impossible to host a Firebase instance on-premise to protect your data, and you can’t encrypt the data on the server either - Google has full access to your data. It also lacks support for binary assets.

Apple offers CloudKit; however, there’s no guaranteed propagation time and it usually takes a few minutes until records update. Initially, it was limited to the iOS/macOS platforms, but Apple added CloudKit JS in 2015 to extend support to the web, and theoretically to other platforms like Android, if you build an SDK yourself. However, you still can’t fully encrypt data, it doesn’t support on-premise and your users also need an iCloud account for authentication.

Facebook purchased Parse and eventually shut it down. Parse wasn’t real-time, but it’s now open-source and can be installed on-premise. Facebook has no need for it, so its future is unclear and, therefore, many people are migrating to other services.

PSPDF Instant

PSPDFKit is a great product to display and annotate documents. Of course, you also want to share this markup. Many apps simply save and upload the whole PDF, which can be hundreds of megabytes each - quite the opposite of easy, real-time collaboration.

A slightly better solution is to iterate over annotations and transmit JSON or XFDF. While this is faster, it can be a problem if your annotations include binary assets like images or sounds. It also doesn’t handle conflict resolution.

Looking at the existing solutions, we found that there is no product that solves this problem well while also allowing you to own your data. If you care about your users’ data, you’re left with building this from scratch, which is not feasible for most teams - the same way you do not want to write your own PDF renderer.

We understand SDKs at PSPDFKit, so our goal was to solve this problem in a generic way - completely untangled from PDF - and then use this framework to build PSPDF Instant.

Putting It All Together

PSPDFKit launched an SDK for iOS in 2011. Three years later, we added Android, and now we’re about to launch on our third platform PSPDFKit for Web. The browser works a bit differently from native apps and it would be quite weird to ask the user to manually save a PDF. We needed a system that would automatically transmit annotations back to the files, and conveniently, we had built just that with PSPDF Instant.

What does this mean? Although two separate products, PSPDFKit for Web automatically uses PSPDF Instant in the background. Your annotations are synchronized in real-time with the PSPDFKit Server, where they are stored in a database and can be written back into a PDF anytime.

We wanted to achieve the same outstanding experience for PSPDFKit for Web as we have for iOS and Android. Although it’s still in beta, we’ve worked hard to get native text selection and optimize performance so that it could easily connect to PSPDF Instant for real-time collaboration. Want to try the beta version? Contact us to get an invite.

Alternatively, check out our PSPDFKit for Web Showcase, pick a document and share its URL with a friend. Fair warning, everyone who has access to the same URL will be participating in the same collaboration session, so be mindful when choosing people to share a document with.

The possibilities appear to be endless with PSPDF Instant. We currently have our first app, PDF Viewer, in beta, and we’re already brainstorming ways we can incorporate PSPDF Instant into future versions of the app. Want to be part of our PDF Viewer beta team? Let us know.

Update: Apple’s Real-Time iWork extensions are still in beta and it seems they will need some more work to iron out the issues. Let’s hope our extensive use of tests will make the experience better for PSPDF Instant.

I take back what I said. Someday, Apple will get iWork collaboration right. For now, back to Google Docs. (Yes, I'm sure "it works for you") pic.twitter.com/l3NeJ7CG8t

— Federico Viticci (@viticci) 19. September 2016