From 5be5e580dd4a8d4d7f4a3c0352009514cbc269da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Mon, 2 Apr 2018 18:09:38 -0300 Subject: [PATCH 01/20] updated package name --- package.json | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index f2d67bc..65f0b6f 100644 --- a/package.json +++ b/package.json @@ -1,26 +1,20 @@ { - "name": "react-native-universal-pedometer", - "version": "0.2.0", - "description": "React Native universal pedometer.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/matheusmariano/react-native-universal-pedometer.git" - }, - "keywords": [ - "react", - "native", - "universal", - "pedometer" - ], - "author": "Matheus Mariano", - "license": "ISC", - "bugs": { - "url": "https://github.com/matheusmariano/react-native-universal-pedometer/issues" - }, - "homepage": "https://github.com/matheusmariano/react-native-universal-pedometer#readme", - "dependencies": {} + "name": "@asserdata/react-native-universal-pedometer", + "version": "1.0.0", + "description": "React Native universal pedometer. This is a fork from Matheus Mariano package.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AsserData/react-native-universal-pedometer.git" + }, + "keywords": ["react", "native", "universal", "pedometer"], + "author": "Raí Siqueira", + "license": "MIT", + "bugs": { + "url": "https://github.com/AsserData/react-native-universal-pedometer/issues" + }, + "homepage": "https://github.com/AsserData/react-native-universal-pedometer#readme" } From 7087f007d263fe0580c8a1912f2b0bc3973a9004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Mon, 2 Apr 2018 19:33:21 -0300 Subject: [PATCH 02/20] add peer pedendencies --- package.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 65f0b6f..887da94 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@asserdata/react-native-universal-pedometer", - "version": "1.0.0", + "version": "1.0.1", "description": "React Native universal pedometer. This is a fork from Matheus Mariano package.", "main": "index.js", "scripts": { @@ -16,5 +16,8 @@ "bugs": { "url": "https://github.com/AsserData/react-native-universal-pedometer/issues" }, - "homepage": "https://github.com/AsserData/react-native-universal-pedometer#readme" + "homepage": "https://github.com/AsserData/react-native-universal-pedometer#readme", + "peerDependencies": { + "react-native": ">=0.40.0" + } } From ab6740754090b86fa4514787b7ed10b5024671ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Mon, 2 Apr 2018 19:33:55 -0300 Subject: [PATCH 03/20] update index with new methods from BMD Pedometer --- index.js | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/index.js b/index.js index 21031c5..747b1c9 100644 --- a/index.js +++ b/index.js @@ -1,12 +1,9 @@ -'use strict'; - -import {NativeModules, NativeEventEmitter} from 'react-native'; +import React from 'react'; +import {DeviceEventEmitter, NativeModules} from 'react-native'; const {BMDPedometer} = NativeModules; -const EventEmitter = new NativeEventEmitter(BMDPedometer); -let subscription; -let stepsSubscription; +const EventEmitter = new DeviceEventEmitter(BMDPedometer); export default { isStepCountingAvailable: callback => { @@ -21,37 +18,24 @@ export default { BMDPedometer.isFloorCountingAvailable(callback); }, + isPaceAvailable: callback => { + BMDPedometer.isPaceAvailable(callback); + }, + isCadenceAvailable: callback => { BMDPedometer.isCadenceAvailable(callback); }, startPedometerUpdatesFromDate: (date, handler) => { BMDPedometer.startPedometerUpdatesFromDate(date); - - subscription = EventEmitter.addListener('pedometerDataDidUpdate', handler); + DeviceEventEmitter.addListener('pedometerDataDidUpdate', handler); }, - startStepsDetection: (handler) => { - BMDPedometer.startStepsDetection(); - - stepsSubscription = EventEmitter.addListener('pedometerWasStep', handler); - }, - - - queryPedometerDataBetweenDates: (startDate, endDate, handler) => { BMDPedometer.queryPedometerDataBetweenDates(startDate, endDate, handler); }, stopPedometerUpdates: () => { BMDPedometer.stopPedometerUpdates(); - - if (subscription) { - subscription.remove(); - } - - if (stepsSubscription) { - stepsSubscription.remove(); - } } }; From 41aaa41fbe542e50088c0d271dce88ac07c54710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Mon, 2 Apr 2018 19:34:38 -0300 Subject: [PATCH 04/20] update iOS files --- ios/BMDPedometer/BMDPedometer.h | 4 +-- ios/BMDPedometer/BMDPedometer.m | 64 ++++++++++++++------------------- 2 files changed, 29 insertions(+), 39 deletions(-) diff --git a/ios/BMDPedometer/BMDPedometer.h b/ios/BMDPedometer/BMDPedometer.h index 61e7a8c..bd684b6 100644 --- a/ios/BMDPedometer/BMDPedometer.h +++ b/ios/BMDPedometer/BMDPedometer.h @@ -1,8 +1,8 @@ #import +#import #import #import -#import "SOStepDetector.h" @interface BMDPedometer : RCTEventEmitter - +@property (nonatomic, readonly) CMPedometer *pedometer; @end diff --git a/ios/BMDPedometer/BMDPedometer.m b/ios/BMDPedometer/BMDPedometer.m index 071bb0d..ccb692b 100644 --- a/ios/BMDPedometer/BMDPedometer.m +++ b/ios/BMDPedometer/BMDPedometer.m @@ -1,9 +1,8 @@ #import "BMDPedometer.h" -#import "SOStepDetector.h" - #import -#import -#import +#import + +#define NullErr [NSNull, null] @interface BMDPedometer () @property (nonatomic, readonly) CMPedometer *pedometer; @@ -12,37 +11,38 @@ @interface BMDPedometer () @implementation BMDPedometer -@synthesize bridge = _bridge; - -RCT_EXPORT_MODULE(); +RCT_EXPORT_MODULE() - (NSArray *)supportedEvents{ - return @[@"pedometerDataDidUpdate", @"pedometerWasStep"]; + return @[@"pedometerDataDidUpdate"]; } -+ (BOOL)requiresMainQueueSetup -{ - return YES; -} - -RCT_EXPORT_METHOD(isStepCountingAvailable:(RCTResponseSenderBlock)callback) { - callback(@[[NSNull null], @([CMPedometer isStepCountingAvailable])]); +RCT_EXPORT_METHOD(isStepCountingAvailable:(RCTResponseSenderBlock) callback) { + callback(@[NullErr, @([CMPedometer isStepCountingAvailable])]); } RCT_EXPORT_METHOD(isFloorCountingAvailable:(RCTResponseSenderBlock) callback) { - callback(@[[NSNull null], @([CMPedometer isFloorCountingAvailable])]); + callback([@NullErr, @([CMPedometer isFloorCountingAvailable])]); } RCT_EXPORT_METHOD(isDistanceAvailable:(RCTResponseSenderBlock) callback) { - callback(@[[NSNull null], @([CMPedometer isDistanceAvailable])]); + callback(@[NullErr, @([CMPedometer isDistanceAvailable])]); +} + +RCT_EXPORT_METHOD(isCadenceAvailable: (RCTResponseSenderBlock) callback) { + callback(@[NullErr, @([CMPedometer isCadenceAvailable])]); +} + +RCT_EXPORT_METHOD(isPaceAvailable: (RCTResponseSenderBlock) callback) { + callback(@[NullErr, @([CMPedometer isPaceAvailable])]); } RCT_EXPORT_METHOD(queryPedometerDataBetweenDates:(NSDate *)startDate endDate:(NSDate *)endDate handler:(RCTResponseSenderBlock)handler) { [self.pedometer queryPedometerDataFromDate:startDate toDate:endDate withHandler:^(CMPedometerData *pedometerData, NSError *error) { - handler(@[error.description?:[NSNull null], [self dictionaryFromPedometerData:pedometerData]]); + handler(@[error.description?:NullErr, [self dictionaryFromPedometerData:pedometerData]]); }]; } @@ -67,28 +67,19 @@ - (NSDictionary *)dictionaryFromPedometerData:(CMPedometerData *)data { }); return @{ - @"startDate": [formatter stringFromDate:data.startDate]?:[NSNull null], - @"endDate": [formatter stringFromDate:data.endDate]?:[NSNull null], - @"numberOfSteps": data.numberOfSteps?:[NSNull null], - @"distance": data.distance?:[NSNull null], - @"floorsAscended": data.floorsAscended?:[NSNull null], - @"floorsDescended": data.floorsDescended?:[NSNull null], + @"startDate": [formatter stringFromDate:data.startDate]?:NullErr, + @"endDate": [formatter stringFromDate:data.endDate]?:NullErr, + @"numberOfSteps": data.numberOfSteps?:NullErr, + @"distance": data.distance?:NullErr, + @"floorsAscended": data.floorsAscended?:NullErr, + @"floorsDescended": data.floorsDescended?:NullErr, + @"currentPace": data.currentPace?:NullErr, + @"currentCadence": data.currentCadence?:NullErr, }; } -RCT_EXPORT_METHOD(startStepsDetection) { - [[SOStepDetector sharedInstance] startDetectionWithUpdateBlock:^(NSError *error) { - if(error) { - return; - } else { - [self sendEventWithName:@"pedometerWasStep" body:@true]; - } - }]; -} - RCT_EXPORT_METHOD(stopPedometerUpdates) { [self.pedometer stopPedometerUpdates]; - [[SOStepDetector sharedInstance] stopDetection]; } #pragma mark - Private @@ -100,10 +91,9 @@ - (instancetype)init return nil; } - _pedometer = [[CMPedometer alloc]init]; + _pedometer = [CMPedometer new; return self; } - @end From ede4088f08473d13166370063cbda90464aa387c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Mon, 2 Apr 2018 19:35:18 -0300 Subject: [PATCH 05/20] removed SOS Step Detector --- ios/BMDPedometer/SOStepDetector.h | 44 --------------- ios/BMDPedometer/SOStepDetector.m | 94 ------------------------------- 2 files changed, 138 deletions(-) delete mode 100755 ios/BMDPedometer/SOStepDetector.h delete mode 100755 ios/BMDPedometer/SOStepDetector.m diff --git a/ios/BMDPedometer/SOStepDetector.h b/ios/BMDPedometer/SOStepDetector.h deleted file mode 100755 index deab582..0000000 --- a/ios/BMDPedometer/SOStepDetector.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// SOMotionDetecter.h -// MotionDetection -// -// The MIT License (MIT) -// -// Created by : arturdev -// Copyright (c) 2014 SocialObjects Software. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -@interface SOStepDetector : NSObject - -+ (instancetype)sharedInstance; - -/** - * Start accelerometer updates. - * @param callback Will be called every time when new step is detected - */ -- (void)startDetectionWithUpdateBlock:(void(^)(NSError *error))callback; - -/** - * Stop motion manager accelerometer updates - */ -- (void)stopDetection; - -@end diff --git a/ios/BMDPedometer/SOStepDetector.m b/ios/BMDPedometer/SOStepDetector.m deleted file mode 100755 index 433d489..0000000 --- a/ios/BMDPedometer/SOStepDetector.m +++ /dev/null @@ -1,94 +0,0 @@ - -// -// SOStepDetector.m -// MotionDetection -// -// Created by Artur on 5/15/15. -// Copyright (c) 2015 Artur Mkrtchyan. All rights reserved. -// - -#import -#import "SOStepDetector.h" -#import - -#define kUpdateInterval 0.2f -@interface SOStepDetector() - -@property (strong, nonatomic) CMMotionManager *motionManager; -@property (strong, nonatomic) NSOperationQueue* queue; - -@end - -@implementation SOStepDetector - -+ (instancetype)sharedInstance -{ - static id instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [self new]; - }); - - return instance; -} - -- (instancetype)init -{ - self = [super init]; - - self.motionManager = [CMMotionManager new]; - - self.motionManager.accelerometerUpdateInterval = kUpdateInterval; - self.motionManager.deviceMotionUpdateInterval = kUpdateInterval; - self.motionManager.gyroUpdateInterval = kUpdateInterval; - self.motionManager.magnetometerUpdateInterval = kUpdateInterval; - self.motionManager.showsDeviceMovementDisplay = YES; - - self.queue = [NSOperationQueue new]; - self.queue.maxConcurrentOperationCount = 1; - - return self; -} - -- (void)startDetectionWithUpdateBlock:(void (^)(NSError *))callback -{ - if (self.motionManager.isAccelerometerActive) { - return; - } - - [self.motionManager startAccelerometerUpdatesToQueue:self.queue - withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { - if (error) { - if (callback) { - dispatch_async(dispatch_get_main_queue(), ^{ - callback (error); - }); - } - return; - } - - CMAcceleration acceleration = accelerometerData.acceleration; - - CGFloat strength = 1.2f; - BOOL isStep = NO; - if (fabs(acceleration.x) > strength || fabs(acceleration.y) > strength || fabs(acceleration.z) > strength) { - isStep = YES; - } - if (isStep) { - if (callback) { - dispatch_async(dispatch_get_main_queue(), ^{ - callback (nil); - }); - } - } - }]; -} - -- (void)stopDetection -{ - if (self.motionManager.isAccelerometerActive) { - [self.motionManager stopAccelerometerUpdates]; - } -} - -@end From 77800fbdb2d92884293468afef43d8bc4288eff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Mon, 2 Apr 2018 19:43:22 -0300 Subject: [PATCH 06/20] changed tab size to 2 spaces --- index.js | 64 +++++++++++++++++++++++----------------------- prettier.config.js | 5 ++-- 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/index.js b/index.js index 747b1c9..0086959 100644 --- a/index.js +++ b/index.js @@ -6,36 +6,36 @@ const {BMDPedometer} = NativeModules; const EventEmitter = new DeviceEventEmitter(BMDPedometer); export default { - isStepCountingAvailable: callback => { - BMDPedometer.isStepCountingAvailable(callback); - }, - - isDistanceAvailable: callback => { - BMDPedometer.isDistanceAvailable(callback); - }, - - isFloorCountingAvailable: callback => { - BMDPedometer.isFloorCountingAvailable(callback); - }, - - isPaceAvailable: callback => { - BMDPedometer.isPaceAvailable(callback); - }, - - isCadenceAvailable: callback => { - BMDPedometer.isCadenceAvailable(callback); - }, - - startPedometerUpdatesFromDate: (date, handler) => { - BMDPedometer.startPedometerUpdatesFromDate(date); - DeviceEventEmitter.addListener('pedometerDataDidUpdate', handler); - }, - - queryPedometerDataBetweenDates: (startDate, endDate, handler) => { - BMDPedometer.queryPedometerDataBetweenDates(startDate, endDate, handler); - }, - - stopPedometerUpdates: () => { - BMDPedometer.stopPedometerUpdates(); - } + isStepCountingAvailable: callback => { + BMDPedometer.isStepCountingAvailable(callback); + }, + + isDistanceAvailable: callback => { + BMDPedometer.isDistanceAvailable(callback); + }, + + isFloorCountingAvailable: callback => { + BMDPedometer.isFloorCountingAvailable(callback); + }, + + isPaceAvailable: callback => { + BMDPedometer.isPaceAvailable(callback); + }, + + isCadenceAvailable: callback => { + BMDPedometer.isCadenceAvailable(callback); + }, + + startPedometerUpdatesFromDate: (date, handler) => { + BMDPedometer.startPedometerUpdatesFromDate(date); + DeviceEventEmitter.addListener('pedometerDataDidUpdate', handler); + }, + + queryPedometerDataBetweenDates: (startDate, endDate, handler) => { + BMDPedometer.queryPedometerDataBetweenDates(startDate, endDate, handler); + }, + + stopPedometerUpdates: () => { + BMDPedometer.stopPedometerUpdates(); + } }; diff --git a/prettier.config.js b/prettier.config.js index d1f3948..a9e1ea3 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,9 +1,8 @@ module.exports = { - tabWidth: 4, + tabWidth: 2, singleQuote: true, - trailingComma: "none", + trailingComma: 'none', jsxBracketSameLine: true, printWidth: 120, bracketSpacing: false }; - From c3b5b3da863835f51352b6cffca89168e7d400a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Thu, 5 Apr 2018 09:17:26 -0300 Subject: [PATCH 07/20] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..755dfa0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Asser Data S/A + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 43e097d30b847229606999938241bcbe3a9a6e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Thu, 5 Apr 2018 16:49:40 -0300 Subject: [PATCH 08/20] updated EventEmitter --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 0086959..143f8b4 100644 --- a/index.js +++ b/index.js @@ -3,7 +3,7 @@ import {DeviceEventEmitter, NativeModules} from 'react-native'; const {BMDPedometer} = NativeModules; -const EventEmitter = new DeviceEventEmitter(BMDPedometer); +const EventEmitter = DeviceEventEmitter(BMDPedometer); export default { isStepCountingAvailable: callback => { From 12e8ce6060caa986754a7b6bc709e7c95dac268b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Thu, 5 Apr 2018 16:53:52 -0300 Subject: [PATCH 09/20] updated readme --- README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f94f2ff..0cd2e3c 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,20 @@ React Native pedometer support for iOS version 8.0 and higher and Android. The module is CMPedometer wrapper. More info about CMPedometer can be found in https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMPedometer_class/ +## Install + +```sh +npm install --save npm i @asserdata/react-native-universal-pedometer +# Or + +yarn add @asserdata/react-native-universal-pedometer +``` + ## Basic usage ```js // Import the react-native-pedometer module -import Pedometer from 'react-native-universal-pedometer'; +import Pedometer from '@asserdata/react-native-universal-pedometer'; // determine pedometer availability Pedometer.isStepCountingAvailable((error, isAvailable) => { @@ -27,15 +36,15 @@ Pedometer.isCadenceAvailable((error, isAvailable) => { // start tracking from current time const now = new Date(); -Pedometer.startPedometerUpdatesFromDate(now.getTime(), (pedometerData) => { +Pedometer.startPedometerUpdatesFromDate(now.getTime(), pedometerData => { // do something with pedometer data }); // query pedometer data from selected date to other selected date const startDate = new Date(); -startDate.setHours(0,0,0,0); +startDate.setHours(0, 0, 0, 0); const endDate = new Date(); -Pedometer.queryPedometerDataBetweenDates(startDate.getTime(), endDate.getTime(), (pedometerData) => { +Pedometer.queryPedometerDataBetweenDates(startDate.getTime(), endDate.getTime(), pedometerData => { // do something with pedometer data }); From 361535db149fc9c476179bab2ff9f01dec471a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=AD=20Siqueira?= Date: Thu, 5 Apr 2018 16:54:16 -0300 Subject: [PATCH 10/20] updated version --- package.json | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 887da94..5d92d98 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,23 @@ { - "name": "@asserdata/react-native-universal-pedometer", - "version": "1.0.1", - "description": "React Native universal pedometer. This is a fork from Matheus Mariano package.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/AsserData/react-native-universal-pedometer.git" - }, - "keywords": ["react", "native", "universal", "pedometer"], - "author": "Raí Siqueira", - "license": "MIT", - "bugs": { - "url": "https://github.com/AsserData/react-native-universal-pedometer/issues" - }, - "homepage": "https://github.com/AsserData/react-native-universal-pedometer#readme", - "peerDependencies": { - "react-native": ">=0.40.0" - } + "name": "@asserdata/react-native-universal-pedometer", + "version": "1.0.2", + "description": "React Native universal pedometer. This is a fork from Matheus Mariano package.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AsserData/react-native-universal-pedometer.git" + }, + "keywords": ["react", "native", "universal", "pedometer"], + "author": "Raí Siqueira", + "license": "MIT", + "bugs": { + "url": "https://github.com/AsserData/react-native-universal-pedometer/issues" + }, + "homepage": "https://github.com/AsserData/react-native-universal-pedometer#readme", + "peerDependencies": { + "react-native": ">=0.40.0" + } } From f5dae8d370639340b742cba01d64bc607f52c7fa Mon Sep 17 00:00:00 2001 From: JWWon Date: Fri, 15 Feb 2019 16:11:09 +0900 Subject: [PATCH 11/20] Update README.md, Update typescript support, Remove 'bracketSpacing' option from prettier --- .gitignore | 1 + README.md | 6 ++++-- index.d.ts | 28 ++++++++++++++++++++++++++++ index.js | 4 ++-- package.json | 20 +++++++++++++------- prettier.config.js | 11 +++++------ 6 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 index.d.ts diff --git a/.gitignore b/.gitignore index acb199a..306be04 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ local.properties # node_modules/ npm-debug.log +package-lock.json # BUCK buck-out/ diff --git a/README.md b/README.md index 0cd2e3c..5c3f031 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,12 @@ React Native pedometer support for iOS version 8.0 and higher and Android. The m ## Install ```sh -npm install --save npm i @asserdata/react-native-universal-pedometer +npm install --save JWWon/react-native-universal-pedometer # Or +yarn add JWWon/react-native-universal-pedometer -yarn add @asserdata/react-native-universal-pedometer +# Then +react-native link react-native-universal-pedometer ``` ## Basic usage diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..34bf404 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,28 @@ +interface Pedometer { + startDate: number; + endDate: number; + numberOfSteps: number; + distance: number; +} + +interface PedometerError { + code: number; + message: string; +} + +type Callback = (error: string | null, available: boolean) => any; + +type Listener = (data: Pedometer | PedometerError) => any; + +declare const _default: { + isStepCountingAvailable: (callback: Callback) => void; + isDistanceAvailable: (callback: Callback) => void; + isFloorCountingAvailable: (callback: Callback) => void; + isCadenceAvailable: (callback: Callback) => void; + startPedometerUpdatesFromDate: (date: () => number, listener: Listener) => void; + startStepsDetection: (listener: Listener) => void; + queryPedometerDataBetweenDates: (startDate: () => number, endDate: () => number, handler: Listener) => void; + stopPedometerUpdates: () => void; +}; + +export default _default; diff --git a/index.js b/index.js index 143f8b4..060c889 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ import React from 'react'; -import {DeviceEventEmitter, NativeModules} from 'react-native'; +import { DeviceEventEmitter, NativeModules } from 'react-native'; -const {BMDPedometer} = NativeModules; +const { BMDPedometer } = NativeModules; const EventEmitter = DeviceEventEmitter(BMDPedometer); diff --git a/package.json b/package.json index 5d92d98..6995be1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "@asserdata/react-native-universal-pedometer", - "version": "1.0.2", - "description": "React Native universal pedometer. This is a fork from Matheus Mariano package.", + "name": "@JWWon/react-native-universal-pedometer", + "version": "1.0.3", + "description": "React Native universal pedometer. This is a fork from @asserdata/react-native-universal-pedometer.", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" @@ -10,13 +10,19 @@ "type": "git", "url": "git+https://github.com/AsserData/react-native-universal-pedometer.git" }, - "keywords": ["react", "native", "universal", "pedometer"], - "author": "Raí Siqueira", + "keywords": [ + "react", + "native", + "universal", + "pedometer" + ], + "author": "Jiwoon Won", "license": "MIT", + "types": "./lib/index.d.ts", "bugs": { - "url": "https://github.com/AsserData/react-native-universal-pedometer/issues" + "url": "https://github.com/JWWon/react-native-universal-pedometer/issues" }, - "homepage": "https://github.com/AsserData/react-native-universal-pedometer#readme", + "homepage": "https://github.com/JWWon/react-native-universal-pedometer#readme", "peerDependencies": { "react-native": ">=0.40.0" } diff --git a/prettier.config.js b/prettier.config.js index a9e1ea3..840f0db 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,8 +1,7 @@ module.exports = { - tabWidth: 2, - singleQuote: true, - trailingComma: 'none', - jsxBracketSameLine: true, - printWidth: 120, - bracketSpacing: false + tabWidth: 2, + singleQuote: true, + trailingComma: 'none', + jsxBracketSameLine: true, + printWidth: 120 }; From c94b3816e8f24d475d1c3aab307192e1a091181d Mon Sep 17 00:00:00 2001 From: JWWon Date: Fri, 15 Feb 2019 16:11:34 +0900 Subject: [PATCH 12/20] Fix error from BMDPedometer.m --- ios/BMDPedometer/BMDPedometer.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/BMDPedometer/BMDPedometer.m b/ios/BMDPedometer/BMDPedometer.m index ccb692b..e45d5d8 100644 --- a/ios/BMDPedometer/BMDPedometer.m +++ b/ios/BMDPedometer/BMDPedometer.m @@ -5,7 +5,7 @@ #define NullErr [NSNull, null] @interface BMDPedometer () -@property (nonatomic, readonly) CMPedometer *pedometer; +@property (nonatomic, readwrite) CMPedometer *pedometer; @end @@ -65,7 +65,7 @@ - (NSDictionary *)dictionaryFromPedometerData:(CMPedometerData *)data { formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; formatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; }); - + return @{ @"startDate": [formatter stringFromDate:data.startDate]?:NullErr, @"endDate": [formatter stringFromDate:data.endDate]?:NullErr, @@ -91,7 +91,7 @@ - (instancetype)init return nil; } - _pedometer = [CMPedometer new; + _pedometer = [CMPedometer new]; return self; } From 6ec5a33276dc7784d71812b08a70040230489cde Mon Sep 17 00:00:00 2001 From: JWWon Date: Fri, 15 Feb 2019 16:17:34 +0900 Subject: [PATCH 13/20] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5c3f031..ab2027f 100644 --- a/README.md +++ b/README.md @@ -16,23 +16,23 @@ react-native link react-native-universal-pedometer ## Basic usage ```js -// Import the react-native-pedometer module -import Pedometer from '@asserdata/react-native-universal-pedometer'; +// Import the react-native-pedometer moduleP +import Pedometer from '@JWWon/react-native-universal-pedometer'; // determine pedometer availability -Pedometer.isStepCountingAvailable((error, isAvailable) => { +Pedometer.isStepCountingAvailable((error, avaliable) => { // do something }); -Pedometer.isDistanceAvailable((error, isAvailable) => { +Pedometer.isDistanceAvailable((error, avaliable) => { // do something }); -Pedometer.isFloorCountingAvailable((error, isAvailable) => { +Pedometer.isFloorCountingAvailable((error, avaliable) => { // do something }); -Pedometer.isCadenceAvailable((error, isAvailable) => { +Pedometer.isCadenceAvailable((error, avaliable) => { // do something }); From 2612dfe15c19a5dc706a2d6cd4a5634b4c2af351 Mon Sep 17 00:00:00 2001 From: JWWon Date: Fri, 15 Feb 2019 16:30:11 +0900 Subject: [PATCH 14/20] Remove SOStepDetector related codes from project.pbxproj --- ios/BMDPedometer.xcodeproj/project.pbxproj | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ios/BMDPedometer.xcodeproj/project.pbxproj b/ios/BMDPedometer.xcodeproj/project.pbxproj index 579f88f..3e4b032 100644 --- a/ios/BMDPedometer.xcodeproj/project.pbxproj +++ b/ios/BMDPedometer.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ 43D42B5F203B089B00EC7462 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D42B5E203B089B00EC7462 /* CoreMotion.framework */; }; 43D42B61203B08AA00EC7462 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D42B60203B08AA00EC7462 /* CoreLocation.framework */; }; - 43D42B77203B2CB600EC7462 /* SOStepDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 43D42B75203B2CB600EC7462 /* SOStepDetector.m */; }; 844442DC1CB01D4A00E10B29 /* BMDPedometer.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 844442DB1CB01D4A00E10B29 /* BMDPedometer.h */; }; 844442DE1CB01D4A00E10B29 /* BMDPedometer.m in Sources */ = {isa = PBXBuildFile; fileRef = 844442DD1CB01D4A00E10B29 /* BMDPedometer.m */; }; /* End PBXBuildFile section */ @@ -31,8 +30,6 @@ /* Begin PBXFileReference section */ 43D42B5E203B089B00EC7462 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; 43D42B60203B08AA00EC7462 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; - 43D42B75203B2CB600EC7462 /* SOStepDetector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SOStepDetector.m; sourceTree = ""; }; - 43D42B76203B2CB600EC7462 /* SOStepDetector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SOStepDetector.h; sourceTree = ""; }; 844442D81CB01D4A00E10B29 /* libBMDPedometer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBMDPedometer.a; sourceTree = BUILT_PRODUCTS_DIR; }; 844442DB1CB01D4A00E10B29 /* BMDPedometer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BMDPedometer.h; sourceTree = ""; }; 844442DD1CB01D4A00E10B29 /* BMDPedometer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BMDPedometer.m; sourceTree = ""; }; @@ -88,8 +85,6 @@ 844442DA1CB01D4A00E10B29 /* BMDPedometer */ = { isa = PBXGroup; children = ( - 43D42B76203B2CB600EC7462 /* SOStepDetector.h */, - 43D42B75203B2CB600EC7462 /* SOStepDetector.m */, 844442DB1CB01D4A00E10B29 /* BMDPedometer.h */, 844442DD1CB01D4A00E10B29 /* BMDPedometer.m */, ); @@ -154,7 +149,6 @@ buildActionMask = 2147483647; files = ( 844442DE1CB01D4A00E10B29 /* BMDPedometer.m in Sources */, - 43D42B77203B2CB600EC7462 /* SOStepDetector.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; From b09975d3e09c703fe55d645011820ccfd498bbfd Mon Sep 17 00:00:00 2001 From: JWWon Date: Fri, 15 Feb 2019 17:18:14 +0900 Subject: [PATCH 15/20] Fix error from ios/BMDPedometer.m --- ios/BMDPedometer/BMDPedometer.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/BMDPedometer/BMDPedometer.m b/ios/BMDPedometer/BMDPedometer.m index e45d5d8..5d86440 100644 --- a/ios/BMDPedometer/BMDPedometer.m +++ b/ios/BMDPedometer/BMDPedometer.m @@ -2,7 +2,7 @@ #import #import -#define NullErr [NSNull, null] +#define NullErr [NSNull null] @interface BMDPedometer () @property (nonatomic, readwrite) CMPedometer *pedometer; @@ -23,7 +23,7 @@ @implementation BMDPedometer } RCT_EXPORT_METHOD(isFloorCountingAvailable:(RCTResponseSenderBlock) callback) { - callback([@NullErr, @([CMPedometer isFloorCountingAvailable])]); + callback(@[NullErr, @([CMPedometer isFloorCountingAvailable])]); } RCT_EXPORT_METHOD(isDistanceAvailable:(RCTResponseSenderBlock) callback) { From 238f646ae43cf3afb642ef3400396a9333e20b8b Mon Sep 17 00:00:00 2001 From: JWWon Date: Fri, 15 Feb 2019 18:06:12 +0900 Subject: [PATCH 16/20] Update index.d.ts, Update README.md, Remove 'react' and fix EventEmitter declaration as an object --- README.md | 94 ++++++++++++++++++++++++++++++------------------------ index.d.ts | 12 +++---- index.js | 15 +++++---- 3 files changed, 66 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index ab2027f..b9460b6 100644 --- a/README.md +++ b/README.md @@ -2,54 +2,64 @@ React Native pedometer support for iOS version 8.0 and higher and Android. The module is CMPedometer wrapper. More info about CMPedometer can be found in https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMPedometer_class/ -## Install +#### _Note_ -```sh -npm install --save JWWon/react-native-universal-pedometer -# Or -yarn add JWWon/react-native-universal-pedometer +- Currently typescript is supported. -# Then -react-native link react-native-universal-pedometer +### Installation + +1. `npm install --save @JWWon/react-native-universal-pedometer` + +> or `yarn add JWWon/react-native-universal-pedometer` + +2. `react-native link @JWWon/react-native-universal-pedometer` + +> It will automatically do all necessary settings + +##### iOS Configuration + +add **NSMotionUsageDescription** on `ios//info.plist` + +``` +// info.plist + + ... + NSMotionUsageDescription + + ``` -## Basic usage +### General Usage ```js -// Import the react-native-pedometer moduleP import Pedometer from '@JWWon/react-native-universal-pedometer'; +``` + +or -// determine pedometer availability -Pedometer.isStepCountingAvailable((error, avaliable) => { - // do something -}); - -Pedometer.isDistanceAvailable((error, avaliable) => { - // do something -}); - -Pedometer.isFloorCountingAvailable((error, avaliable) => { - // do something -}); - -Pedometer.isCadenceAvailable((error, avaliable) => { - // do something -}); - -// start tracking from current time -const now = new Date(); -Pedometer.startPedometerUpdatesFromDate(now.getTime(), pedometerData => { - // do something with pedometer data -}); - -// query pedometer data from selected date to other selected date -const startDate = new Date(); -startDate.setHours(0, 0, 0, 0); -const endDate = new Date(); -Pedometer.queryPedometerDataBetweenDates(startDate.getTime(), endDate.getTime(), pedometerData => { - // do something with pedometer data -}); - -// stop pedometer updates -Pedometer.stopPedometerUpdates(); +```js +var Pedometer = require('@JWWon/react-native-universal-pedometer'); ``` + +### Methods + +| Method Name | Arguments | Notes | +| -------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `isStepCountingAvailable` | callback: `Callback` | | +| `isDistanceAvailable` | callback: `Callback` | | +| `isFloorCountingAvailable` | callback: `Callback` | | +| `isPaceAvailable` | callback: `Callback` | | +| `isCadenceAvailable` | callback: `Callback` | | +| `startPedometerUpdatesFromDate` | date: `Date.getTime()`, listener: `Listener` | start tracking from current time | +| `queryPedometerDataBetweenDates` | startDate: `Date.getTime()`, endDate: `Date.getTime()`, listener: `Listener` | query pedometer data from selected date to other selected date | +| `stopPedometerUpdates` | | stop pedometer updates | + +### Types + +| Type Name | Interface | +| ------------------------- | ------------------------------------------------------------ | +| `PedometerInterface` | `{ startDate: nubmer; endDate: number; numberOfSteps: number; distance: number; }` | +| `PedometerErrorInterface` | `{ code: number; message: string; }` | +| `Callback` | `(error: string or null, avaliable: boolean) => any` | +| `Listener` | `(data: PedometerInterface or PedometerErrorInterface) => any` | + diff --git a/index.d.ts b/index.d.ts index 34bf404..7651326 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,27 +1,27 @@ -interface Pedometer { +export interface PedometerInterface { startDate: number; endDate: number; numberOfSteps: number; distance: number; } -interface PedometerError { +export interface PedometerErrorInterface { code: number; message: string; } type Callback = (error: string | null, available: boolean) => any; -type Listener = (data: Pedometer | PedometerError) => any; +type Listener = (data: PedometerInterface | PedometerErrorInterface) => any; declare const _default: { isStepCountingAvailable: (callback: Callback) => void; isDistanceAvailable: (callback: Callback) => void; isFloorCountingAvailable: (callback: Callback) => void; + isPaceAvailable: (callback: Callback) => void; isCadenceAvailable: (callback: Callback) => void; - startPedometerUpdatesFromDate: (date: () => number, listener: Listener) => void; - startStepsDetection: (listener: Listener) => void; - queryPedometerDataBetweenDates: (startDate: () => number, endDate: () => number, handler: Listener) => void; + startPedometerUpdatesFromDate: (date: number, listener: Listener) => void; + queryPedometerDataBetweenDates: (startDate: number, endDate: number, listener: Listener) => void; stopPedometerUpdates: () => void; }; diff --git a/index.js b/index.js index 060c889..3ae0ac7 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,10 @@ -import React from 'react'; -import { DeviceEventEmitter, NativeModules } from 'react-native'; +'use strict'; + +import { NativeEventEmitter, NativeModules } from 'react-native'; const { BMDPedometer } = NativeModules; -const EventEmitter = DeviceEventEmitter(BMDPedometer); +const PedometerEmitter = new NativeEventEmitter(BMDPedometer); export default { isStepCountingAvailable: callback => { @@ -26,13 +27,13 @@ export default { BMDPedometer.isCadenceAvailable(callback); }, - startPedometerUpdatesFromDate: (date, handler) => { + startPedometerUpdatesFromDate: (date, listener) => { BMDPedometer.startPedometerUpdatesFromDate(date); - DeviceEventEmitter.addListener('pedometerDataDidUpdate', handler); + PedometerEmitter.addListener('pedometerDataDidUpdate', listener); }, - queryPedometerDataBetweenDates: (startDate, endDate, handler) => { - BMDPedometer.queryPedometerDataBetweenDates(startDate, endDate, handler); + queryPedometerDataBetweenDates: (startDate, endDate, listener) => { + BMDPedometer.queryPedometerDataBetweenDates(startDate, endDate, listener); }, stopPedometerUpdates: () => { From 4d07dec57c37fa3b46a7ea18c2f9cbb74f33daec Mon Sep 17 00:00:00 2001 From: JWWon Date: Sat, 16 Feb 2019 13:03:22 +0900 Subject: [PATCH 17/20] Fix yellow box requiresMainQueueSetup message --- ios/BMDPedometer/BMDPedometer.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ios/BMDPedometer/BMDPedometer.m b/ios/BMDPedometer/BMDPedometer.m index 5d86440..f4c9344 100644 --- a/ios/BMDPedometer/BMDPedometer.m +++ b/ios/BMDPedometer/BMDPedometer.m @@ -11,10 +11,14 @@ @interface BMDPedometer () @implementation BMDPedometer ++ (BOOL)requiresMainQueueSetup +{ + return YES; +} + RCT_EXPORT_MODULE() - (NSArray *)supportedEvents{ - return @[@"pedometerDataDidUpdate"]; } From 400873c211daefd8267b442cab978bd6fcf307de Mon Sep 17 00:00:00 2001 From: JWWon Date: Tue, 26 Mar 2019 15:20:26 +0900 Subject: [PATCH 18/20] Match android build.gradle to higher version --- android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index 37145db..97b81f9 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -19,5 +19,5 @@ android { } dependencies { - compile 'com.facebook.react:react-native:+' + implementation 'com.facebook.react:react-native:+' } From d830c6b696f4d6a6ead25850deae9ad3bdc38507 Mon Sep 17 00:00:00 2001 From: JWWon Date: Wed, 3 Apr 2019 18:08:01 +0900 Subject: [PATCH 19/20] Update android compileSdkVersion 23 -> 27 --- .vscode/ipch/c1c9645d421b193a/mmap_address.bin | Bin 0 -> 8 bytes android/build.gradle | 15 +++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 .vscode/ipch/c1c9645d421b193a/mmap_address.bin diff --git a/.vscode/ipch/c1c9645d421b193a/mmap_address.bin b/.vscode/ipch/c1c9645d421b193a/mmap_address.bin new file mode 100644 index 0000000000000000000000000000000000000000..f8ee5b757268c312107fda6a1b2a507ef77221fe GIT binary patch literal 8 PcmZQzXkcYzU|;|M10?{5 literal 0 HcmV?d00001 diff --git a/android/build.gradle b/android/build.gradle index 97b81f9..983498f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,14 +1,17 @@ apply plugin: 'com.android.library' +def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback +} + android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion safeExtGet('compileSdkVersion', 27) defaultConfig { - minSdkVersion 16 - targetSdkVersion 22 - versionCode 1 - versionName "1.0" + minSdkVersion safeExtGet('minSdkVersion', 16) + targetSdkVersion safeExtGet('targetSdkVersion', 27) + versionCode 2 + versionName "1.0.1" ndk { abiFilters "armeabi-v7a", "x86" } From 14b713bbd718d92d518c64b93e1bdc0c0f6c0b13 Mon Sep 17 00:00:00 2001 From: Stephen Heron Date: Mon, 9 Sep 2019 22:27:24 +0100 Subject: [PATCH 20/20] Added basic podspec file to allow autolinking --- react-native-universal-pedometer.podspec | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 react-native-universal-pedometer.podspec diff --git a/react-native-universal-pedometer.podspec b/react-native-universal-pedometer.podspec new file mode 100644 index 0000000..434e7b3 --- /dev/null +++ b/react-native-universal-pedometer.podspec @@ -0,0 +1,19 @@ +require 'json' + +package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + +Pod::Spec.new do |s| + s.name = "react-native-universal-pedometer" + s.version = package['version'] + s.summary = package['description'] + s.license = package['license'] + + s.authors = package['author'] + s.homepage = package['homepage'] + s.platform = :ios, "9.0" + + s.source = { :git => "https://github.com/JWWon/react-native-universal-pedometer.git", :tag => "v#{s.version}" } + s.source_files = "ios/**/*.{h,m}" + + s.dependency 'React' +end