DevTeam.Space Product Development Blog

Explore our in-depth product development tutorials and new technology announcements published by our software development experts

All articles

How to Develop a Drone Control Application?

Any discussion about drones often focuses on the military use this technology, however, drones are also becoming an increasingly popular in the civilian world too.

Package delivery, emergency medical supplies, weather forecasting are just a few examples of non-military use cases of ’Unmanned Aerial Vehicles‘ (UAVs), i.e., drones. Read more about drone use cases in “10 killer use cases: what Drones-as-a-Service can do for your business”.

The commercial drone market is growing. It‘s expected to reach US $ 13 billion by 2025. By 2020, the North America commercial drone market is expected to generate US $ 930 million in revenue. Amazon, the largest online retailer has a proposed service named ’Amazon Prime Air‘ where they will have nearly 450,000 drones in its‘ delivery fleet by 2020. Read this Statista report for interesting statistics on commercial drones.

Drone control apps allow you to fly drones, however, they let you do much more than that. These apps enable their users to gather the data collected by the drones. Organizations designate specific people to manage the usage of drones and they are the users of these apps. Users can then use analytics to gain insights from the data and make the right business decisions. In this article, I will explain how to develop a drone control application.

Note that drone control apps will need to contend with increasing complexity in the future. This is because of the high-security risks concerning drones, despite their promises. Drones sometimes enter high-security zones and click pictures with their camera, whereas at other times they intrude into busy flight paths. These make the job of air traffic controllers hard. Read “17 drone disasters that show why the FAA hates drones”.

Experts are already working on mitigating these risks so that drones can realize their potential. Read “IBM Patent Eyes Blockchain for Drone Fleet Security” for examples of such efforts. In this article, however, I will cover drone app development for the current generations of drone apps.

Contents

Drone app features:
Examples of drone control apps
The approach to creating a mobile drone app
Development tools and guidelines
Your team and project management
The cost to build a drone app

Drone app features:

Drone app users will use the app to manage the entire functioning of drones in their organization hence, you need to offer comprehensive features in your app. Following are essential features of such apps:

  • The app should enable users to easily learn flying drones.
  • Users should be able to easily add features to the drone.
  • Flying a drone requires good weather conditions and a spot from where it can take off. Users need to find such places hence the app should assist users in this.
  • I had mentioned about the security concerns earlier. Users should know about the ’no-fly‘ zones hence the app should have a database for that.
  • The app should include weather forecasts in the chosen flying region, therefore, the users can decide whether to fly the drone now or later.
  • A flight log is important since it allows users to keep track of their drone flights.
  • The app should feature a highly capable camera platform. Users should be able to move the camera and track objects.
  • A good drone control app should track the necessary flight data for users to analyze it later.
  • Users can benefit if the app provides a simulator. This way they can become conversant with the app even before they buy a drone.
  • The app should allow sending digital notice to nearby airports so that the air traffic controllers know you are flying a drone in the vicinity.
  • A digital awareness system is needed in the app so that you know if a manned aircraft is flying nearby.
  • The app should ideally create a recommended flight path for your drone.
  • Good drone control apps should automatically upload flight data to cloud-based servers for future analysis.
  • A simple UI where users can customize the controls is useful.

Read more about these desired features in “Top 10 Apps for Drone Pilots”.

Examples of drone control apps

I recommend you review the following drone control apps to get great design ideas:

B4UFLY

Federal Aviation Administration (FAA) in the US offers the B4UFLY app for drone control. It’s available for both Android and iOS devices. This easy-to-use smartphone app enables drone operators to know about restrictions and location-specific requirements in their regions.

The app has a status indicator that notifies operators if a region prohibits drones. The app informed the operators about the reasons for the prohibition. It offers a ’planner mode‘ for future drone flight planning. B4UFLY also offers informative and interactive maps. The app is free.

DJI Go

It‘s another free app, however, it‘s very popular. Most drone operators know about this app, furthermore, they have both iOS and Android versions. The DJI Go app provides a live HD view from the drone. It tracks flight data, additionally, it offers many automated intelligent flight modes. Users can record and share videos.

Easy-to-use features like swaps on the smartphone allow take-off and landing. The map is easy to follow hence you can easily track the position of the drone. This app stores flight data. It makes them instantly available to operators. The company provides good tutorials and manuals to reduce the learning curve.

UAV Forecast

This is a simple app, furthermore, it‘s free. The UAV Forecast app is available on Android as well as iOS. It provides detailed weather condition in the users‘ region. The app provides information about wind, precipitation, visibility, cloud cover, etc. Users can easily find out from this whether the weather is appropriate for flying drones.

The approach to creating a mobile drone app

In this article, I will recommend a few ’Software Development Kits‘ (SDKs) and ’Application Programming Interfaces‘ (APIs). Using these, or a combination of these, you can offer customized features. This custom development approach allows you to differentiate your app from the competition.

You need to design the ’User Interface‘ (UI), furthermore, you need to develop the mobile app front-end. Of course, using SDKs and APIs will make this development a bit easier. To host the mobile app backend, I recommend you buy a ’Mobile Backend as a Service‘ (MBaaS). More on this later.

For managing this project, I recommend you use the ’Agile‘ methodology. To organize your team for an Agile development project, consult our guide “How to build an Agile development team?”.

SDK/API options

Review the following SDK/API options so that you can make an informed choice about how to make a mobile app for drones.

Option #1: FlytBase SDK and API

