Posts

About iCloud changes in 1Password 5

iCloud borderless iconOne of the big changes in 1Password 5 for Mac and iOS is a brand new iCloud sync engine. This change is a huge, order-of-magnitude-improvement over what we had in 1Password 4, but it came at a cost. I would like to explain how we arrived at this decision.

Mac App Store and AgileBits Web Store

There are two versions of 1Password for Mac. One is available on the Mac App Store and the other is in our own AgileBits Store. For the most part, these two versions are identical. One major difference is that Mac App Store version of 1Password is sandboxed to satisfy the store requirements. Another big difference is the access to iCloud features. Starting with 1Password 5, only apps downloaded from iOS or Mac App Stores have access to iCloud.

Hey Siri, define “iCloud”

“iCloud” is a name that covers many different services and technologies. This umbrella name makes it difficult to talk about iCloud.

For Mac and iOS users, iCloud could mean:

  • Services that keep track of your iTunes Movies and Music purchases
  • Services that keep your application data and iPhone backups
  • iCloud.com
  • And more: apple.com/icloud

For developers, iCloud could mean:

  • a low-level API that is used to read and write files to the local iCloud container folders
  • a document-based API that is used to store documents for apps like TextEdit or Preview
  • an API for apps using Core Data framework
  • new CloudKit API
  • More information is here: developer.apple.com/icloud/index.html

1Password 4 was using the low-level API tied to the local iCloud container folder. It is similar for both Mac App Store and iOS apps. Because the local container folder was available to all apps on Mac, our Web Store version of 1Password could also use iCloud for syncing.

History

Here is a short history of iCloud and 1Password:

  • 2011: iCloud introduced in iOS 5
  • 2012: iOS includes many fixes and new APIs in iCloud. 1Password 4 for iOS 6 (finally!) adds support for iCloud
  • 2013: 1Password 4 for Mac is out with iCloud support
  • 2014: iCloud gets completely re-implemented and reintroduced as CloudKit and iCloud Drive.
  • One-time migration of user data is performed when upgrading to iOS 8 and OS X Yosemite. 1Password 5 for Mac and iOS now use CloudKit

1Password 4 and iCloud

From the developer’s perspective, the original iCloud was pure magic. To sync with iCloud, the “only” thing that the app had to do was to save its files into a special folder and the operating system took care of the rest. The files were magically transferred between all computers and devices.

When the magic worked it was great. When it didn’t, it could be frustrating because there was no way to tell why.

Over time, after dealing with the problems we “learned” and made defensive changes in the app. For example, after initially syncing to iCloud, 1Password would show a message that the data will be available on other devices “in a few minutes”, even though we had no way to tell when it would actually happen. If you were setting up a new device and downloading a lot of data, it would take hours for your 1Password data to appear.

1Password was not the only app affected by iCloud issues:

There is no doubt that these issues triggered a major change in iCloud and the introduction of iCloud Drive and CloudKit. Unfortunately, it seems that iCloud Drive might have inherited some of the issues.

CloudKit

In 2014, Apple announced CloudKit, available exclusively to apps in iOS 8 and OS X Yosemite. It is a simple and elegant network API that allows apps to store data remotely on Apple servers. The biggest difference from iCloud is that there is no magic. Instead of writing the files locally and then waiting for them to magically appear on other devices, the app simply makes a request to update its data on the server. It does require developers to write more code, but the end result is a hundred times better.

CloudKit is very fast, efficient, and makes it easy to detect and troubleshoot errors. CloudKit is predictable. 1Password now knows if the item was successfully updated on the server and is available to other devices. If the operation fails, the app now gets a detailed error message explaining why it happened, be it a network error, a downed server, no space available, or the user was rate-limited.

We don’t have to guess when something goes wrong anymore, and we no longer have to tell our users to perform a set of magic steps hoping that some of them would trigger iCloud to work. CloudKit solved the problems we had with the old iCloud.

