Détail du package

@xtravision/xtravision-react-native

xtravision-ai39MIT3.2.2

test

xtravision, pose-detection, android, react-native

readme

xtravision-react-native

"xtravision-react-native" SDK allows you to quickly and easily use the xtravision.ai APIs via React Native.

Installation (RN >= 0.71)

Use the following command to install SDK and its dependencies.

yarn add react-native-reanimated@^2.10.0 react-native-vision-camera@^2.15.4 @xtravision/xtravision-react-native@3.2.2

use SDK 2.9.x version for RN <= 0.70

Add the required plugin to your babel.config.js:

module.exports = {
    plugins: [
        [
            'react-native-reanimated/plugin',
            {
                globals: ['__scanPoseLandmarks'],
            },
        ],
        // others
    ]
}

Note: You have to restart metro-bundler for changes in the babel.config.js file to take effect. Best practice to start metro server with --reset-cache

Usage

// Import required things
import { RequestCameraPermission, Assessment} from '@xtravision/xtravision-react-native';
import {CameraPermissionStatus} from '@xtravision/xtravision-react-native';

export default function App() {
  const [hasPermission, setHasPermission] = React.useState(false);

  React.useEffect(() => {
    (async () => {
      const status = await RequestCameraPermission();
      setHasPermission(status === CameraPermissionStatus.AUTHORIZED);
    })();
  }, []);


  // Callback to handle server response
  function onServerResponse(serverResponse: any): void {
    if (serverResponse.errors.length) {
      console.error('Server Error Response:', serverResponse.errors);
      return;
    }

    console.log('Server Data:', serverResponse.data);
  }

  // required prop:
  const authToken = '__AUTH-TOKEN__'; //IMP: user specific auth token
  const assessmentName = '__ASSESSMENT_NAME__';
  const cameraPosition = 'back'; // front or back


  const connectionData = {
    assessment_name: assessmentName,
    auth_token: authToken,
    assessment_config: {},  // check document for more details
    user_config:{}, // check document for more details
  };

  const requestData = {
    isPreJoin: false
  }

  const libData = {
    onServerResponse,
    cameraPosition,
  }

  return (
    <View style={styles.container}>
      {hasPermission ? (
        <>
          <Assessment
            connectionData={connectionData}
            requestData={requestData}
            libData={libData}
          />
        </>
      ) : (
        <>
          <Text>App don't have Camera Permission</Text>
        </>
      )}
    </View>
  );
}

Tested with Node:v16.14.0 and react-native: v0.71.0 Make sure you have added kotlinVersion = "1.7.0" (under buildToolsVersion) to android/build.gradle Currently it's supporting only android devices only

License

MIT


changelog

@xtravision/xtravision-react-native Changelog

3.2.2: (Mon, Jul31,2023)

  • (SDK/HotFix) Upgrade RN vision camera for IOS compatible.

3.2.1: (Mon, Jul31,2023)

  • (demo-app/fix) Update server response data in demo-app.

3.2.0: (Mon, Jul31,2023)

  • (SDK/fix) Enable support to change isPreJoin variable value in the ongoing session.
  • (Demo-App/feat)Add cardio assessment in Demo App
  • (Demo-App/SDK/feat)Add a provision to change the server
  • (Demo-App/feat)Add a modal component to show OOS feedback

3.1.0: (Wed, Jul19,2023)

  • (SDK/update) Stable release with React Native 0.71.
  • (Demo-App/update) Stable release with React Native 0.71.

3.0.0-rc.1: (Tue, Jul18,2023)

  • (SDK/fix) Update the SDK's dependencies to be compatible with React Native 0.71.0.
  • (Demo-App/fix) Update the Demo App's dependencies to be compatible with React Native 0.71.0.

2.9.0: (Wed, Jul12,2023)

  • (SDK/fix) For Android: RN Vision Camera always provides same frame-data for both portrait and landscape mode. Handle it properly now.

2.8.0: (Wed,Jul05,2023)

  • (Demo-App/updates) Added default assessment list for testing.
  • (Demo-App/updates) Added come components to improve UI and error handling.

v2.7.0: (May 10, 2023)

  • (Demo-App/updates) Added Rep count UI and corner image
  • (Demo-App/updates) Added IOS App Icon

v2.6.0: (Mar 29, 2023)

  • (SDK/fix) Disable unused code and added IOS support

v2.5.0: (Mar 08, 2023)

  • (SDK/fix) Restructure and clean-up the internal codebase so no need to suppress warnings/errors on the App side

v2.4.0: (Jan 25, 2023)

  • (Demo-App/fix) Increase size of start-point for "Standing Broad Jump".
  • (Demo-App/fix) Cleanup code, proper display plates for "Plate Tapping Coordination".
  • (Demo-App/feature) Added support for "V-Sit-&-Reach" positive/negative reps.

v2.3.4: (Jan 23, 2023)

  • (SDK/fix) disable repo dependency in SDK
  • (SDK/fix) disable height/width display in SDK

v2.3.1: (Jan 11, 2023)

  • (Update) added query params and extra data in socket request data.

v2.3.0: (30 Dec, 2022)

  • (Update) added some ui element to improve “Plate-Tapping” in SDK.

v2.2.0: (22 Dec, 2022)

  • (Feature) added “Standing-Broad-jump” support in SDK and demo app

V2.1.0:

  • (Feature) added “Side-Flamingo” and “V-sit-and-reach” assessments in the demo app.
  • (Change) remove visibility check from SDK.