Coder Social home page Coder Social logo

mobile-uxsdk-beta-ios's Introduction

DJI iOS UX SDK

The DJI UX SDK speeds up development time by providing UI elements for all core functionalities, and by using it in conjunction with the DJI Mobile SDK you can create a customized mobile app to unlock the full potential of your DJI aerial platform. Using the default UX SDK, an application can be created with no additional lines of code; you can also pick and choose which elements you want to use for maximum UI flexibility.

With the UX SDK 5.0 version we are introducing an easy way to customize all the UI elements, as well as extend the base classes to build your own custom widgets. For more details, see the UX SDK 5.0 overview.

Check out our sample app code in this repository with instructions on how to get started here.

Installation

Read the documentation for installation to learn more about including this library in your applications.

Documentation

You can find the UX SDK documentation on the wiki. This includes -

  • UX SDK 5.0 overview and main concepts
  • Documentation for all the individual widgets and panels
  • Sample app tutorial

How to Contribute

As always, the DJI Dev Team is committed to improving your developer experience. Please follow our guidelines on the CODE_OF_CONDUCT.md and the CONTRIBUTING.md files for filling out any bugs or feature requests, contributing to the code base, or how to get support. If you have any other questions, please send an email to [email protected]. We recommend frequently checking the Github repositories for changes and new releases. You can also post questions, keep up to date on DJI developer news and contribute to the community by visiting the DJI's Developer Forum here

Future Plans

We are eager to give you a sneak peek, and are very interested in receiving your feedback and suggestions. Please refer to the wiki or the release notes for the full list of elements that the Beta 4.1 version makes available.

Our long-term plan is for this framework to reach feature parity with the UX SDK 4.x release. The core team is currently working on porting the remaining widgets and other APIs to the new architecture and we will open source them in additional future Beta releases as they are completed. We welcome your feedback on the architecture and your ideas for additional widgets, including those not included in prior UX SDK releases, as well as your contributions and PRs for any currently open-sourced features.

License

Mobile-UXSDK-Beta-iOS is released under the MIT license. See LICENSE.txt file for more info.

mobile-uxsdk-beta-ios's People

Contributors

alainpimentel avatar cristina-suciu avatar dji-dev avatar dji-lisafedane avatar oliverou avatar shane-dji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mobile-uxsdk-beta-ios's Issues

How can I access the front camera in Inspire 2?

Hello. I would like to know if I can access and create a video feed from the front camera (not the FPV camera) built in Inspire 2. In DJI GO it is possible.
Currently I have tried both primary and secondary video feed but nothing shows up.

Latest DJI SDK 4.14-trial1 is not compatible with latest available Beta UX SDK

I have the following pods in Podfile for my project:

pod 'DJI-SDK-iOS', '> 4.14-trial1'
pod 'DJI-UXSDK-iOS', '> 4.14-trial1'
pod 'DJI-UXSDK-iOS-Beta', '> 0.3.0'
pod 'DJIWidget', '> 1.6'

Unfortunately, build fails with the errors:

Property 'isObstacleAvoidanceSensorInVerticalDirectionEnabled' not found on object of type 'DJIFlightAssistantObstacleAvoidanceSensorState *'; did you mean 'isVisualObstacleAvoidanceSensorInVerticalDirectionEnabled'?

Property 'isObstacleAvoidanceSensorsInHorizontalDirectionEnabled' not found on object of type 'DJIFlightAssistantObstacleAvoidanceSensorState *'; did you mean 'isVisualObstacleAvoidanceSensorsInHorizontalDirectionEnabled'?

Extracting PCM Audio data from Files

Hello,

I'm looking at the https://github.com/dji-sdk/Mobile-UXSDK-Beta-iOS/blob/master/UXSDKCore/UXSDKCore/Audio/DUXBetaAudioFilePCMParser.m to integrate into my application. What specific file is supposed to be passed to it? I've tried AIF and WAV files (Mono, 44.1KHz, 16bit PCM) to pace the data to the drone from the pcmParser callback but the audio in the drone is played too quick and choppy. Near double the rate of the original file. Any ideas on what I'm seeing? Thanks.

The video stream is distorted

'DJI-UXSDK-iOS-Beta-Core', '~> 0.4.1',

The content of the video stream can be distorted. You can reproduce it with demo100 percent

WechatIMG46

SwiftUI and DJI UX SDK 5 (Beta)

I am trying to integrate UX SDK with SwiftUI and have written some code to make it work, see code and screenshots on Stackoverflow: https://stackoverflow.com/q/67320963/1065468

