We are pleased to announce the second pre-release of the upcoming version 5 of the iOS Tracker written in Swift. This pre-release brings several significant features and changes to the tracker: (1) screen view tracking in SwiftUI, (2) move to Swift Package Manager as the build system and removal of Carthage, and (3) a new way to track the IDFA identifier for advertisers.
Screen views in SwiftUI apps can now be tracked using the .snowplowScreen(name: "ScreenName")
modifier on the View
component. For views annotated with the modifier, screen view events will be tracked as the views appear in the SwiftUI lifecycle.
Support for Carthage has been removed from the project. Fully adopting the Swift Package Manager enables us to simplify the build system and avoid workarounds that were previously needed to support Carthage. We believe this will make it easier to maintain the tracker while covering all use cases with Swift Package Manager and CocoaPods. If you have feedback about this change, we’d be happy to hear from you on Discourse!
Finally, the release fixes a problem that the IDFA identifier could not be tracked on apps installing the library through Swift Package Manager. It introduces a new API to set a closure in TrackerConfiguration.advertisingIdentifierRetriever
that retrieves and returns the identifier.
Enhancements
- Add screen view tracking for SwiftUI (#705)
- Drop Carthage and build using Swift Package Manager (#735)
- Add a closure to tracker configuration that enables retrieving IDFA value and replaces the use of SNOWPLOW_IDFA_ENABLED macro (#678)
- Add API docs using Swift-DocC (#739)
Under the hood
- Add tests using Micro for payload validation (#736)
- Update API comments for Swift-DocC and add missing comments (#740)
Snowplow Android Tracker version 5.0.0-alpha.2
is available on Maven Central.
The project’s source code can be found here.
Snowplow iOS Tracker version 5.0.0-alpha.2
is available on Swift Package Manager (SPM) and Cocoapods.
The project’s source code can be found here.
You can add the dependency to your Package.swift
on SPM as:
.package(url: "https://github.com/snowplow/snowplow-objc-tracker", "5.0.0-alpha.2"),