We are Alexei Fear and Alexander (often Alexey :)) Sorokoletov are the authors of
gMaps , one of the most popular applications for Windows Phone 7 in Europe. We are doing our favorite thing - developing an application for WP7 and want to share our experience and history of creating gMaps. Come to
Windows Phone Camp on September 5th - we will personally tell everything there and answer your questions.
Who we are and what we do
We are both Belarusians, but one of us unexpectedly began to work in Russia. Since the Marketplace in Belarus is closed, they are registered in the Russian market (but this is another story, as a citizen of Belarus, register in the Russian Marketplace)
About a year ago we decided to go to Moscow to watch the presentation of Windows Phone 7. I was interested in writing Silverlight under the phone, and since we had enough skills in it, we decided to immediately try it. At the same time, they wanted to see how quick and convenient the phone would be (I even had to sign a few pieces of paper, but in the end they played around). The result was positive, I really liked the speed and platform. We believe that it is the low threshold of entry that became the catalyst for such a rapid growth of the WP7 Marketplace. C #, Silverlight / XNA and Microsoft developers community did their job!
gMaps and why he
But where it all began: "I was searching for, waiting, waiting ... I could not find ... I had to write Google Maps for WP7 myself ...".
')
At the time of writing, there were paid (only) analogues of
gMaps , but they lacked something and we decided to bother and write our own version. Actually,
gMaps is Google Maps for Windows Phone 7. In addition to simply displaying maps, there are the following convenience:
- geocoding and reverse geocoding - (search by address, address search by coordinates)
- local search - oh yes, now finding the nearest bar or gas station is even easier. You can also read reviews about the found object, you can pave a route or call.
- routes (from the current location, ab, on foot, by car, by bike)
- several layers in addition to the standard ones - traffic jams and public transport
- the opportunity to share a map and location is a very convenient thing, much better than what Google maps offer even for ondroed
- Follow and rotate the card when the driver mode (Driver mode)

Statistics, reviews, downloads
From the first time, as is usually the case, the application did not pass certification due to the missing setting to disable GPS within the application. In fact, it’s good that it didn’t go away, since gMaps were in a terrible wrapper - the curved icons, the splashscreen made in 10 seconds and the application falling due to any unusual Google response.
When gMaps took a more acceptable form, hit the Marketplace and the first statistics appeared, it turned out that on the first day of publication the application was downloaded about 3k times. The application immediately overtook all of our applications taken together, which existed at that time in the Marketplace and it was great.
Within a month, gMaps overtook even youtube, and at
the DevCon 11 conference, we were awarded a prize for the most downloaded application in the Marketplace .
Quick start helped to collect a huge number of reviews, which made it possible to assess the real needs of users and quickly adapt to them. Users wrote everything, asked how they could do this or that, offered new features, discussed existing ones. For more structured feedback, we decided to use
UserVoice . This allowed us to identify the hottest functionalities and implement them first. However, this did not greatly reduce the flow of letters and reviews in the Marketplace.
Thanks to active communication with users, we found several enthusiasts. One of them is Stephane Rosi, who helps us to deal with the UserVoice forum, for which a special thank you to him!
We also had a designer from Brazil - Diego Eis, who said that our design, to put it mildly, is no good and offered a new version. As it turned out later, Diego is quite a famous person in Brazil, with his website development company, design for them. Now we periodically cooperate with him to develop the design of new functionalities, such as integration with
Latitude , navigation Turn by Turn and so on.
Communicate with users - they like it and it will be useful for you!
And some statistics. Currently, gMaps is approaching 300k downloads and already has about 5k reviews with an average rating of 4.1. We use google analytics to analyze the use of the application and some of its features. On the day, we have an average of 17k active users (about 50k application launches)

