In the case of DJI drones, third-party apps are built upon DJI's APIs and SDKs. The result is that everything that happens in the app needs to be translated into an action that is sent to the remote control, the remote then sends the desired signal up to the drone. No matter what fun ideas an app has, they will always be limited by their ability to translate your input into controls that the drone understands. For example, Waypoint flight is managed by the app registering where the drone is, where it needs to be next and then simply sending the basic directional commands to the drone. Spin the drone until it's pointing the right direction, then move the drone forward until the GPS location of the drone and the next waypoint are the same. More advanced software can manage directional flight without having to point the drone toward the next point, allowing you to use the camera to capture side-sweeping video, for example.