Tuesday, September 10, 2013

My new map apps and what you can learn from them

Some time ago a friend told me about App4Mi - a competition organized by city authorities in Milan. They just published an open data set at that time, including various information about the city, and wanted people to use it in their apps. I decided to make something as well, especially that there was €20,000 in prizes. I wanted it to be rather simple though, so I could complete it on time while having a full time job. After giving it some thought, I chose to create a map based app, showing playgrounds, dog areas, and didactical gardens. You can see the result - Green Milan, on Google Play.

Development process

I started out by analyzing one of the Android API demos featuring a simple map. I pretty much copied the whole thing, registered my app through the Google Developer Console (otherwise the map doesn't show) and learned how to add markers from the official documentation site.

Retrieving coordinates from the open data files proved to be the most difficult step, since they were in the Esri shapefile format I had not been familiar with. Fortunately, thanks to MyGeodata Converter, I was able to transform them into JSON, which I then parsed with a simple Java program, extracting only the pieces of data that interested me and saving them as binary files.

I didn't want to use Google's default markers, so I found a very nice set of pins on Devianart and adjusted it to my needs. Take a look at the thumbnail below. Aren't they pretty? I didn't know that Devianart was such a good place for finding free graphic resources. I will certainly visit it more often from now on.

I also didn't like that when zoomed out, markers clumped together being totally illegible. I noticed that their amount was causing the map to glitch as well. That's where android-map-extensions came in handy. Just look at the example below and you'll now what I mean.

I wanted the icon to look like the one from Google Maps. It's quite obvious that I was inspired by it, but I hope that the similarity will not get me in trouble. I made the colors a little more saturated than in the original one and I put the symbols of places marked on my map. The effect turned out quite nice, as you can see on the right.

What I failed at was providing 7-inch and 10-inch screenshots for the Play Store listing. I don't own such devices and Google Play Services along with maps don't seem to work on emulators yet. I found some hacks on Stack Overflow describing how to get around this obstacle, but they seemed outdated and complicated, so I decided to just wait for Google to update the emulator. I hope they will fix it in the near future. If you know a simple method of making tablet screenshots of map applications without using physical devices, please let me know.

Please vote

At the time of writing this post, there are still 10 days to vote for the best submission. If you feel like helping me a little, go see Green Milan on the Ap4Mi site and hit the "vote" button. You might want to register on ChallengePost anyway, because they host some interesting challenges with even more interesting prizes. I'll be infinitely grateful to everyone who supports me.

Yet another map app

While working on the App4Mi submission I liked the idea of a simple map app so much, that I decided to make another one based on the experience I already had. Thus, Supermarkets in Milan was created, doing exactly what its name says - displaying location of supermarkets in that Italian city. It might seem silly, but judging on my own observation, it is often quite difficult to find a food shop here. More than 50 people seem to share that view with me, because they decided to download it. It's not a stunning result, but the app didn't cost me almost any time and I found it helpful myself. I expect it to get to the level of a couple hundred active installs, which is not too bad. I took the coordinates and addresses from Risparmio Super, but their data was somewhat erroneous and I had to correct it by hand, which I think took the biggest amount of time.

Other than that, I decided to give Airpush a try and display interstitial ads on start and close. My CPM right now is $2.84, which is much better than most banners ever reach. We'll see how it goes when the paytime comes, but they seem to be rather reliable. The only thing I didn't like was their API, which doesn't allow loading ads before showing them (it's all done in one step). Because of that, the ad may appear a couple seconds after closing the map and I don't like it at all. I expect that they will change it in the near future.

I hope you liked this short postmortem and that it will help you with your struggles with similar apps. Once again, I want to thank all of those who went to Green Milan on the Ap4Mi site and gave me their votes. You are the reason I'm doing all this.

No comments:

Post a Comment