⬆️ ⬇️

My experience of development / promotion / support. Perfect ear

Hello colleagues,



I finally got around to write a little about my experience using the example of my main application today, Perfect Ear (in the Russian market known as Absolute Hearing).



Educational application, which is a collection of exercises for training hearing. The application, as it is not difficult to guess, covers a very narrow circle of consumers, however, I managed to achieve a certain success with it. It stayed for 2 weeks in the list of featured applications, as described in more detail below.

')

Under the cat a brief history of the development, publication, promotion and support of the application will be presented. There will be no technical details about this or that functionality, rather, the highlights of those or other moments that occurred during the year of the application.



In the end I will give some numbers.







Little about the application



Perfect Ear application, as it is not difficult to guess, is intended mainly for musicians. The essence of the application comes down to a number of exercises for the development of hearing. There are 6 of them:



It makes no sense to talk in detail about the functionality, since this is not an advertisement, and those who need to themselves will understand what lies behind these words.



In short - most exercises consist of listening to a MIDI sound, and choosing a specific answer. One exercise involves singing a note into the microphone of a telephone.







I developed the application alone as a personal project. In general, I work full-time in an IT company, where I also work on Android for the last six months, before that I worked on web java, and I studied Android myself.



The design was carried out separately for the money.



Development



So, application development took me about 2 months of work for ~ 4 hours a day. Let me list a few key points in my opinion.



Dynamic midi generation


Perhaps the most difficult moment in the development was the study of the possibility of generating the desired sounds. Applications must at any time be ready to play one or more notes in the timbre of a specific instrument.



I had 2 options:



The variant with samples was extremely undesirable, since this is an extra place, a lot of space, as well as the cost of creating them. I have an acoustic guitar, an electric guitar, and even a grandmother's piano at home, but I can record the sound from them, so that in a good, professional quality - by no means, alas.



Therefore, I stopped at the MIDI. As always, wherever you throw - everywhere a wedge. On Android there is no API supporting generation of MIDI. That is, well, you can not synthesize a note. More precisely, a detailed analysis showed that it is possible, but this requires the use of the closed native API of the platform, which I did not want to do at all.



In the end, it was all over the fact that I, having carefully studied the MIDI format, wrote my own small open source library that implements the part of the protocol I need. The library provides a simple API to tell it what I want to hear, the output is a .midi file. Fortunately, the media framework is able to open and play them.



Singing intervals


Perhaps this is the most interesting moment in the entire application. I have never dealt with such tasks before, I have never been involved in sound processing, and the words “Fourier transform” for me were rather an echo of university years.



I tried to find a freelancer who would help me. Unfortunately, I spent a lot of money on it, and in the end I received nothing but a terribly slow and extremely inaccurate implementation. This moment forever pushed me away from working with freelance programmers.



It ended with the fact that I nevertheless took up the study of the topic, found open source examples, understood them, and based on them made this functionality.



Unfortunately, the problems here are not over, because after the appearance of this chip in the application, I no, no, yes, complaints from users of different devices began to fall that they did not work on the device. We drank a lot of blood, had to do a lot of work on stabilization, significantly improved support for various devices, but still, no, no, but once in a couple of months someone will write.



Tablet support


Interesting topic. Actually, as soon as the tablet version came out, I immediately thought about optimizing the application for the tablet. But for a long time, due to the lack of time and the terrible Honeycomb emulator, this work was postponed.



But after a while, I decided that it was time to buy a tablet and redo the application. I bought myself a Galaxy Tab 10.1.



The application optimization was performed using the Compatibility Library and took about 16 hours of work: the code of all the activity was transferred to the fragments, and the activities began to fulfill the role of coordinating the fragments. That is, when the application was opened on a tablet, you can show several fragments, otherwise, by fragment on the screen.







Graphics and Design



Just at that time, when design was needed, I was at GDD2010, where I listened to design advice from Roman Nurik during his presentation, and also talked a bit afterwards.



Inspired by his advice, he decided to find a designer. I found a forum where designers live, and just wrote that we need a person who can help, that is. in lichku. After an hour or two, one comrade responded, I threw him a TK, as well as my clumsy UI sketches. We agreed, I liked it, and decided to continue working with him.



He completed the work. But it was clearly visible that the person is not familiar with the platform. Perhaps this is the biggest problem when looking for designers: they do not know how the platform works, especially how it works with resources. I'm talking about such subtleties as nine-patches, * dpi, state-list, etc.



In 90% of cases, as in mine, you have to process the files received by the designer yourself. What sometimes requires considerable time. Therefore, I have compiled for myself a mandatory list of parts, which are now being discussed with designers who assure that they have experience with android:



Of course, the more of these items the designer is ready to do, the more likely you will have to fork out.



Publication and promotion



And then, finally, the day came when I published my brainchild.



