Skip to content

Commit 3f354ae

Browse files
committed
[MSUE-181]: Review and update public docs for iOS
1 parent 7a81923 commit 3f354ae

12 files changed

+2
-172
lines changed

DESIGNDOC.md

Lines changed: 1 addition & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
## 1 Overview
3838

39-
The [sift-ios](https://github.com/SiftScience/sift-ios) Mobile SDKs collect and send device information and app life cycle events to Sift. Objective C will be used as the programming language and Xcode will be used as the IDE. SDK will be supporting ios 9.2 as deployment target.
39+
The [sift-ios](https://github.com/SiftScience/sift-ios) Mobile SDKs collect and send device information and app life cycle events to Sift. Objective C will be used as the programming language and Xcode will be used as the IDE. SDK will be supporting iOS 12 as deployment target.
4040

4141
The specific features used are: CoreMotion, BatteryManager, Location, NetworkInterface and TelephonyManager. The SDK uses CoreMotion, BatteryManager, Location and NetworkInterface for collecting AppState details. The Device properties details are collected with the help of TelephonyManager and PackageManager along with Build details. In particular, event collecting, appending and uploading are handled on a separate thread with the help of Executors. The Mobile SDKs allow mobile applications to collect and send device properties and application lifecycle events to Sift.
4242

@@ -105,18 +105,8 @@ The iOSDeviceProperties collects the following information:
105105
- The sdk version indicates the current version of the sift SDK that has been used in the application.
106106
- **device_name** : {type: string}
107107
- It indicates device name.
108-
- **device_model** : {type: string}
109-
- The device model indicates the end-user-visible model name for the end product.
110-
- **device_ifa** : {type: string}
111-
- Identifier for Advertisers (IFA or IDFA) is a temporary device identifier used by the Apple set of handheld devices. A successor of Unique Device Identifier (UDID), IFA is available on all devices with versions iOS 6 and later..
112108
- **device_ifv** : {type: string}
113109
- The identifierForVendor is an alphanumeric string that uniquely identifies a device to the app’s vendor..
114-
- **device_screen_width** : {type: integer}
115-
- It indicates the device screen width.
116-
- **device_screen_height** : {type: integer}
117-
- It indicates the device screen height.
118-
- **device_localized_model** : {type: string}
119-
- It indicates the localized version of model.
120110
- **device_system_name** : {type: string}
121111
- It indicates the user-visible operating system name string. Eg: iOS
122112
- **device_system_version** : {type: string}
@@ -127,8 +117,6 @@ The iOSDeviceProperties collects the following information:
127117
- It indicates the ISO country code for the user’s cellular service provider..
128118
- **mobile_network_code** : {type: string}
129119
- It indicates the mobile network code for the user’s cellular service provider.
130-
- **is_simulator** : {type: integer}
131-
- It indicates if device is simulator or not.
132120

133121
Class diagram of iOSDeviceProperties:
134122

@@ -140,11 +128,6 @@ Class diagram of iOSDeviceProperties:
140128

141129
The iOSAppState collects the following informations:
142130

143-
- **application_state** : {type: string}
144-
- Constants that indicate the running states of an app.
145-
- UIApplicationStateActive -> The app is running in the foreground and currently receiving events.
146-
- UIApplicationStateInactive -> The app is running in the foreground but is not receiving events.
147-
- UIApplicationStateBackground -> The app is running in the background.
148131
- **sdk_version** : {type: string}
149132
- The sdk version indicates the current Sift SDK version which is used.
150133
- **window_root_view_controller_titles** : {type: array}
@@ -157,31 +140,12 @@ The iOSAppState collects the following informations:
157140
- UIDeviceBatteryStateUnplugged -> on battery, discharging
158141
- UIDeviceBatteryStateCharging -> plugged in, less than 100%
159142
- UIDeviceBatteryStateFull -> plugged in, at 100%
160-
- **device_orientation** : {type: string}
161-
- Constants that describe the physical orientation of the device.
162-
- UIDeviceOrientationUnknown -> The orientation of the device cannot be determined.
163-
- UIDeviceOrientationPortrait -> The device is in portrait mode, with the device held upright and the Home button at the bottom.
164-
- UIDeviceOrientationPortraitUpsideDown -> The device is in portrait mode but upside down, with the device held upright and the Home button at the top.
165-
- UIDeviceOrientationLandscapeLeft -> The device is in landscape mode, with the device held upright and the Home button on the right side.
166-
- UIDeviceOrientationLandscapeRight -> The device is in landscape mode, with the device held upright and the Home button on the left side.
167-
- UIDeviceOrientationFaceUp -> The device is held parallel to the ground with the screen facing upwards.
168-
- UIDeviceOrientationFaceDown -> The device is held parallel to the ground with the screen facing downwards.
169143
- **proximity_state** : {type: number}
170144
- A Boolean value that indicates whether the proximity sensor is close to the user.
171145
- **location** : {type: dictionary}
172146
- The location consists of collective information of latitude, longitude, accuracy and the time at which data was collected as shown in the [section 3.4](#34-location). (_Have data only if the sift configuration and permissions are enabled_)
173-
- **heading** : {type: dictionary}
174-
- The heading consists of collective information of time, magnetic heading, accuracy, true heading and raw magnetic field values was collected as shown in the [section 3.5](#35-heading).
175147
- **network_addresses** : {type: array}
176148
- The network addresses indicate the list of IP addresses of the current device in which the SDK is running.
177-
- **motion** : {type: array}
178-
- Encapsulated measurements of the attitude, rotation rate, and acceleration of a device was collected as shown in the [section 3.6](#36-deviceMotion).
179-
- **raw_accelerometer** : {type: array}
180-
- Retrieve data from the onboard accelerometers of a device was collected as shown in the [section 3.7](#37-deviceAccelerometerData).
181-
- **raw_gyro** : {type: array}
182-
- Retrieve data from the onboard gyroscopes value of a device was collected as shown in the [section 3.8](#38-deviceGyroData).
183-
- **raw_magnetometer** : {type: array}
184-
- Measurements of the Earth's magnetic field relative to the device was collected as shown in the [section 3.9](#39-deviceMagnetometerData).
185149

186150
Class diagram of iOSAppState:
187151

@@ -216,133 +180,6 @@ Class diagram for Location:
216180

217181
![](Images/LocationDataModel.png)
218182

219-
###
220-
221-
### 3.5 Heading
222-
223-
The azimuth (orientation) of the user’s device, relative to true or magnetic north. The heading mainly collects the following information:
224-
225-
- **time** : {type: number}
226-
- It indicates the time at which this heading was determined.
227-
- **magnetic_heading** : {type: number}
228-
- It indicates the heading (measured in degrees) relative to magnetic north.
229-
- **accuracy** : {type: number}
230-
- It indicates the maximum deviation (measured in degrees) between the reported heading and the true geomagnetic heading.
231-
- **true_heading** : {type: number}
232-
- The heading (measured in degrees) relative to true north.
233-
- **raw_magnetic_field_x** : {type: number}
234-
- The geomagnetic data (measured in microteslas) for the x-axis.
235-
- **raw_magnetic_field_y** : {type: number}
236-
- The geomagnetic data (measured in microteslas) for the y-axis.
237-
- **raw_magnetic_field_z** : {type: number}
238-
- The geomagnetic data (measured in microteslas) for the z-axis
239-
240-
Class diagram of Heading:
241-
242-
![](Images/HeadingDataModel.png)
243-
244-
###
245-
246-
### 3.6 DeviceMotion
247-
248-
The iosDeviceMotion mainly collects the following information:
249-
250-
- **time** : {type: number}
251-
- It indicates the time at which this motion was determined.
252-
- **attitude_roll** : {type: double}
253-
- A roll is a rotation around a longitudinal axis that passes through the device from its top to bottom. The roll of the device, in radians.
254-
- **attitude_pitch** : {type: double}
255-
- A pitch is a rotation around a lateral axis that passes through the device from side to side. The pitch of the device, in radians.
256-
- **attitude_yaw** : {type: double}
257-
- A yaw is a rotation around an axis that runs vertically through the device. The yaw of the device, in radians.
258-
- **rotation_rate_x** : {type: number}
259-
- The rotation rate of the device for the x-axis.
260-
- **rotation_rate_y** : {type: number}
261-
- The rotation rate of the device for the y-axis.
262-
- **rotation_rate_z** : {type: number}
263-
- The rotation rate of the device for the z-axis.
264-
- **gravity_x** : {type: number}
265-
- The gravity acceleration vector expressed in the device's reference frame for the x-axis.
266-
- **gravity_y** : {type: number}
267-
- The gravity acceleration vector expressed in the device's reference frame for the y-axis.
268-
- **gravity_z** : {type: number}
269-
- The gravity acceleration vector expressed in the device's reference frame for the z-axis.
270-
- **user_acceleration_x** : {type: number}
271-
- The acceleration that the user is giving to the device for the x-axis.
272-
- **user_acceleration_y** : {type: number}
273-
- The acceleration that the user is giving to the device for the y-axis.
274-
- **user_acceleration_z** : {type: number}
275-
- The acceleration that the user is giving to the device for the z-axis.
276-
- **magnetic_field_x** : {type: number}
277-
- Returns the magnetic field vector with respect to the device for the x-axis.
278-
- **magnetic_field_y** : {type: number}
279-
- Returns the magnetic field vector with respect to the device for the y-axis.
280-
- **magnetic_field_z** : {type: number}
281-
- Returns the magnetic field vector with respect to the device for the z-axis.
282-
- **magnetic_field_calibration_accuracy** : {type: string}
283-
- It Indicates the calibration accuracy of a magnetic field estimate.
284-
285-
Class diagram of DeviceMotion:
286-
287-
![](Images/DeviceMotionDataModel.png)
288-
289-
###
290-
291-
### 3.7 DeviceAccelerometerData
292-
293-
The accelerometer data mainly collects the following information:
294-
295-
- **time** : {type: number}
296-
- It indicates the time at which this motion was determined.
297-
- **acceleration_x** : {type: number}
298-
- The acceleration that the user is giving to the device for the x-axis.
299-
- **acceleration_y** : {type: number}
300-
- The acceleration that the user is giving to the device for the y-axis.
301-
- **acceleration_z** : {type: number}
302-
- The acceleration that the user is giving to the device for the z-axis.
303-
304-
Class diagram of DeviceAccelerometerData:
305-
306-
![](Images/DeviceAccelerometerDataModel.png)
307-
308-
###
309-
310-
### 3.8 DeviceGyroData
311-
312-
The gyro data mainly collects the following information:
313-
314-
- **time** : {type: number}
315-
- It indicates the time at which this motion was determined.
316-
- **rotation_rate_x** : {type: number}
317-
- The rotation rate of the device for the x-axis.
318-
- **rotation_rate_y** : {type: number}
319-
- The rotation rate of the device for the y-axis.
320-
- **rotation_rate_z** : {type: number}
321-
- The rotation rate of the device for the z-axis.
322-
323-
Class diagram of DeviceGyroData:
324-
325-
![](Images/DeviceGyroDataModel.png)
326-
327-
###
328-
329-
### 3.9 DeviceMagnetometerData
330-
331-
The magnetometer data mainly collects the following information:
332-
333-
- **time** : {type: number}
334-
- It indicates the time at which this motion was determined.
335-
- **magnetic_field_x** : {type: number}
336-
- Returns the magnetic field vector with respect to the device for the x-axis.
337-
- **magnetic_field_y** : {type: number}
338-
- Returns the magnetic field vector with respect to the device for the y-axis.
339-
- **magnetic_field_z** : {type: number}
340-
- Returns the magnetic field vector with respect to the device for the z-axis.
341-
342-
Class diagram of DeviceMagnetometerData:
343-
344-
![](Images/DeviceMagnetometerDataModel.png)
345-
346183
## 4 Modules
347184

348185
The SDK also has a number of classes that deal with event collecting, saving and uploading to Sift server.

Images/AppStateCollectorClass.png

-193 KB
Loading

Images/AppStateDataModel.png

-26.7 KB
Loading
-26.3 KB
Binary file not shown.

Images/DeviceGyroDataModel.png

-16.1 KB
Binary file not shown.
-28.6 KB
Binary file not shown.

Images/DeviceMotionDataModel.png

-109 KB
Binary file not shown.

Images/DevicePropertiesDataModel.png

-84.9 KB
Binary file not shown.

Images/HeadingDataModel.png

-33.4 KB
Binary file not shown.

Images/HighLevelClass.png

-32.9 KB
Loading

PROPOSETECHNICIALDESIGNDOC.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
## 1 Overview
2020

21-
The [sift-ios](https://github.com/SiftScience/sift-ios) Mobile SDKs collect and send device information and app life cycle events to Sift. Objective C will be used as the programming language and Xcode will be used as the IDE. SDK will be supporting ios 9.2 as deployment target.
21+
The [sift-ios](https://github.com/SiftScience/sift-ios) Mobile SDKs collect and send device information and app life cycle events to Sift. Objective C will be used as the programming language and Xcode will be used as the IDE. SDK will be supporting iOS 12 as deployment target.
2222

2323
The specific features used are: CoreMotion, BatteryManager, Location, NetworkInterface and TelephonyManager. The SDK uses CoreMotion, BatteryManager, Location and NetworkInterface for collecting AppState details. The Device properties details are collected with the help of TelephonyManager and PackageManager along with Build details. In particular, event collecting, appending and uploading are handled on a separate thread with the help of Executors. The Mobile SDKs allow mobile applications to collect and send device properties and application lifecycle events to Sift.
2424

README.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,6 @@ This will create initial files and folders including hidden​ `​.gitignore​
5858
(Xcode project is generated and excluded from git by default).
5959
You can also use your xcconfig file: ​`swift package generate-xcodeproj --xcconfig-overrides Config.xcconfig`
6060

61-
Update for Xcode 11
62-
63-
* For Xcode 11 no need to do the above steps, you can directly open the File > Swift Packages > Add Package Dependency
64-
* Paste the repository's URL [https://github.com/SiftScience/sift-ios.git​](https://github.com/SiftScience/sift-ios) into the field
65-
above then click "next".
66-
* Xcode will walk you through the rest of the steps. You can `import sift_ios`.
67-
6861
Recommended steps:
6962

7063
* Add this to your application's `Info.plist` file:

0 commit comments

Comments
 (0)