Navit is a traditional car navigation software written in C/C++. Android's NDK allows reuse of C and C++ code, so it was possible to port Navit to Android. But it certainly doesn't have a feel of Android application. For example it makes no use of android hardware keys (search, back) or pinch to zoom. Also it didn't have a "walking" mode, which was annoying for me because that was the use case I actually need.
There were two bugs making my life hard every time I started the program:
1. I used it many times in one city but to find a particular street I had to input the country and city over and over again. It might be possible to put the defaults into a config file. However the config file setting didn't work for me.
2. Another thing which might be possible to set up through config file is the first position on the map when you start the program. Whatever is the stock default I didn't have map data for that area so the program started into a blank map every time. Also Android has a location service with lower precision but much quicker initiation. You don't have to wait to for a GPS fix to get approximate position. Navit didn't take this into account and I had to stare at a blank map for a couple of minutes when the sky was obscured and the GPS fix was hard to get.
Big advantage of Navit is that there is a great and reliable service (http://maps.navit-project.org/download/) where you can download ready-to-use data files for the area of your interest. It's certainly the best map data service out of all the programs I tried.
I don't know about Navit enough to predict how well will it develop in the future. Unfortunately for this project there is great and fast moving competing project which I discovered recently: OsmAnd.
So the next post is going to cover my (positive) experience with OsmAnd.