The problem I am facing is as follows:

When I start the app through Xcode all is fine, the app starts, the connection icon turns green and the video feed is being shown.

But when I start the app by tapping the app icon on the phone directly, the connection icon stays red and there is also no video feed.

Any pointers to troubleshoot this are higly appreciated.

Crash on M600 Pro with Zenmuse X5

Found crash on version 0.4

Also, maybe it will help - we use external HDMI port on board for connect camera.
For get video feed on DJI GO app we should set next settings:
File

Screenshoot with crash:
Screen Shot 2020-12-23 at 2 16 22 PM

Error during upload app with Beta SDK to AppStore

We cannot transfer our for testing to pilots in TestFlight, because the validator finds the wrong value for CFBundleShortVersionString

Summary:

1 package(s) were not uploaded because they had problems:
/var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/6C703A03-7FDA-4D6C-8219-A62738692D52/1196876612.itmsp - Error Messages:
ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString '4.14-trial1' in the Info.plist file at '${bundlePath}' must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring"
2020-12-23 22:32:39.867 altool[21700:69781] *** Error: Error uploading '/Users/vagrant/deploy/DroneUpApp.ipa'.
2020-12-23 22:32:39.867 altool[21700:69781] *** Error: code -18000 (ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString '4.14-trial1' in the Info.plist file at '${bundlePath}' must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring")
Uploading IPA failed: exit status 1

How to get data of these fields from drone?

I try to get these fields:

  • Compass
  • IMU
  • Vision positioning
  • Propo gimbal operation mode
  • Propulsion
  • Avionics
  • ESC status
  • Vision sensor
    I read all the examples but can't find any of these. Please help me.
    IMG_0390
    IMG_0391

Default layout

Is there a plan to implement something similar to DUXDefaultLayoutViewController based on new SDK? Is there some kind of roadmap available?

Possibility to focus the camera

Hello. Is there an analogue of DUXFPVInteractionController for Beta SDK?
In the current implementation, it is possible to interact with the screen to focus the camera like in Stable SDK

IMG_8144

Freezed FPV Widget

Hello all! Found issue.
If I remove FPV widget from one superview and insert it onto another, the image will be frozen.
This same trick works great with DUXFPVViewController
Demo Video https://monosnap.com/file/TymPUsxbwsVMMZu3HENDxtiKYPX9uH

     private func configureMapAndFPVViews() {
        // Initial position for video preview
        addChild(fpvViewController)
        movePreviewToSecondaryViewContainer(view: fpvViewController.view)
        fpvViewController.didMove(toParent: self)
        fpvViewController.view.subviews.first?.backgroundColor = .black // Fix gray borders
        hideAdditionalControlsForFPVView()
        
        // Initial position for map preview
        addChild(mapViewController)
        movePreviewToPrimaryViewContainer(view: mapViewController.view)
        mapViewController.didMove(toParent: self)
    }

    // Move FPV widget to front
     private func movePreviewToPrimaryViewContainer(view: UIView) {
        movePreview(view: view, toContainer: primaryViewContainer)
        view.isUserInteractionEnabled = true
    }

     private func movePreview(view: UIView, toContainer containerView: UIView) {
        view.removeFromSuperview()
        view.translatesAutoresizingMaskIntoConstraints = false
        
        containerView.insertSubview(view, at: 0)
        
        view.topAnchor.constraint(equalTo: containerView.topAnchor, constant: 0).isActive = true
        view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: 0).isActive = true
        view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: 0).isActive = true
        view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: 0).isActive = true
    }

Update dependency to support DJI-SDK-iOS 4.11.1

Currently when installing DJI-UXSDK-iOS-Beta via cocoapods it depends on DJI-SDK-iOS 4.11. This means that projects which attempt to update to DJI-SDK-iOS 4.11.1 fail with the following error:

[!] CocoaPods could not find compatible versions for pod "DJI-SDK-iOS":
  In Podfile:
    DJI-SDK-iOS (= 4.11.1)

    DJI-UXSDK-iOS-Beta (~> 0.1.1) was resolved to 0.1.1, which depends on
      DJI-UXSDK-iOS-Beta-Core (= 0.1.1) was resolved to 0.1.1, which depends on
        DJI-SDK-iOS (= 4.11)

Will there be an update to this before the main release or should we plan on having to work around this in the mean time?

Widget's "ViewWillAppear" never get called

self.showDetailViewController(DefaultLayoutViewController(), sender: self) -> everything is ok.

self.show(DefaultLayoutViewController(), sender: self) -> widget's viewWillAppear will never be called.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.