Other advantages of CloudKit include:

  • CloudKit stores data as records instead of files. It allows apps to perform partial record fetches and updates that make syncing more efficient and do not force dowloading or uploading an entire file.
  • Remote CloudKit database supports queries that allow 1Password perform syncing faster compared to scanning a directory of files.
  • CloudKit supports “server change tokens”. They are used by 1Password to quickly test for changes made on other devices.
  • 1Password on both Mac and iOS uses CloudKit Remote Push Notifications to perform syncing almost instantly when a change made on a remote device or Mac.
  • CloudKit provides a special record asset type (CKAsset) that is used to sync large attachments.

All these features made a huge difference. We tested CloudKit integration in early betas of 1Password 5 and we immediately became very excited about it. After using CloudKit in the beta for several weeks, we decided it is the best way for 1Password to support iCloud sync.

Conclusion

I hope this explains why we made a decision to switch to CloudKit. The performance and reliability of CloudKit, combined with issues of the old iCloud sync, made it impossible for us to not use CloudKit in 1Password 5.

1Password 5 for Mac is here

What’s a major OS X release without a major 1Password update? I don’t know, but we would rather not find out. That’s why you can now get 1Password 5 for Mac in the Mac App Store and our web store!

First-class Yosemite citizen

It was only a year ago that we released 1Password 4, and 1Password 5 for Mac ensures we’re ready for the next major chapter of OS X. We completely redesigned 1Password to be a first-class OS X Yosemite citizen—in fact, it requires Yosemite now—right down to compatibility with its new Dark Mode; if you enable it, be sure to check out 1Password mini in the menu bar!

1Password mini also got its own major upgrade. Besides Dark Mode, we redesigned it to be faster and more intuitive so you can fly through menus, anchor an item in its own window with a shortcut, and more. Plus, if you trigger 1Password mini with the system-wide shortcut (⌘-⌥-\ by default), it now conveniently appears in the center of your display.

Go for an iCloud Drive

If you want to use iCloud to sync with 1Password 5 for iOS, I am thrilled to say Apple’s next-gen sync is now available in 1Password 5 for Mac. iCloud sync also now requires the Mac App Store version.

The new iCloud sync is a really big deal. It’s faster and just plain better in every way, and you simply need to upgrade to iCloud Drive on all your Apple devices to sync 1Password 5 (note: we do not store your data in iCloud Drive. We use CloudKit, its underlying technology, for sync). That means you’ll need to iOS 8 and OS X Yosemite all the things. For more details and a guide to making the transition, please check out our iCloud FAQ support document.

Wi-Fi Sync your attachments

Using Wi-Fi Sync to keep your data close to home? As long as you’re using the new 1Password 5 for Mac and iOS, I am delighted to say your attachments will now sync as well.

Upgrades and sales, oh my!

We’re so excited about 1Password 5 for Mac that we want all our v4 customers to have it for free! But what about people who have yet to buy a 1Password License of Awesomeness? No, we don’t actually call it that. But we should.

We want to help you out too, so we’re throwing a 30-percent-off launch sale! That means you can get secure and save a ton of time online for just $35!

How long does the sale run? We don’t know yet. Does it matter? Nope! Grab your 1Password License of Awesomeness now (see? it sounds great), start creating strong, unique passwords for all your accounts, and up your security.

1Password for iOS gets updated, prepares for the future

Big things are afoot, dear 1Password iPhone and iPad users. While we’re not quite ready to talk specifics just yet, I can talk about the small yet shiny updates we released in the App Store and some of our plans for the future.

The updates

Available now are updates to all three iOS versions of 1Password: for iPhone, for iPad, and the universal Pro version for all devices (they’re all version 3.6.1 for those keep track at home). They improve Login filling on websites and fix a handful of iOS 5 bugs like the Login popover, a crasher on iOS 3.1, and an unresponsive search box.

The future