I’ll say right away that I did it wrong - on a working day, when you need to publish at the beginning of the weekend, because the new application will be on the list of new and more noticeable for a while.



I published 2 versions - free, not containing all the exercises (one exercise was not included in the composition, and there was no feature for creating custom exercises).



The next morning I went to the console and saw one star with the comment "i hate it" ... Well, that's all, I thought. No one else will take it. So what did I do to get out of this situation?



First, I wanted to close the application, modify it, and put it under a different name, saying “you are not prepared”. But soon 5-star ratings began to appear, but without comments. I thought that many still like it, but the bad comment above still spoils the first impression. Therefore, I made it so that after a while the free version showed a dialogue asking users to vote. This gave a remarkable result: ratings rained down, mostly good - 4-5 stars, but, where without them, there were some bad ones. The app swam up sharply.



So I think this is a mandatory component of promotion. Not cheekily, but modestly ask the user to vote if they like to help others find this miracle. But we all know :).



What other actions have I taken to promote:



As a result, the paid application slowly but surely began to move upwards, and settled down on the 1-2 page of the education section.



To support the position I used such tricks as stocks, such as "this weekend at half price". In a free application that uses an order of magnitude more people put a pop-up ad, calling for an update on this weekend at half price.



Also, no, no, yes, I sin with “empty” updates. No matter how Google is unlocked, I clearly see that the updates give a slight temporary increase in downloads. However, you shouldn’t, of course, do it too often, because users don’t like it when they need to update the application often, but there’s no visible effect.



You're Featured, baby


For me, this is certainly a secret, but there are a number of suspicions that I would like to share.



First, I kept my application in the top of my category.

Secondly, it happened a week after the release of the Honeycomb version. Perhaps Google supports the transfer of developers to tablets.



In any case, my application hung there for exactly two weeks.



Support



The most important step that begins after publication is support.



By publishing the application, you subscribe to the fact that you will always be ready to listen to angry users and tell them that they would not write to you. Every day, read the new ratings in search of possible problems. The more you do this, the more you will be loved.



Users will write to you on the soap. Be sure to answer them and try to help. Every such satisfied user is the top five in the ranking, and the potential for growth. In my case - a satisfied musician will tell a friend to a musician, the teacher will advise children - musicians (yes, the teachers of music from America did write to me with their advice).



Error tracking


It is very important to thoroughly test your application before uploading. But, unfortunately, high fragmentation, lack of time will not allow you to do it 100%. Therefore, it is necessary to be able to receive information from users.



The most informative way to learn about errors that occur with users, I consider sending error messages directly from the application. Users will rarely send you the error traces themselves.



In Perfect Ear, I track errors through Google Analytics. That is, someone is flying out of an exept, I immediately send an event with a description of the error, a string, and so on.



In my new applications, I send errors to my email through the server. I have a simple server that hangs on AppEngine, to which I send all the anonymous error information I need, and he, in turn, sends me a report in the mail.



Statistics


For statistics I use Google Analytics. There is a special SDK that lets you know what is popular in your application and what is not.



Monetization



I decided to monetize the application with the standard scheme: sales. I make paid and free versions, free with limited functionality, paid - full.



Advertising with such volumes is not only meaningless, but also destructive, because it only annoys users.



It is important to note that the balance between the free and paid version is very important. If you include almost everything in free, it will be very difficult for you to interest users in the upgrade. If on the contrary - they will not have enough information to solve. In my opinion it is very important to leave the "hooks" in the free version.



For example, the exercise “Singing Intervals” is only in the paid version, but in the free version I did not remove the menu item, but left it. The user clicks on it and sees a dialog that describes what a wonderful exercise it is and the “Buy” button.



Costs / profit



Yes, this application is a niche, and a lot of money does not make money on it, but I’ll give you some numbers.



Estimated costs




Income


In the first months of the application did not bring almost nothing. Then, after advancing into the top category, a profit of about 300 dollars per month went and gradually began to grow to 500-600 dollars per month by summer. Now on average - 20-35 dollars a day, the income is kept in the region of 700-900 dollars a month.



For two weeks in the featured section, revenues ranged from $ 300 to $ 500 per day, i.e., in fact, over these 2 weeks I paid off all costs 4 times.



Very good incentive to keep working.



Withdrawal of money



I implement the standard scheme: AdSense-Rapida Bank. I have a separate article about it.



Total



You can earn indie maiden on Android. My observations now that the Market is just starting to get on its feet, every day there are more and more applications from eminent offices: EA, Disney, etc. This indicates that Android finally gets recognition, and this will surely display Market to a new level.



I write all this after I saw comments from people like “you can't pay back your expenses in Android”. It is possible, and Android is quite viable as a way of earning.



Now I am writing my own game, see what comes of it.



I hope you found the article useful, if you have any questions - I’ll be happy to answer in the comments.

Source: https://habr.com/ru/post/133534/



All Articles