Documentation For Mobile Navigation App on Android.
A smart phone is potentially packed with sensors and Delphi claims to provide cross platform access to those sensors.
This project was aimed at discovering this capability and what can be achieved. A number of libraries have been developed in the process of looking at Mobile sensors. The plan was to make the application and libraries available as open source on GitHub. It has now morphed to include a collection of information and notes about Android mostly for my own use but why not share.
A major learning curve was how the user interface needs to be adapted for the very small screens. I chose a Multi Layer Tab control template "Tabbed with Navigation" offered with Tokyo as a basis for my trail app. I had to add the functionality to support the hardware back button and was not very successful with gesture use opting in the end for Forward and Back Speed buttons so more to learn there. The Templates were not offered with my Rio install.
First developed was an about page which shows which sensors are available on the device. This was later expanded to enable all sensors to be turned off and then activated separately enabling examination of the battery impact of individual sensors.
Later additional primary tabs were added, one to show primary location functions, a second to attempt to "Home" in on a static location and finally a "Map" to access Google Maps with location data.
Overall the initial program aims were not achieved. The effort of adapting to the changing mobile devices especially their increasing security demands and the apparent lack of accuracy in the GPS units defeated me. This was never really about developing a supper mobile app but more about learning what is and what is not possible.
Along the way I developed some Delphi code I will continue to use and I think is worth sharing, I partially got my head around how to do a UI on a mobile device and gathered lots of information on the actual capabilities of the sensors in those devices.
All Code is available in the Github Repository