gabenative Compass Logo

Compass 2.0.0 released!


  • Summary: This is an upgrade to the new major version 2. I basically improved and changed everything in this app. The aim was to update the internal libraries, reduce the app size and prepare the app for new upcoming features. I’m very proud of this upgrade and i hope you like it as much as i do. Don’t forget to rate this new version 😉

    The following list contains only the most important changes made in this version, because the complete list is very long.

  • Improved: I added additional cardinals like “ENE” or “SSW” to the compass circle and to the compass cardinal label at the center of the compass. The compass cardinal label now shows very small cardinals like “SE by E” or “NE by E”, too.
  • Improved: I added lines to the scale lines of the compass. Now a line is equal to one degree instead of multiple as it was in the previous versions.
  • New: This app now uses the new permission model of Android 6. Therefore if you are using Android 6 and above, you can now decide for yourself which permission you want to grant to this app.
  • New: The compass value labels and the magnetic field strength label in the center of the compass now blink red, when the sensor data is unreliable. When you click on the blinking values, instructions will show up that will explain the problem.
  • Improved: I replaced many raster graphics with vectors. Everything inside the compass except the background are now vectors.

    Vectors can be scaled to infinity and will still remain sharp. This means the most parts of the compass are now resolution independent and will look fantastic on every display size from low resolution to ultra high resolution and higher.

    It took me a huge amount of time to create this vectors programmatically, but it was worth it. Now the design is so sharp and beautiful that you can’t stop looking at it.

  • Improved: I reduced the app size from 4.9 MiB to roughly 3.5 MiB by removing unneeded stuff and by using a lot of compression. Even though this version contains images for ultra high resolution displays, the size of this version is still smaller than the size of version 1.4.0.

    Note the app is bigger after it was installed on the device, because Android optimizes it for your device. When you compare the install size of this version with the version 1.4.0 you will notice that this version consumes a lot less space on your device.

  • Improved: The app now uses Material Design for dialogs and some windows and it will have the same design on every device independently of the Android version. The action bar is now shown on devices with very old Android versions like Android 2.3.
  • Improved: I replaced the most fonts to make the text and numbers easier readable on smaller displays.
  • Improved: In the previous versions the center of the compass showed the magnetic bearing degrees and cardinals in one line. I changed this to two lines. This makes the degrees and cardinals stay centered individually. Now they are easier readable.
  • Improved: I moved the unit symbols ° and µT from the labels which contain the compass degrees and magnetic field strength to the header labels. This makes the compass degrees and the magnetic field strength easier readable.
  • Improved. I replace the word “magnetic heading” in the headers with “magnetic bearing”.
  • Improved: I changed the icons in the calibration dialog. The icons are hopefully easier to understand. The colors better match the overall compass design and the icon files have a smaller file size.
  • Improved: I modified the app icon shadow to better adapt to the white background of the new Google launcher.
  • Improved: No app restart is needed anymore, when the sensor precision is changed in the settings.
  • Fixed: When GPS and network location were enabled at the same time the location info box displayed the location coordinates in the sequence they were delivered by the device. So when the location info box received GPS coordinates and then later network location coordinates, it replaced the old GPS coordinates with the new network location. Therefore the info box didn’t evaluate if the old GPS coordinate were still valid and more precise than the new network location coordinates.

    To solve this problem i wrote some routines that evaluate which location coordinates are still valid and more precise. Now the location info box should show the most precise location coordinates instead of the most recent ones.

  • Fixed: When you rotated your device from portrait to portrait reverse or from landscape to landscape reverse and vice versa, the compass needle pointed to the wrong direction.

    The problem is that Android doesn’t recreate the window, when the display orientation changes by 180°, but it does recreate it when the device is rotated by less or more than 180°. The compass is only notified about a display orientation change, when the windows is recreated. So when the display orientation changed by 180° the compass was not informed about the display orientation change and therefore it didn’t adjust the compass needle pointing direction based on the new display orientation.

    It’s very difficult to solve this problem, because there is no easy way to get informed about display orientation changes by the Android system. Therefore i replaced the auto rotation feature with a sub menu containing all display orientations. The user can now switch between the display orientation by opening the sub menu and explicitly choosing a display orientation.

  • Improved: Users complained about the usage data collection. I want to make clear that the usage data collection was and is still optional. Therefore the license window now explicitly tells the user that the usage data collection is optional. The usage data collection can be disabled in the license window or in the settings window at any time.

    The only thing you can’t disable is the data collection by the advertisement providers i use, because there is no way i can completely disable it as a developer. In this version i only use AdMob from Google. By the way i explicitly configured the AdMob library to not collect location data of the user. If you don’t want the advertisement providers to collect data at all you should by the pro version, because the pro version doesn’t show ads.

  • Changed: I updated the license and privacy policy. The user is now explicitly asked to accept the privacy policy.

Download gabenative Compass for free!