The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
13.7.1 - 2024-12-05
13.7.0 - 2024-11-22
13.6.4 - 2024-11-17
- Dependency conflict for
RCT-Folly
library when New Architecture is enabled (removed the fixed folly version)
13.6.3 - 2024-11-13
13.6.2 - 2024-09-24
- Updated HyperTrack SDK Android to 7.8.3
13.6.1 - 2024-09-11
- Fixed issue that prevented device registration if the Activity Service plugin wasn't provided
- Updated HyperTrack SDK Android to 7.8.2
13.6.0 - 2024-09-05
- Support for Motion & Activity detection
- If your app asks for the Motion & Activity permission (for iOS) or the Activity Recognition permission (for Android) and the user grants it, you will have better activity detection in polylines
- Use new Activity service plugin
hypertrack-sdk-react-native-plugin-android-activity-service-google
(See Plugins)
13.5.1 - 2024-09-02
- Serialization issue with
Order.isInsideGeofence
13.5.0 - 2024-08-21
- Support for on-device geofencing via new
HyperTrack.orders.get("my_order_handle").isInsideGeofence
property- To learn more about how to best use this new feature see our guide here: Verify shift presence before starting work
Example use for worker clock in:
// check worker presence synchronously
let activeOrders = await HyperTrack.getOrders()
let currentOrder = activeOrders.get("current_order")
if (currentOrder !== undefined) { handlePresence(currentOrder) }
else { console.log("'current_order' not found") }
// or subscribe to the changes in orders to get the status updates
HyperTrack.subscribeToOrders(orders => {
let let currentOrder = activeOrders.get("current_order")
if (currentOrder !== undefined) { handlePresence(currentOrder) }
else { console.log("'current_order' not found") }
})
// handle worker presence inside the order destination geofence
function handlePresence(isInsideGeofence: Result<boolean, LocationError>) {
switch (isInsideGeofence.type) {
case 'success':
if (isInsideGeofence.value) {
// allow worker to clock in for the shift
} else {
// "to clock in you must be at order destination"
}
break;
case 'failure':
// resolve errors to check for presence
break;
}
}
13.4.0 - 2024-06-13
- New
setWorkerHandle
andgetWorkerHandle
can be used to identify workers- We observed our customers identify worker devices via
HyperTrack.metadata
, so we decided to make it a first class citizen in our API. - If you previously used
metadata
to identify workers, we suggest usingworkerHandle
for this purpose instead.
- We observed our customers identify worker devices via
- Updated HyperTrack SDK Android to 7.6.0
13.3.5 - 2024-06-05
- Updated HyperTrack SDK iOS to 5.6.0
13.3.4 - 2024-05-24
- Updated HyperTrack SDK Android to 7.5.5
13.3.3 - 2024-05-14
13.3.2 - 2024-04-30
- Updated HyperTrack SDK iOS to 5.5.3
13.3.1 - 2024-04-24
13.3.0 - 2024-04-19
- New
addGeotag
method that haveorderHandle
andorderStatus
parameters. You can use this API when users need to clock in/out of work in your app to honor their work time (see Clock in/out Tagging guide for more info)
13.2.3 - 2024-02-27
- Updated HyperTrack SDK Android to 7.4.3
13.2.2 - 2024-02-14
- Updated HyperTrack SDK Android to 7.4.2
13.2.1 - 2024-02-13
13.2.0 - 2024-02-06
- Fixed a serialization issue with dynamic publishable key implementation
13.1.0 - 2024-01-29
13.0.0 - 2024-01-24
- New Dynamic publishable key API allows to set the publishable key later in the app lifecycle. It should be used only when there is no other way around it and it's impossible to know the publishable key in advance at the build time. Please contact us if this matches your use case
- Remove async from
setIsAvailable
,setIsTracking
,setMetadata
,setName
methods
12.1.0 - 2024-01-17
- Mitigates SDK cache file corruption that led to some Android devices loading to
device_id
values with all zeroes. - [iOS] Optimized querying the Location Manager to reduce impact on battery life and main thread performance.
- Reduced network traffic.
12.0.0 - 2023-12-12
- Now the SDK uses the Plugin architecture. You need to add additionall NPM dependencies for the plugins for the SDK to work properly. See Plugins and Migration Guide for more information.
- Updated HyperTrack Android SDK to 7.0.11
11.0.11 - 2023-12-11
11.0.10 - 2023-11-20
11.0.9 - 2023-11-10
11.0.8 - 2023-11-08
11.0.7 - 2023-10-19
- Lazily initialize event listener subscriptions
11.0.6 - 2023-10-12
- Updated HyperTrack iOS SDK to 5.0.4
11.0.5 - 2023-10-10
11.0.4 - 2023-10-06
- Updated HyperTrack Android SDK to 7.0.5
11.0.3 - 2023-10-04
- Updated HyperTrack Android SDK to 7.0.4
11.0.2 - 2023-09-28
11.0.1 - 2023-09-20
- Fixed setting wrong object format for
setMetadata()
11.0.0 - 2023-09-14
locate()
to ask for one-time user locationsubscribeToLocation()
to subscribe to user location updatesgetErrors()
getName()
getMetadata()
- HyperTrackError types:
noExemptionFromBackgroundStartRestrictions
permissionsNotificationsDenied
- Updated HyperTrack Android SDK to 7.0.1
- Add Android SDK plugins (
location-services-google-19-0-1
andpush-service-firebase
) - Updated HyperTrack iOS SDK to 5.0.1
- The whole HyperTrack API is now static
- Changed the way to provide publishableKey (you need to add
HyperTrackPublishableKey
meta-data
item to yourAndroidManifest.xml
) - Renamed HyperTrackError types:
gpsSignalLost
tolocationSignalLost
locationPermissionsDenied
topermissionsLocationDenied
locationPermissionsInsufficientForBackground
topermissionsLocationInsufficientForBackground
locationPermissionsNotDetermined
topermissionsLocationNotDetermined
locationPermissionsProvisional
tolocationPermissionsProvisional
locationPermissionsReducedAccuracy
topermissionsLocationReducedAccuracy
locationPermissionsRestricted
topermissionsLocationRestricted
- Renamed
isAvailable()
togetIsAvailable()
- Renamed
isTracking()
togetIsTracking()
- Renamed
setAvailability()
tosetIsAvailable(boolean)
- Changed
startTracking()
andstopTracking()
tosetIsTracking(boolean)
- Renamed
subscribeToTracking()
tosubscribeToIsTracking()
- Renamed
subscribeToAvailability()
tosubscribeToIsAvailable()
initialize()
method (the API is now static)SdkInitParams
(the config now should be done with theAndroidManifest
metadata andInfo.plist
)- Motion Activity permissions are not required for tracking anymore
- HyperTrackError types:
motionActivityPermissionsDenied
motionActivityServicesDisabled
motionActivityServicesUnavailable
motionActivityPermissionsRestricted
networkConnectionUnavailable
sync()
method
10.0.3 - 2023-08-04
- Propagating Android exception stacktrace to JS API
10.0.2 - 2023-06-16
- Updated HyperTrack iOS SDK to 4.16.1
10.0.1 - 2023-06-13
- Updated HyperTrack Android SDK to 6.4.2
10.0.0 - 2023-06-06
- Updated HyperTrack Android SDK to 6.4.1
getLocation
return type toResult<Location, LocationError>
addGeotag
andgetLocation
wrong return type that is different from the one in the API docs (introduced in 9.2.0)
9.2.2 - 2023-06-01
- Updated HyperTrack iOS SDK to 4.16.0
9.2.1 - 2023-05-19
- Fixed
addGeotag
(with expected location) return type
9.2.0 - 2023-05-18
- Breaking change: Changed
addGeotag
return type toResult<Location, LocationError>
- HyperTrack iOS SDK updated to 4.15.0
addGeotag
with expected location
9.1.1 - 2023-03-30
- Removed types re-export to fix issues with some build configurations
9.1.0 - 2023-03-21
automaticallyRequestPermissions
param toinitialize()
9.0.0 - 2023-02-17
- Updated HyperTrack iOS SDK to 4.14.0
- Updated HyperTrack Android SDK to 6.4.0
createInstance()
renamed toinitialize()
getDeviceID()
renamed togetDeviceId()
syncDeviceSettings()
renamed tosync()
setDeviceName()
renamed tosetName()
subscribeToErrors()
callback now has param type (HyperTrackError
)getLocation
return typeLocationError
now has different structure
initialize()
configuration params for- Debug logging
- Background location permissions request for Android
- Mock locations
subscribeToAvailability()
automaticallyRequestPermissions
param frominitialize()
enableDebugLogging()
(useinitialize()
paramloggingEnabled
istead)setTripMarker()
(useaddGeotag
instead)
8.2.2 - 2022-10-10
- Deployment target for iOS changed to 11, to comply with native iOS SDK.
8.2.1 - 2022-09-27
enableDebugLogging()
now doesn't cause an infinite loop when called.
8.2.0 - 2022-09-23
- Updated Android SDK to 6.3.0 and iOS SDK to 4.13.0
- When the Android app is uninstalled completely from the device and then installed back, the device_id will change. This improves the stability of the data coming from the SDK. Now this behavior is the same between Android SDK and iOS SDK.
- If the user simulates locations when it's prohibited, the SDK still passes real locations through if there are any.
- Decreased the time sensitivity for first location detection. Results in fewer
location_unavailable
outages when tracking starts on Android.
- Now, all logs in Android SDK are disabled by default and can be enabled by enableDebugLogging()
8.1.0 - 2022-08-30
- Updated Android SDK to 6.2.2 that is compabible with any native library (React Native C++) and reduces the SDK size too. SDK should now add only 4MB to the compressed app's size, when downloaded from Google Play instead of 17 MB on 8.0.0.
8.0.0 - 2022-08-05
- New interface for listeners.
- Reference documentation.
- TypeScript support.
- Updated React Native from 0.63.3 to 0.69.1
7.19.1 - 2022-07-27
- Fixed React Native C++ incompatibility issue with Android SDK 6.2.0
7.19.0 - 2022-07-18
- Updated HyperTrack Android SDK to 6.2.0 and iOS SDK to 4.12.4
7.18.4 - 2022-06-15
- Updated HyperTrack Android SDK to 6.1.4
7.18.3 - 2022-06-15
- Updated HyperTrack Android SDK to 6.1.3
7.18.2 - 2022-06-13
- Updated HyperTrack iOS SDK to 4.12.3
7.18.1 - 2022-06-10
- Updated HyperTrack iOS SDK to 4.12.1 to fix a regression in tracking listener
7.18.0 - 2022-06-09
- Updated HyperTrack Android SDK to 6.1.2 and iOS SDK to 4.12.0
7.17.0 - 2022-06-03
- Updated HyperTrack Android SDK to 6.1.1
7.16.0 - 2022-05-03
- Updated HyperTrack Android SDK to 6.0.4
7.16.0 - 2022-05-03
- Updated HyperTrack Android SDK to 6.0.4
7.15.0 - 2022-04-29
- Current location getter returns either the current location of the device or an outage reason for why current location is unavailable.
7.14.0 - 2022-03-24
- Updated HyperTrack Android SDK to 6.0.2
7.13.0 - 2022-01-05
- Updated iOS SDK to 4.9.0
7.12.1 - 2021-11-11
- Updated Android SDK to 5.4.5
7.12.0 - 2021-10-29
- Updated Android SDK to 5.4.4
7.11.0 - 2021-10-28
- Updated Android SDK to 5.4.3
7.10.0 - 2021-08-04
- Updated Android SDK to 5.4.0
7.9.0 - 2021-07-07
- Updated Android SDK to v5.2.5
7.8.1 - 2021-06-11
- Accidently removed import added back.
7.8.0 - 2021-06-11
- Updated Android SDK to v5.2.2
7.7.0 - 2021-05-29
- Updated Android SDK to v5.1.0
7.6.0 - 2021-05-07
- Updated Android SDK to v4.12.0
7.5.0 - 2021-04-26
7.4.0 - 2021-04-02
- Updated Android SDK to v4.11.0
- SDK won't navigate to Settings showing "Select
Allow Always
option" snackbar on Android 11 and later.
7.3.0 - 2021-03-04
- Updated Android SDK to v4.10.0
7.2.0 - 2020-12-23
- Updated iOS SDK to v4.7.0
- iOS plugin runtime error notification.
7.1.0 - 2020-11-17
7.0.1 - 2020-10-07
- Added
hypertrack-sdk-react-native.podspec
topackage.json
file.
- Updated iOS SDK to
4.5.1
.
7.0.0 - 2020-10-02
- Updated react-native to version
0.63.3
. - Updated Android SDK to
4.6.0
.
- Remove startsTracking API from createInstance.
/**
* Initialize the HyperTrack SDK
* @param {string} publishableKey - A unique String that is used to identify your account with HyperTrack.
- * @param {boolean} startsTracking - Should the SDK start tracking immediately after initialization.
* @param {boolean} automaticallyRequestPermissions - If true, SDK automatically triggers location and motion activity permissions dialogs when tracking starts.
*/
- async createInstance(publishableKey, startsTracking = true, automaticallyRequestPermissions = true): Promise<HyperTrackAPI> {
- await HyperTrack.initialize(publishableKey, startsTracking, automaticallyRequestPermissions);
+ async createInstance(publishableKey, automaticallyRequestPermissions = true): Promise<HyperTrackAPI> {
+ await HyperTrack.initialize(publishableKey, false, automaticallyRequestPermissions);
return new HyperTrackAPI();
},
6.6.0 - 2020-07-24
- Updated react-native to version
0.61.4
. - Updated Android SDK to
4.5.2
.
6.5.1 - 2020-07-20
- Updated Android SDK to
4.5.1
.
6.5.0 - 2020-07-16
- Updated Android SDK to
4.5.0
.
6.4.0 - 2020-07-14
- Only send events when there are listeners in iOS wrapper.
- Reject promise properly and with error code during iOS initialization.
- Fixed regression where syncDeviceSettings was removed from iOS SDK wrapper.
6.3.0 - 2020-07-13
- Control permission dialogs on iOS.
/**
* Initialize the HyperTrack SDK
* @param {string} publishableKey - A unique String that is used to identify your account with HyperTrack.
* @param {bool} startsTracking - Should the SDK start tracking immediately after initialization.
+ * @param {boolean} automaticallyRequestPermissions - If true, SDK automatically triggers location and motion activity permissions dialogs when tracking starts.
*/
- async createInstance(publishableKey, startsTracking = true): Promise<HyperTrackAPI> {
+ async createInstance(publishableKey, startsTracking = true, automaticallyRequestPermissions = true): Promise<HyperTrackAPI> {
- await HyperTrack.initialize(publishableKey, startsTracking);
+ await HyperTrack.initialize(publishableKey, startsTracking, automaticallyRequestPermissions);
return new HyperTrackAPI();
},
6.2.2 - 2020-04-14
- Updated Android dependency repos.
6.2.1 - 2020-01-08
- RN SDK wrapper now supports native iOS
4.0.x
SDK.
6.1.0 - 2019-09-30
- Adding sync device settings
- Updated Android SDK to
3.4.7
.
6.0.0 - 2019-09-17
- Updated interface with promises and split name and metadata
- Updated react-native to version
0.59.9
.
5.0.5 - 2019-08-29
- Updated Android SDK to
3.4.5
.
5.0.4 - 2019-08-23
- Updated Android SDK to
3.3.4
and stop tracking events.
5.0.3 - 2019-08-22
- Make deviceID change with publishable key.
5.0.2 - 2019-08-15
- Fixed Android wrapper permissions handling in initialize and startTracking.
5.0.1 - 2019-08-15
- Expose critical errors and update the integration.
4.1.1 - 2019-08-08
- Bump Android SDK version to
3.3.1
.
4.1.0 - 2019-08-07
- Make
getDeviceID
consistent between Android and iOS wrappers.
4.0.2 - 2019-08-06
- Fixed null context exception in Android wrapper.
4.0.1 - 2019-07-29
- Added an option to start tracking right after initialization.
/**
* Initialize the HyperTrack SDK
* @param {string} publishableKey - A unique String that is used to identify your account with HyperTrack.
+ * @param {bool} startsTracking - Should the SDK start tracking immediately after initialization
*/
initialize(publishableKey) {
- RNHyperTrack.initialize(publishableKey);
+ RNHyperTrack.initialize(publishableKey, startsTracking);
},
3.0.0 - 2019-07-23
- Backups key for Android SDK
- Bump Android SDK version to 3.3.0 and switch to trip markers for native calls.
2.0.0 - 2019-07-17
sendCustomEvent
was renamed tosetTripMarker
.
1.0.2 - 2019-07-04
- Added silent push notifications.
1.0.1 - 2019-06-26
- Added HyperTrack repository to repos list.
1.0.0 - 2019-06-07
Initial release.