Problems encountered
No doubt there were problems and that was good. Difficulties temper.
Slow MapControl
Native Maps application works much faster, there is a more pleasant animation. MapControl does not allow to get the same speed and animation, unfortunately. In Mango beta, the speed was improved, but beta 2 brought it back to the previous level. In addition, the extensibility of MapControl leaves much to be desired.
The inability to simply add offline-mode
Due to the same extensibility, adding work cards offline was quite difficult. We have postponed this functionality in favor of more demanded.
Card rotation
MapControl does not work well when turning, for example, the path is erased, pushpins do not turn after the map, a multitouch is buggy. In the next versions we will try to make Driver mode more stable, and also with support for landscape mode.
Mistakes with multitouch
“Unspecified error” error from the depths of MapControl that was also mystically fixed (by removing Stroke from one of the Paths in the pushpin pattern with the current position)
The error was reproduced at the maximum approximation, again it is not clear where, why, and why.
Implementing Tap & Hold on the map turned out to be difficult - we tried all possible options - both ready and self-written - as a result we use TouchPanel from XNA with finishing to support landscape mode.
Gugloservisy
Oh, Google's vaunted apish gave us a lot of work :)
It turns out that Google is able to do a lot of things, and many things its apishka doesn’t. Google does not support local search from last November (it will still work until 2012). Places API, proposed as an alternative to Local Search, does not return the required results.
In addition to integration issues, after several days of downloads, a question arose with the limits of requests.
Temporarily helped by attaching the card to your Google account, as well as the creation of a paid version of the application. Google counts requests for HTTP Referer header, which in Windows Phone 7.0 can not be changed, and which depends on the application ID.
Buying a large batch of requests turned out to be an impossible task. Representatives of the g-corporation offered a package “all together that is necessary for happiness,” including many things that we did not need. It is simply impossible to increase the limit of requests for geocoding. :(
We are waiting for the mango, there the problem with limits can be solved in another way.
When integrating with
Google Latitude , there are also some issues:
- oauth2 stopped working in IE, it's good that support offered a temporary solution
- get locations of friends and display them on the map because of privacy is impossible. More precisely, Google can not provide third parties with access to data, but can display them on the map itself. Looking for workarounds, we want latitude on Windows Phone.

Feedback
In the best of times, 100+ letters came in a day, try to realize this, read and process it. It helped that we managed at the initial stage to analyze, assemble and implement the most popular functionality. After integration with uservoice it became even easier. Analysis of the letters showed that approximately the same requests come to the uservoice forum. Also used automail filters and automail gmail. The whole feedback was also analyzed in the form of a review, which throughout the entire time was from 50 to 100 per day, thanks to which interesting correspondence was fastened and interesting facts / bugs / suggestions were found.
Testing on devices
No matter how good the emulator is, you should always test the application on devices with windows phone 7.0 - only there you can understand the speed of the application, and the user experience.
If you have Windows Phone Developer Tools for Mango Beta (1,2,2+) installed, you can create applications under 7.0 and test them on the emulator. Unfortunately, this emulator does not exactly reproduce the version of wp 7.0. For example, the Referer header (or Accept-Encoding) can be installed in the application for 7.0 and everything will work on the emulator. On the device with wp 7.0, you will receive an error.
Usability
We decided not to do a lot of customization. Periodically, this leads to confusion for users, but we firmly believe that the fewer the settings, the more pleasant it is to use the application.
As it is written in one wonderful book (getting real) - additional settings are only a disclaimer of responsibility for the fact that we do not know what will be convenient for the user. All the necessary settings are made to the user interface (for example, switching metric-imperial system), which are quite easy to change during the work with the application.
And I think the golden rule of a mobile developer is to use the platform for which you are writing. Feeling the platform, it is easier to create an optimal scenario of working with the application.
Monetization
The first two months of the application’s life it was free and without advertising. This approach from the start made it possible to get a large number of users and feedback. After the application had its own user base, we decided to add ads, which did not reduce downloading. However, reviews began to appear like "Appeared advertising. Uninstalling ... ".
Despite the fact that the application is quite popular, it has not yet been successfully monetized. Now in the Marketplace there are two versions of the application: gMaps (free with ads) and
gMaps Pro (ad free) . From the free version there is a link to the Pro version of the application.
In order to interest users to buy the paid version, and at the same time not to lose the audience in the free version, we decided to shift the functionality in the application releases. That is, we decided not to make a separate set of features that are available only in the Pro version, but, at the same time, all the new features first got into the paid version, and a couple of weeks into the free one.
In order not to annoy the user with advertising, we decided to make it hidden. This, of course, significantly reduced the number of mappings, but almost did not reduce the number of users. We chose and tested advertising providers for a long time. And since to change the provider, it was necessary to change AdControl and update applications (which was difficult to explain to users who asked what was new in this version), it was decided to install
AdRotator . With it, we carried out various experiments and, as a result, returned to where we started. We tried the following vendors of advertising:
- Microsoft PubCenter - proved to be the most reliable in terms of API and errors. At first there was a rather high eCPM (~ $ 3-4), which eventually went down to ~ $ 1 per 1k of impressions, which was still higher than that of other providers, taking into account that 100% of impressions were paid.
- AdDuplex is a WP7 oriented advertising provider that allows you to advertise your applications in exchange for displaying ads in your application. So there is a “Monetize” mode in which you receive money for displaying ads. Good advertising WP7 applications with good CTR. The raven is rather low (eCPM did not rise above $ 0.7 and <80% of hits are paid), but it remains quite attractive for free self-promotion (or advertising your other applications)
- Google AdMob - AdControl is slow and error free, periodically causing user interface to hang. eCMP low, FillRate (the number of responses with advertisements to the total number of ad requests) ~ 20%
We started with PubCenter, returned to it after all the experiments. The only disadvantage of PubCenter is the inability to withdraw the income received. This can be done only with a USA address, SSN / EIN and an account in the USA Bank, which we are going to do in the near future, if the expansion rate of PubCenter does not increase.
Future updates
It is no secret that the mango update for Bing Maps will be powerful, so we try to do everything to keep up with the update and constantly (about 2 times a month) roll out new versions.
- localization (user interface, responses from the backend, maps) - will already be available in the next release of gMaps Pro 1.11
- Google Latitude . This system is analogous to 4sq, it allows you to update your location, make check-ins, view a list of friends, their positions and statuses on the map. Latitude has only recently appeared in the official google maps application for ondroid , and now will be on wp7 - scheduled in the next release of gMaps Pro 1.11. It is also necessary to say that the search for an application that has been integrated with Latitude did not give any results for wp7.
- Favorites (places, routes, google favorites integration)
- Offline maps - support for the ability to cache map sections (cities, countries). So far, due to MapControl limitations, this functionality cannot be implemented in a simple way and is deferred.
- Public Transport Routes
- Mango support (compass, deep linking and live tiles)
Special thanks to everyone who helped us in the development of gMaps
Diego Eis (
@diegoeis ) - our designer from Brazil
Stephani Rosi (
@stephanerosi ) - moderated by UserVoice Forum from Italy
Zhenya Domanov (
@jayminsk ) is just a good person who drew us. Logo
Dima Danchenko (
@ Dan4a )
Stas Shusha (
@JourneymanMW )
Development plans and other applications
We have a few ideas for creating games and utilities. One of the ideas is to develop a multiplayer game, the participants of which will be able to play not only from the phone, but also from the desktop. We have already tried this concept and created a multiplayer game called Naval Battle X (classic naval battle). We also migrated the UI to Silverlight 4.0 and
released it as a Facebook app . This allowed to play with opponents not only from the phone, but also Facebook. This was the first stage of the verification of the concept and we will continue to develop this idea.
So we have other application tools:
- zTop is an application for tracking a position in the Marketplace in the selected region and categories. Builds a convenient graph on which displays the position of the application in each available region. It also builds historical charts that show how the position has changed over time, which allows analyzing events that influenced the rating (advertising, release, etc.). There is a desktop version , which, in addition to the features listed above, allows you to view Marketplace reports on downloads and sales.
- App Discounts - an application showing the current discounts in the Markeplace by category.
- Naval Battle - single-player battleship (from which it all started exactly a year ago).
Conclusion
Less than a year has passed since the start of the WP7 platform, and it has already shown itself as a promising, fast-growing mobile OS. Microsoft really made the right choice, taking Silverlight / XNA as the basis for developing for WP7, ensuring a low entry threshold. Developer community support has been and remains awesome. Periodic contests, events, webinars, a lot of online documentation and training materials - all this is the key to the success of the platform!
As for us, we are glad that we are doing what we love. It turned out exactly what we wanted - we could use our experience in .NET and Silverlight on a new mobile platform. A lively community does not get bored, constant feedback and the use of the phone every day gives rise to many ideas that are easy to implement.
Windows Phone 7 brings us both fun and money. Agree, it is rarely possible to combine these things :)
We are looking forward to your comments and suggestions:
Alexander Sorokoletov (
@alexsorokoletov )
Alexey Fear (
@alexeystrakh )
AP:You can view applications without Windows Phone / Zune here: