Drones: The Future for Mobile App Developers

The future will be filled with drones (photo courtesy of Shane Perry and StockSnap.io)

Drone technology has accelerated in recent years while costs have put very capable drones within reach of consumers as well as enterprises. Many advances in recent years have been around hardware platforms — better batteries, more robust airframes and high-resolution cameras.

More money and resources are currently being spent on hardware innovations as this industry is still in its early stage. It shouldn't be a surprise to anyone in technology that drones are here to stay and in a big way. What may be surprising is the pace at which they become ubiquitous in everyday life.

According to Marketwatch drone sales topped $1.33B in 2014, and according to Fortune that figure was $2.5B, growing at 15-to-20 percent annually. The sky is the limit for commercial use drones and these figures don't even include military spending, which is an entire topic unto itself.

As recently as this year we have seen increases in investment and new innovation on the software that runs the drone, the ground stations and its cloud services. This is the exciting area for us, since we aren't hardware guys (at least not in our day jobs).

I actually think there will be a similar correlation to enterprise computing in the drone space. Hardware will eventually become a commodity and the real innovation will come from software and related services.

Software exists today on the drone itself in the form of a flight controller. The flight controller interfaces the with a wide array of sensors including GPS, accelerometers, GPS, airspeed, barometric pressure, temperature, etc. All of which are inputs which can affect flight.

The flight controller is responsible for taking input from the ground station or pre-set waypoints and making sure the drone is where it's supposed to be, utilizing complex control algorithms such as PID (Proportional Integral Derivative). Even relatively inexpensive "toy" drones can do this today quite well.

The most popular open source flight controller is the ArduPilot Mega or "APM." It was one of the first autopilots for drones — both land and air — and is a great low-cost, ubiquitous controller for drones. (Note that APM is sponsored by 3D Robotics now).

If you are building a drone from the ground up, then selecting a flight controller is a decision point to be visited. Most users, however, will buy a platform with an appropriate controller already integrated into the platform.

Where today's software developers will be most comfortable is the second area of innovation for drone software: Ground/control stations. The most common platform for this software is a mobile device — primarily Android but also IOS. Today there are a number of off-the-shelf, proprietary controllers for drones. In fact, most drones sold today will include their own app to control the drone and pull images & telemetry data from it.

Consumers can enjoy small control stations like tablets or smartphones (photo courtesy of appleinsider)

Development kits have recently emerged allowing custom apps to be built that interface with flight controllers. Companies like 3D Robotics have an entire development platform allowing app developers to custom build applications.

These applications run on Android and can be on a mobile device or even a "companion computer" running on the drone itself. Regardless, this software interfaces with the flight controller and provides intelligence and computing power to accomplish mission's tasks.

The final area of innovation we want to discuss in this post is around cloud services. This is the area most likely to see rapid innovation as the number of drones in use increases exponentially.

Drones are able to capture and send a wide array of data and images while in use. Everything from generating aerial view maps to gathering environmental data or even traffic data. The analysis, processing and correlation of this data is computationally intensive and best suited to cloud processing.

What is also very well suited to the cloud is correlation of data from multiple drones. 3D robotics is one of the first with a beta cloud platform that can be fed data from the ground station via cellular network (or wifi). This is extremely powerful from several different perspectives.

First, if this is done in realtime, then sharing live data — while in flight, for instance — with a large number of users becomes possible. This obviously requires hosted or cloud services because a drone or even the ground station both lack the processing power and bandwidth to serve multiple requests for imaging, telemetry, etc. That simply wouldn't scale.

The other exciting possibility is correlation between data from multiple drones. Fleet management is very relevant for commercial applications, and several vendors, such as Airwave, already offer solutions in this space. In a Fortune article last year, Airwave CEO Jonathan Downey talked about the value of the data being a key driver in their business.

A much bigger picture can be created by looking at the entire dataset and applying big data analytics when a fleet of drones is in use.

A great commercial example of this would be security drones. Let's say you wanted to augment physical security with a fleet of 10 drones that buzz around a campus gathering data and images. All that data could be stored in the cloud and analyzed, looking for patterns that could indicate suspicious activity or security threats.

Because these cloud services can publish data using a REST interface, this information can easily be integrated into other applications such as physical security stations at a guard post, live monitoring apps or GIS mapping.

Drone technology is in its infancy, so the possibilities for use in everyday life are hard to envision. With hardware costs falling rapidly we will see more innovative uses and an explosion in the number of drones in use.

The exciting part for us will be the cloud services built around this industry and how they scale and perform. We expect to see an acceleration on the software related to drones as developers think of new ways to leverage this platform and all the related business opportunities.

Read More

Mobile Network Emulation - The Key to Realistic Mobile Performance Testing

When was the last time you looked at your website's browser statistics? If you have, you've likely noticed a trend that's pretty hard to ignore - your users are browsing from a mobile device more than ever before. What was once a small sub-segment of your audience is now growing and representing the majority of your traffic. This may not be so surprising since today mobile usage makes up about 15 percent of all Internet traffic. Basically, if you don't already have a mobile development strategy, you may already be loosing sales/users due to poor mobile performance.

Responsive design takes care of your website's layout and interface, but performance testing for mobile devices makes sure your app can handle hundreds (even thousands) of concurrent users. A small delay in load-time might seem like a minor issue, but slow mobile apps kill sales and user retention. Users expect your apps to perform at the same speed as a desktop app. It seems like a ridiculous expectation, but here are some statistics:

  • If your mobile app fails, 48% of users are less likely to ever use the app again. 34% of users will just switch to a competitor's app, and 31% of users will tell friends about their poor experience, which eliminates those friends as potential customers. [1]
  • Mobile app development is expected to outpace PC projects by 400% in the next several years. [2]
  • By 2017, over 20,000 petabytes (that's over 20 million gigabytes!) will be sent using mobile devices. Streaming is the expected primary driver for growth.[3]
  • 60% of mobile failures are due to performance issues and not functional errors. [4]
  • 70% of the performance of a mobile app is dependent on the network. [5]
  • A change in latency from 2ms (broadband) to 400ms (3G network) can cause a page load to go from 1 second to 30 seconds. [6]

These statistics indicate that jumping into the mobile market is not an option but a necessity for any business that plans to thrive in the digital age. You need more than just a fancy site, though. You need a fast fancy site. And the surefire way to guarantee your mobile site/app can scale and deliver a great performance regardless of the level of stress on the system is to load test early and continuously throughout the development process.

Most developers use some kind of performance testing tools during the development process. However, mobile users are different than broadband users and therefore require a different set of testing tools to make sure they are represented realistically in the test environment. Mobile connections are less reliable; each geographic area has different speeds; latency is higher for mobile clients; and older phones won't load newer website code. Therefore, you need real-world mobile network emulation and traffic simulation.

Prior to the availability of good cloud performance testing tools, most people thought the solution to performance problems was "more bandwidth" or "more server hardware". But those days are long over. If you are to stay competitive today, you need to know how to optimize your mobile code. Good performance testing and traffic simulations take more than just bandwidth into account. Network delays, packet loss, jitter, device hardware and browser behavior are also factors that affect your mobile website’s or app’s performance. To properly test your app or site, you need to simulate all of these various situations - simultaneously and from different geographic locations (i.e. not only is traffic more mobile, its also more global).

You not only want to simulate thousands of calls to your system, you also want to simulate realistic traffic behavior. And, in reality, the same browser, device and location aren't used when accessing your site or app. That's why you need to simulate traffic from all over the globe with several different browsers and devices to identify real performance issues. For instance, it's not unlikely to have a situation where an iPhone 5 on the 4G network will run your software fine, but drop down to 3G and the software fails. Only realistic network emulation covers this type of testing environment.

Finally, simulating real user scenarios is probably the most important testing requirement. Your platform's user experience affects how many people will continue using your service and how many will pass on their positive experience to others. Real network emulation performs the same clicks and page views as real users. It will help find any hidden bugs that your testing team didn't find earlier and will help you guarantee that the user experience delivered to the person sitting on a bus using a 3G network is the same as the individual accessing your service seated at their desktop connected through DSL.

Several years ago, mobile traffic was negligible, but it's now too prominent to ignore. Simple put, don't deploy without testing your mobile code!

Check out Load Impact's new mobile testing functionality. We can simulate traffic generated from a variety of mobile operating systems, popular browsers, and mobile networks - including 3G, GSM and LTE. Test your mobile code now!

Read More

Recent Posts

Popular posts

Posts by Topic

see all

Subscribe to Email Updates