ArtSabintsev/Zephyr
Effortlessly synchronize UserDefaults over iCloud.
Thanks to @shaundon for pushing this change in #67
📋 Changes
- #60: Added WatchOS support thanks to @funkenstrahlen!
📋 Changes
- #57 (thanks to @marcheimendinger): Fixed an issue for SwiftUI apps around synchronizing user defaults on the main thread.
📋 Changes
- #55: Fixed a race condition that was accidentally overlooked when `zephyrQueue` was introduced. Huge thanks to @Tunous for pointing out the issue and submitting the fix.
This is a version bump that only affects folks using SPM. This change results in less metadata files being brought into an installation now that the architecture of this repo has changed.
## Synchronization is Hard Thanks to the diligence of @aedificator-nl in (#47 & #48), a long standing bug was fixed that would early-exit an initial synchronization on the first attempted synchronization on a secondary device sharing the same iCloud account. In other words, syncing wouldn't occur right away until _after_ the second device was had a subsequent synchronization attempt performed. I think this bug has been in the library for a long time, if not since the beginning, so I applaud @aedificator-nl for taking the time and diligence to find the nefarious line of code and working through the solution.
Updated Package.swift and Podspec files to resolve https://github.com/SwiftPackageIndex/SwiftPackageIndex-Server/issues/399.
This release adds support for Swift 5.1, iOS 13, and Xcode 11. Full updates here: #44
On working on a personal application of mine, I noticed that synchronization on a second/subsequent device did not work on that device's first launch of an application. After further investigation, I noticed that the `syncFromCloud` method did not actually post a notification on completion. This has now been fixed.
I fixed the `Package.swift` so that it is now compatible with Xcode 11 and the latest Swift Package Manifest file (`// swift-tools-version:4.0`).
#36: Notifications will now be posted after an iCloud sync has occurred (thanks to @twostraws)
As of Zephyr v3.3.0, all future changes on `master` will be done in Xcode 10.2 using Swift 5.0. For those using Swift v4.2, please check out the `swift4.2` branch or version `3.2.0` - both point to the same commit hash.
As of Zephyr v3.2.0, all future changes on `master` will be done in Xcode 10 using Swift 4.2. For those using Swift v4.1.0, please check out the `swift4.1` branch or version `3.1.2` - both point to the same commit hash.
📋 Changes
- Minor swift optimizations
- Improved documentation.
📋 Changes
- #30: `monitoresKeys` are now synchronized. (Thanks to @krzyzanowskim)
📋 Changes
- Adds the ability to sync non-standard `UserDefaults` objects.
- Thanks to @albertwujj in #28
- Adds Swift 4.1 Compatibility
📋 Changes
- Updated Podspec file.
- Removed `.swift-version` file, as it's been deprecated.
- Removed watchOS support since there are a few insurmountable issue (and because it seems no one was using or requesting this support).
📋 Changes
- Fixes #25. When converting to the codebase to Swift 4, the @objcMembers keyword was missing, so the KVO method was never being hit. This has been addressed.
Zephyr v3.0.0 adds support for Swift 4 / iOS 11 / Xcode 9. Only minor changes were made under-the-hood. Moving forward, only support for the Swift 4 codebase (on master) will be maintained. | Swift Version | Branch Name | Will Continue to Receive Updates? | ------------- | ------------- | ------------- | 4.0 | master | **Yes** | 3.2 | swift3.2 | No | 3.1 | swift3.1 | No
I broke Carthage support in v2.2.0. Fixed it in v2.2.3.
Added Jazzy Docs at http://sabintsev.com/Zephyr.
Integrated Availability API to mark functions that were deprecated in v2.2.0
📋 Changes
- Comments are now in the Apple preferred style.
- `syncUbiquitousKeyValueStoreOnChange` replaces `syncUbiquitousStoreKeyValueStoreOnChange`.
- This is only a name change. The Functionality remains the same.
- Replaced `Sample App` with `ZephyrExample`.
I've updated the syntax from Swift 2.2 to Swift 3. Some refactoring was included.
Changed sample project for Carthage
Updated for Swift 2.2.
Added Swift Package manager Support
Added Carthage Support
Serialized queue changes that fixes an issue from v1.4.2 with regards to monitored keys not being synced To iCloud on observation.
📋 Changes
- Zephyr now synchronously processes incoming and outgoing changes to your `monitoredKeys` on a shared serial queue. (e.g., FIFO).
- Bugfix to `deinit` method.
- Stylistic changes
