How to Build a Mobile App for Your Drone

Introduction: How to Build a Mobile App for Your Drone

About: I am a Drone application enthusiast currently working at FlytBase. I take a keen interest in drone industry and love writing about it. I write anything and everything about drones.

Gone are the days where drones were used only for taking pictures and videos. Nowadays, you can perform a variety of meaningful tasks using your drone. Drones are starting to automate tasks in many industries like agriculture, construction, photography, disaster management and real estate. Knowing how to build your own custom application, goes a long way in helping you achieve these tasks

In this post, I will tell you how you can develop your own mobile app for your Drone. I will be using FlytOS, a software framework provided by FlytBase. FlytOS is an ideal platform to develop research and commercial drone applications.

Step 1: Setup Your FlytBase Account and Download FlytSDK

The first thing you do is setup a FlytBase account. It's free and takes less than a minute.

Once your FlytBase account is up and running, go and download the android FlytSDK.

FlytSDK provides you with necessary pre-integrated client libraries. It also has an inbuilt mechanism for establishing a connection with the drone.

Step 2: Setup Android Studio and Start Developing Your App

Above is the image of the sample app I created using FlytAPIs and FlytSDK. You can find the source code on github. The FlytSDK has the required libraries for making a REST call and a websocket connection to FlytOS already integrated into it. I am making a simple android app which will give my drone two basic commands - to take off and to land. I will also set the option to set the take off altitude.

Here is my code for the take off command:

private class TakeOffRequest extends AsyncTask<Void, Void, String> {
       private Double takeoff_alt;        public TakeOffRequest(Double val) {
           takeoff_alt = val;
       protected String doInBackground(Void... params) {
           try {
               //Rest url
               final String url = "http://"+ip+"/ros/"+namespace+"/navigation/take_off";
               //params in json
               JSONObject param= new JSONObject();
               param.put("takeoff_alt",takeoff_alt);                //restTemplate object initialise for rest call
               RestTemplate restTemplate = new RestTemplate();
               restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
               // make the rest call and recieve the response in "response"
               String response = restTemplate.postForObject(url,param.toString(), String.class);                return response;
           } catch (Exception  e) {
               Log.e("MainActivity", e.getMessage(), e);
           }            return null;
       //function called after a successful rest call
       protected void onPostExecute(String response) {
           if (response!="") {                try {
                   //initialise a JSON object with the response string
                   JSONObject resp = new JSONObject(response);
                   //extract the required field from the JSON object
//                    namespace=resp.getJSONObject("param_info").getString("param_value");
                   if (resp.getBoolean("success")) {
                       Toast.makeText(getApplicationContext(), "Taking Off.", Toast.LENGTH_SHORT).show();                    } else {
                       Toast.makeText(getApplicationContext(), "Take Off rejected.", Toast.LENGTH_SHORT).show();
                   }                } catch (JSONException | NullPointerException e) {
               }            }else{
               Toast.makeText(getApplicationContext(), "Failed to contact FlytPOD. Retry Take Off!", Toast.LENGTH_SHORT).show();

You can refer to android FlytSDK and start developing your own app here

Step 3: Download and Install FlytSIM and Test Your App

FlytSIM is a ROS-Gazebo environment where you get a simulated version of your drone application. It is a great tool to test your drone app before the first flight. FlytSIM gives you an idea how your drone will behave in the real world.

You can find the step-by-step guide to install FlytSIM here.

Every app you develop using FlytSDK will require you to enter the IP address of the device running FlytSIM(usually your laptop).

After installing FlytSIM, run it on your system and connect it to your Wi-Fi network. Connect your phone to the same Wi-Fi network and launch your app.

Now, you can start testing your application in the simulation environment.

While testing, be sure to check all the functionalities as it is a great way to find out bugs/errors if any.

Step 4: Install FlytOS on Your Companion Computer for Your Drone

Here is a step-by-step guide to install FlytOS . It supports multiple companion computers and provides dedicated support. Choose the companion computer you are using from the list, and download FlytOS. Once the installation is complete, you must activate the license for the navigation APIs to work. It's free to use.

Now, you are ready for your first flight.

Step 5: Get Ready for Field Test

Once the FlytOS is setup and your drone is ready, you can test your custom app. If you have followed the steps correctly, everything should work as expected.

Before you fly, be sure to check out the safety guidelines.

Congratulations you have successfully developed and deployed your own mobile app for your drone.

You can refer FlytAPI for further development and assistance.

Happy Flying!

Be the First to Share


    • New Year, New Skill Student Design Challenge

      New Year, New Skill Student Design Challenge
    • One Board Contest

      One Board Contest
    • Photography Challenge

      Photography Challenge



    Question 1 year ago

    I have created a Scketchup model of my house project which I can use to walk through the house using Sketchup Viewer AR:

    I am curious if there is a way to run Sketcup Viewer on the drone and do the AR tour with the drone. Ideally, I'd like to be able to navigate the deone from my pc and see the mixed reality output while navigating the drone and record concurrently. Is this possible?


    1 year ago

    The Git Hub code is missing. we be glad if you can uploaded once againg or send us the zip file.
    All the best and many thanks,


    Question 2 years ago on Step 2

    Hello I tried clicking on the git hub code but I think the code is gone. if you can give us your zip file it would be great.


    Question 3 years ago on Step 5

    i am an android teacher. i want to write an application with real drone.
    which drone to use
    how the application communicate with the drone i use

    to write appliaction i know. but i need to apply it with real drone.