Speaking of iOS 3.1, though, we want to get the word out that this is the last update to support iOS 3 and iOS 4. If you can’t upgrade to iOS 5 for whatever reason, I recommend downloading these version 3.6.1 updates, making a backup copy on your Mac or PC for safe keeping, and simply not opting to update 1Password for iOS until you can upgrade to iOS 5. For a quick way to get a copy of the 1Password for iOS app file (note: this does not backup your actual data. See this guide for that), you can:

  • Select your copy of 1Password in iTunes, from the Apps section in your Library (pictured below)
  • Go to File > Show in Finder/Explorer. This will open a new file browser window to where iTunes stores copies of your apps and automatically the file for 1Password for iOS
  • Copy (don’t move!) this file somewhere safe, or ensure that its folder is backed up by whatever backup software or service you use. Also: +50 points to you for using a backup app or service

ITunes Show in Finder

The why

So why are we going all-in with iOS 5 for the next versions of 1Password for iPhone and iPad? Because iOS 5 adoption is off the charts, and it will let us bring you a more secure and reliable 1Password experience, especially when it comes to some key new features. These enhancements are going to require a lot of work, which means we could add a bunch of extra code to support both iOS 5 and previous versions. But as you’ve probably heard before, extra code means more complexity, and complexity is the enemy of creating a rock solid, fantastic experience.

One of the biggest perks of iOS 5 is, of course, iCloud. Apple’s providing developers with a fantastic cloud service that should simplify a lot of challenges when it comes to sync and backup, and we’re all over that. However, iCloud is only compatible with Lion and iOS 5, as well as Windows Vista and 7.

Another major, though more under-the-hood, change in iOS 5 is something called Automatic Reference Counting. Long story short, this new tech in iOS 5 simplifies a lot of tough problems for developers when it comes to managing memory and making sure apps perform well and don’t crash. Again, we’re all over that. In fact, I think you’d be hard pressed to find someone who isn’t.

The ‘stay tuned’

As far as more details about our next major updates to 1Password for iOS, those will have to wait for another blog post. To be the first to know, be sure to subscribe here to our Agile Blog, follow @1Password and @AgileBits on Twitter, and like the 1Password Fan Page!

On 1Password and iCloud

Just in case this is the first blog post you’ve checked since swearing off reading tech news for the past ten months or so: this is a pretty massive week for new Apple goodies (also: thanks for making this the first post you’ve read in almost a year!). Yesterday, Apple released iOS 5 and its many fantastic new features to the world, as well as a bunch of new apps like Find My Friends, AirPort Utility for iOS, and Cards. Tomorrow, the iPhone 4S becomes available, and Apple’s new service that ties it all together—iCloud—offers some great potential to third-party apps like 1Password.

NewImage

Naturally, we’re getting a lot of questions about whether we will offer iCloud as a sync option in 1Password for Mac, Windows, iPhone, iPad, and Android, either as a replacement or an alternative to our current preferred sync service, Dropbox.

What I can say so far is that we’re just as excited about iCloud as you are, and we’re definitely looking into what it can do for 1Password and you. Fortunately, you can actually enjoy one of iCloud’s perks if you upgraded your iPhone, iPod touch, or iPad to iOS 5 and created an iCloud account: automatic, once-a-day, over-the-air backup and restore of all your iOS app data, which includes 1Password for iOS. Go to Settings > iCloud to learn more and configure.

Without us having to do anything, iOS 5 can at least wirelessly backup your 1Password data, and let you restore that data should you ever need to wipe your device or replace it with a new one. So really, the million dollar question is whether iCloud can function as a great solution for syncing 1Password data between computers and devices.

We don’t want to say anything more about iCloud right now or whether it will turn out to be the great sync solution we know 1Password customers demand. But rest assured, we’re definitely looking into it. As soon as we have more to say, you’ll hear about it here, on our @1Password and @AgileBits accounts, and on our 1Password Facebook page.