Yesterday I posted about that I will start experimenting with Android development.
Now I would like to explain what app I will be building and why.
I started learning how to fly a glider last summer. It is great fun and very exciting but also quite regulated because of safety. One of those regulations states that each pilot needs to keep a logbook in order to document all of their flights. Being a left-handed geek who despises pen and paper, I started looking around for an app that would help me with that.
Here are the features that I would like to have:
- The user should be able to record a flight including:
- The basic information like the name of the pilot, the time in UTC, because it’s legally required
- Geeky information like the flight path and altitude profile, because it’s cool
- The user should be able to see a list of previous flights
- The user should be able to see details of a single flight
- The user should be able to edit the basic details of a flight after the recording
- The user should be able to see the basic information about the flight
- The user should be able to see the a map with recorded flight path
- The user should be able to see the an altitude profile
- The user should be able to filter their past flights according to:
- With or without instructor
- Guest name
- Plane model
- The user should be able to export a list of flights (potentially filtered) as a PDF
- The user should be able to export a flight as an IGC file
I couldn’t find an app which fulfills my requirements. Most of the apps that I could find were either designed to be an auxiliary instrument in the cockpit or to be a recorder to submit flights to online gliding competitions like OLC. The obvious solution of quickly developing the app I have in mind on iOS doesn’t work because the GPS altitude is not accurate enough and none of the iOS devices have a barometric pressure sensor to measure the altitude.
More recent Android devices do contain a pressure sensor and there are some Android apps which come closer to what I’d like to have, like the AndroFlight but during my testing last weekend, it wasn’t able to record the barometric altitude: the recorded flight log only contains the GPS altitude. Moreover, both the design and the usability of the app seems to be from another era: the app couldn’t display the data it recorded, it wasn’t even clear that it recorded anything and it took me two days to figure out how to get the recorded flight log out of the app.
The only solution left was to develop the app on Android myself, since I already wanted to look at the grass on the other side and experiment with Android.
My plan to tackle this problem is as follows:
- Learn about the basics of Android development and automated testing
- Start implementing the basic view controllers and the navigation inside the app
- Figure out how to record GPS coordinates and barometric altitude at the same time
- Find out how to serialize the recorded data
- Display a list of past flights
- Display detailed information about a particular flight
- Filtering flights according to user selected criteria
- Fly a lot during the development to gather test data…
I will be blogging about my experience during the development of my Flight Logger here. Please drop me a line if you have any ideas or comments.