FlytBase, the popular ’Internet of Drones‘ (IoD) platform offers their SDKs and APIs for developers to build drone control apps. There are several advantages of their platform, for e.g., unified APIs, interoperability, drone simulator, and enterprise-level scalability.

Additionally, the platform works with all prominent sensors, cloud services, and devices. The security in this platform is of enterprise-grade. The company also has a suite of drone application solutions, for e.g., security and surveillance, delivery, fleet management, warehouse management, etc. You might find one solution for your business use case. Check out their solutions here.

To access their SDKs and APIs, you first need to register with FlytBase. They have a few core products, for e.g.:

  • FlytOS: The intelligence component on an abstract layer over the hardware.
  • FlytCloud: Their cloud infrastructure offers telemetry, control, and video/payload data from the drone.
  • FlytPi starter kit: It‘s a turnkey companion computer pre-loaded with FlytOS and FlytCloud subscription.

The company provides an Android SDK, and it‘s called ’FlytSDK‘. They also offer APIs, you can access them here. Access their entire documentation here. You need to contact them for their SDK and API pricing plans.

Option #2: DroneKit SDK and API

DroneKit by 3D Robotics is a platform to create drone control apps. The platform offers the following key features:

  • Intelligent path planning;
  • Autonomous flight;
  • Live telemetry.

With this platform, you can create Android drone control apps. You can access the Android SDK documentation here.

The platform is an open one, i.e., many contributors have over the years built up the code base. It works all major drone platforms. The APIs and SDKs are free and open-source. It‘s easy to use the APIs, additionally, it can be extended to handle additional sensors and actuators. You can access the API libraries here.

For storing, sharing, and accessing vehicle and flight log information, you need to use the DroneKit-Cloud API. Sign-up for the cloud API here. You can view their example projects on their GitHub repositories, for e.g., here, and here.

Option #3: DJI SDK and API:

DJI offers mobile SDKs and API for creating drone control apps. You can create iOS and Android apps with them. You can incorporate the following features:

  • High and low-level flight control;
  • Aircraft state through telemetry and sensor data;
  • Avoid obstacles;
  • Camera control to take pictures according to your requirements;
  • Live video feed;
  • Remote access to media stored on camera;
  • Mission control;
  • Control of battery, remote controller.

Read more about their mobile SDK here. Android API references can be found here, whereas you can access the iOS API reference here.

Depending on the drone device and platform you use, you may be able to expedite your development a bit more. DJI offers a few more additional SDKs, some of which support popular drone products like Spark series, Mavic series, Phantom series, etc. Check out these additional SDKs:

You need to register for their SDK and API here. Contact DJI for the pricing information.

Option #4: Parrot SDK and API

Parrot provides SDK and API for drone control apps, using which you can create a mobile drone app. Their SDK is free, additionally, there are sample code repositories for your review. With this SDK, you can build the following features in your drone control app:

  • Connect with your drone;
  • Pilot your drone;
  • Receive streaming data;
  • Save media and download, including images and videos;
  • Send autopilot flight plans;
  • Update your drone.

The SDK works with a wide variety of drone platforms. The SDK is developed using the popular programming language C. It provides libraries for Android and iOS. A drone simulator is included.

You need to sign-up with the Parrot developer platform to get the SDK. You can also view their Android and iOS sample projects in their GitHub repository, which you can access here.

Development tools and guidelines

The UI design and development are important for any mobile app. It‘s even more important for a drone control app since the users will typically have a learning curve. Your UI designers need to know mobile menu and navigation well. Consult our guide “Mobile navigation menu examples” for more details.

Your team should use effective test automation tools. Selenium is a good choice. A mobile app typically undergoes frequent enhancement hence a good DevOps tool is important for continuous integration. Consider Chef for this purpose.

To expedite your project, I recommend that you use an MBaaS provider. This saves your entire mobile backend development and management effort. MBaaS providers take care of infrastructure, user management, database, security, persistent storage management, etc. Google Firebase is a good choice, however, you can read our guide “How to choose the best mobile backend as a service (MBaaS)?” for more options.

Finally, you need to know how to publish your app in the app stores. There are key steps to follow here, for e.g., you need to get developer accounts. Check out the guidelines for Android and iOS here, and here, respectively.

Your team and project management

You should onboard a team comprising business analysts, UI/UX designers, iOS developers, Android developers, and testers. I recommend that you use the ’Scrum‘ technique for project management. In a scrum environment, you need a ’Scrum master‘, who is the project manager. The PM should be conversant with project management best practices.

Since mobile apps are ’Systems of Engagement‘ (SoEs), they require enhancement in iterations. This makes them good candidates for the scrum technique, where ’Sprints‘ are such iterations. Each sprint has a set of features or requirements that are tracked in a ’Product backlog‘.

The team estimates features. They plan sprints and delivers them in an iterative manner. Read more about the scrum technique in our guide “How to build a Scrum development team?”. The team should also use effective tools for project management. Trello is a good option, however, you can find more examples in our guide “The 10 best Agile project management tools in 2018”.

The cost to build a drone app

This project has quite a few cost components, as follows:

  1. SDK/API: A few SDK/API options I have listed are free whereas you need to contact the other providers for their pricing plans.
  2. MBaaS providers always list their pricing plans on their website.
  3. Development effort varies based on your requirements, furthermore, your local labor market will influence the development manpower cost.

Depending on the availability of developers in the local labor market you may need to get professional help. Check our guide “How to find the best software development company?” for more details.