Xcode required version: I'm not aware of any issues with Swift 5.7.0 or 5.7.1 that would require Xcode 14.2; 14.0+ should be sufficient (though newer is typically preferable)
Installation
Before You Begin
Xcode 14.0 + should be sufficient
remove The binary distribution files of the SDK have been built for iOS 8.; this is distrubuted as a package rather than as a binary
sample code calls the identify method rather than track
Screen Tracking
In addition to OS version and device model name, the SDK also tracks:
identifierForVendor: A UUID that uniquely identifies a device to the app’s vendor. (UIDevice.current.identifierForVendor)
orientation: The physical orientation of the device. (UIDevice.current.orientation)
userInterfaceIdiom: The style of interface used on the device. (UIDevice.current.userInterfaceIdiom)
Other
I'm not sure if the intent is for the values for the Type columns to represent proper Swift types or more general notions of types, but Swift does not have Timestamp or Map types
Timestamp is Int64 (technically it's Millisecond, a type alias for Int64)
Map is more complicated, but Dictionary would be closer
a nit, but Boolean should probably be capitalized as it refers to George Boole
Missing:
The documentation does not cover the following methods:
Lytics.getProfile(_:)
Lytics.continueUserActivity(_:stream:)
Lytics.openURL(_:options:stream:)
Lytics.shortcutItem(_:stream:)
It also does not cover the SwiftUI helper methods provided by the optional LyticsUI library:
Issues with the documentation at https://docs.lytics.com/docs/sdk-for-ios
Organized by section
iOS Quick Start
Overview
About the Lytics SDK for iOS
5.7.0
or5.7.1
that would require Xcode14.2
;14.0+
should be sufficient (though newer is typically preferable)Installation
Before You Begin
The binary distribution files of the SDK have been built for iOS 8.
; this is distrubuted as a package rather than as a binaryStep 2. Configure the SDK
The API token is now passed separately:
Technical Documenttion
Configuration
Remove from Table:
apiKey
: this is now required to be passed toLytics.shared.start(apiToken:configure:)
and is no longer part ofLyticsConfiguration
Additionally, the following are unsupported following the resolution of #56
trackScreenViews
trackPushNotifications
trackDeepLinks
I have a PR -- #119 -- removing them from the code
Add to Table:
requireConsent
maxLoadRetryAttempts
maxUploadRetryAttempts
defaultTable
collectionEndpoint
entityEndpoint
Change in Table:
logLevel
: the type is technicallyOptional<LogLevel>
, meaning.none
is also a possible valueChange example config:
Identifying Users
Tracking Events
identify
method rather thantrack
Screen Tracking
In addition to OS version and device model name, the SDK also tracks:
identifierForVendor
: A UUID that uniquely identifies a device to the app’s vendor. (UIDevice.current.identifierForVendor
)orientation
: The physical orientation of the device. (UIDevice.current.orientation
)userInterfaceIdiom
: The style of interface used on the device. (UIDevice.current.userInterfaceIdiom
)Other
Type
columns to represent proper Swift types or more general notions of types, but Swift does not haveTimestamp
orMap
typesTimestamp
isInt64
(technically it'sMillisecond
, a type alias forInt64
)Map
is more complicated, butDictionary
would be closerBoolean
should probably be capitalized as it refers to George BooleMissing:
The documentation does not cover the following methods:
Lytics.getProfile(_:)
Lytics.continueUserActivity(_:stream:)
Lytics.openURL(_:options:stream:)
Lytics.shortcutItem(_:stream:)
It also does not cover the SwiftUI helper methods provided by the optional
LyticsUI
library:View.trackContinueUserActivity(_:with:stream:perform:)
View.trackOpenURL(with:stream:perform:)
View.trackScreen(with:stream:name:identifiers:properties:)