MCPcopy Index your code
hub / github.com/Aerobotics/react-native-dji-mobile

github.com/Aerobotics/react-native-dji-mobile @v0.3.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.6 ↗ · + Follow
317 symbols 628 edges 49 files 2 documented · 1% updated 2y ago★ 449 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

react-native-dji-mobile

A React Native wrapper for the DJI Mobile SDK.

Developed by Aerobotics

Please note that this project is still in its infancy. Many SDK features are not yet available, and the implementation of available features may still change. Use in your production application at your own risk!

Installation

Install the library to your project

npm i --save react-native-dji-mobile

iOS

Using Cocoapods (recommended)

  1. First link the library
react-native link react-native-dji-mobile
  1. The library requires the manual installation of the DJIWidget pod, used to display live video feed from the drone.

    1. Add use_modular_headers! to the top of your podfile.

    2. Add the following dependency to your podfile: ```diff

    3. pod 'DJIWidget', '~> 1.5', :modular_headers => false pod 'react-native-dji-mobile', :path => '../node_modules/react-native-dji-mobile' ```

    4. Add :modular_headers => false to the pod dependencies for DoubleConversion, glog, and Folly in your podfile.

    After applying these changes your podfile should look similar to this: ```ruby platform :ios, '9.0'

    target '[YourProjectName]' do use_modular_headers!

    ...

    # Pods for [YourProjectName] pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'Core', 'CxxBridge', # Include this for RN >= 0.47 'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43 'RCTText', 'RCTNetwork', 'RCTWebSocket', # needed for debugging # Add any other subspecs you want to use in your project ] # Explicitly include Yoga if you are using RN >= 0.42.0 pod "yoga", :path => "../node_modules/react-native/ReactCommon/yoga"

    # Third party deps podspec link pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec', :modular_headers => false pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec', :modular_headers => false pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec', :modular_headers => false

    pod 'DJIWidget', '~> 1.5', :modular_headers => false pod 'react-native-dji-mobile', :path => '../node_modules/react-native-dji-mobile'

    ...

    end ```

  2. run pod install to ensure the required dependencies are installed

  3. To ensure that the library will build, you must add Swift support to your Xcode project:

  4. Open ios/YourAppName.xcworkspace
  5. Select File > New > File... in Xcode's menu bar or press CMD+N.
  6. Add a new Swift file to your project, and when asked by Xcode, press Create Bridging Header. Do not delete the empty swift file.

Manually

If you are unable to add use_modular_headers! to your Podfile as it breaks your build (for instance, react-native-gesture-handler no longer compiles correctly), you can manually link the react-native-dji-mobile library to your project. Please note that this still requires the use of cocoapods to install the require DJI dependencies.

  1. Add the DJI Mobile SDK dependencies to your podfile and run pod install ```diff
  2. pod 'DJI-SDK-iOS', '~> 4.10'
  3. pod 'DJIWidget', '~> 1.5' ```

  4. Navigate to [YourProjectName]/node_modules/react-native-dji-mobile/ios

  5. Drag the ReactNativeDjiMobile.xcodeproj file into your Xcode project into the Libraries folder.

  6. Go to the Link Binary With Libraries build phase for your Xcode project, and add the libReactNativeDjiMobile.a.


Android (TODO)

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

writeStringToLogFile
called by 22
android/src/main/java/com/aerobotics/DjiMobile/DJIRealTimeDataLogger.java
startEventListener
called by 13
android/src/main/java/com/aerobotics/DjiMobile/DJIMobile.java
sendEvent
called by 12
android/src/main/java/com/aerobotics/DjiMobile/DJIMobile.java
startListener
called by 11
index.js
stopListener
called by 11
index.js
complete
called by 5
android/src/main/java/com/aerobotics/DjiMobile/DJITimelineElements/VirtualStickTimelineElement.java
stopLogging
called by 4
android/src/main/java/com/aerobotics/DjiMobile/DJIRealTimeDataLogger.java
getFileList
called by 4
android/src/main/java/com/aerobotics/DjiMobile/DJIMedia.java

Shape

Method 252
Class 50
Enum 7
Function 6
Interface 2

Languages

Java74%
TypeScript26%

Modules by API surface

android/src/main/java/com/aerobotics/DjiMobile/DJIMobile.java42 symbols
android/src/main/java/com/aerobotics/DjiMobile/DJITimelineElements/VirtualStickTimelineElement.java28 symbols
android/src/main/java/com/aerobotics/DjiMobile/DJIMissionControlWrapper.java28 symbols
android/src/main/java/com/aerobotics/DjiMobile/SdkEventHandler.java18 symbols
android/src/main/java/com/aerobotics/DjiMobile/DJIRealTimeDataLogger.java17 symbols
android/src/main/java/com/aerobotics/DjiMobile/CameraControlNative.java17 symbols
android/src/main/java/com/aerobotics/DjiMobile/DJIMedia.java14 symbols
lib/DJIMissionControl/DJITimelineElements/WaypointMissionTimelineElement.js13 symbols
android/src/main/java/com/aerobotics/DjiMobile/CameraEventDelegate.java12 symbols
android/src/main/java/com/aerobotics/DjiMobile/DroneVideo/DroneVideo.java10 symbols
android/src/main/java/com/aerobotics/DjiMobile/RecursiveFileObserver.java9 symbols
android/src/main/java/com/aerobotics/DjiMobile/DJITimelineElements/RunJSElementTimelineElement.java8 symbols

For agents

$ claude mcp add react-native-dji-mobile \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page