My experience in development / promotion / support. Perfect ear
Hello, colleagues, I
finally got the hang of writing a little about my experience using the example of my main Perfect Ear application (in the Russian market known as Absolute Hearing).
An educational application that is a collection of exercises for training your hearing. The application, it is not difficult to guess, covers a very narrow circle of consumers, however, I managed to achieve some success with it. It spent 2 weeks in the list of featured applications, which I will discuss in more detail below.
Under the cut will be a brief history of the development, publication, promotion and support of the application. There will be no technical details about this or that functionality, rather, the highlights of certain moments that occurred during the year the application exists.
At the end I will give some numbers.
The Perfect Ear app, as you might guess, is intended primarily for musicians. The essence of the application is reduced to a series of exercises for the development of hearing. There are 6 of them:
It does not make sense to speak in detail about functionality, because this is not advertising, and those who need it will understand for themselves what is hidden behind these words.
In short - most exercises consist of listening to MIDI sound, and selecting 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 at an IT company, where I have also been involved in Android development for the past six months, before that I was engaged in web Java, and I studied Android on my own.
The design was carried out separately for the money.
So, the application development took me about 2 months of work ~ 4 hours a day. Let me list a few main points in my opinion.
Perhaps the most difficult moment in the development was the study of the possibility of generating the right sounds. An application should at any time be ready to play one or more notes in the timbre of a particular instrument.
I had 2 options:
The option with samples was extremely undesirable, because this is an additional 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’t record sound from them in a good, professional quality, alas.
Therefore, I settled on MIDI. As always, wherever you throw - everywhere a wedge. On Android, there is no API supporting MIDI generation. That is, well, you can’t synthesize a note in any way. More precisely, a detailed analysis showed what is possible, but this requires the use of a closed native platform API, which I did not want to do at all.
As a result, it all ended with the fact that, having carefully studied the MIDI format, I wrote my own small open source library that implements the necessary part of the protocol. The library provides a simple API to tell her what I want to hear, the output is a .midi file. Fortunately, the media framework is able to open and play them.
Perhaps this is the most interesting moment in the entire application. I had never dealt with such tasks before, had never been involved in sound processing, and the words “Fourier transform” were for me rather an echo of my university years.
I tried to find a freelancer who would help me. Unfortunately, I spent a lot of money on this, and in the end I got nothing but an awfully slow and extremely inaccurate implementation. This moment forever pushed me away from working with freelancers programmers.
It all ended with the fact that I nevertheless took up the study of the topic, found open source examples, figured out them, and based on this I made this functionality.
Unfortunately, the problems did not end here, because after the appearance of this chip in the application, I didn’t, but complaints from users of different devices began to fall out that they didn’t work on the device. We drank a lot of blood, I had to do a lot of stabilization work, I significantly improved the support for different devices, but still no, no, yes, someone writes in a couple of months.
Interesting topic. Actually, as soon as the tablet version was released, I immediately thought about optimizing the application for the tablet. But for a long time, due to lack of time and a terrible emulator, Honeycomb put off this work.
But, after some time, I decided that it was time to buy a tablet and redo the application. I bought myself a Galaxy Tab 10.1.
The application was optimized using the Compatibility Library and took about 16 hours of work: the code of all activity was transferred to fragments, and activities began to play the role of coordinating fragments. That is, when the application opened on the tablet - you can show several fragments, otherwise - by fragment to the screen.
Just at that time, when design was needed, I was at GDD2010, where I listened to design tips from Roman Nurik during his talk, and also talked a bit afterwards.
Inspired by his advice, he decided to find a designer. I found a forum where designers live, and simply wrote that I need a person who can help, i.e. in PM. After an hour or two, one friend answered, I threw him TK, as well as my clumsy drafts of the UI. We agreed, I liked it, and decided to continue working with him.
He completed the work. But it was clearly visible that the person was not familiar with the platform. Perhaps this is the biggest problem when looking for designers: they don’t know how the platform works, especially how it works with resources. I am 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. Which sometimes requires considerable time. Therefore, I have compiled a mandatory list of parts for myself, which I now definitely discuss with designers who assure that they have experience working with android:
Of course, the more of these points the designer is ready to fulfill, the more likely you will have to fork out more.
And finally, the day came when I published my brainchild.
I must say right away that I did it wrong - on a business day, when I need to publish it at the beginning of the weekend, because the new application will be in the list of new ones for some time and more noticeably.
I published 2 versions - a free one, containing not all exercises (one exercise was not included, and there was also no feature for creating custom exercises).
The next morning, I went into the console and saw one star with the comment “i hate it” ... Well, that’s all, I thought. No one will take it anymore. 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 comment. I thought that many still like it, but the filthy comments at the top still spoil the first impression. Therefore, I made sure that after a while in the free version a dialogue was displayed asking users to vote. This gave a wonderful result: the ratings rained, mostly good - 4-5 stars, but, without them, there were few bad ones. The application swam sharply up.
So I consider this an essential component of promotion. Not cheeky, 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 advance:
As a result, the paid application slowly but surely began to move up, and settled down on page 1-2 of the education section.
To support the position, I used tricks such as stocks, such as "this weekend at half price." In a free application that uses an order of magnitude more people placed pop-up ads calling for updates this weekend at half price.
Also, no, no, but I sin with "empty" updates. No matter how Google unlocked, I clearly see that updates give a small temporary increase in downloads. However, you shouldn’t, of course, do this too often, as users don’t like when they need to update the application often, but there is no visible effect.
For me this, of course, is a mystery, but there are a number of suspicions that I would like to share.
Firstly, I kept my application in the top of my category.
Secondly, this happened a week after the release of the Honeycomb version. Perhaps Google supports the transition of developers to tablets this way.
In any case, there my application hung exactly two weeks.
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 evil users and tell them that they would not write to you. Every day, read 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. Each user as happy as a result is a five in a rating, and a potential for growth. In my case, a satisfied musician will tell a friend to a musician, a teacher will advise children - musicians (yes, yes, music teachers from America really wrote to me with their tips).
It is very important to thoroughly test your application before posting. But, unfortunately, the high fragmentation, lack of time will not allow to do it 100%. Therefore, you must be able to receive information from users.
The most informative way to find out about errors that occur to users, I consider sending error messages directly from the application. Users will rarely send you error traces themselves.
In Perfect Ear, I track errors through Google Analytics. That is, someone is standing in flight, I immediately send an event with a description of the error, a string, etc.
In my new applications, I send errors to my mail through the server. I have a simple little server hanging on AppEngine, to whom I send all the anonymous error information I need, and that, in turn, sends me a report.
For statistics, I use Google Analytics. There is a special SDK that lets you know what is popular and what is not in your application.
I decided to monetize the application with the standard scheme: sales. I make a paid and free version, 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 versions is very important here. If you include almost everything in the free one, it will be very difficult for you to interest users in an upgrade. If vice versa - they will not have enough information to solve. In my opinion, it is very important to leave “hooks” in the free version.
For example, the exercise "Singing Intervals" I have only in the paid version, but in the free I did not remove the menu item, but left it. The user presses on it and sees a dialogue in which it is described what a wonderful exercise this is and the Buy button.
Yes, this application is niche, and you can’t earn a lot on it, but I’ll give you some numbers.
In the first months, the application brought almost nothing. Then, after moving into the top category, a profit of about 300 dollars a month went and gradually began to grow to 500-600 dollars a month by summer. Now an average of $ 20-35 per day, income is in the region of $ 700-900 per month.
For two weeks in the featured section, revenues ranged from $ 300 to $ 500 a day, that is, in fact, for these 2 weeks I recouped all the costs 4 times.
A very good incentive to keep working.
I carry out according to the standard scheme: AdSense-Rapida-Bank. I have a separate article about this.
You can earn an indie girl on Android. My observations are 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 is finally gaining recognition, and this will definitely bring Market to a new level.
All this I write after I saw the comments of people, such as "you can’t recoup your expenses on Android." It is possible, and Android is quite viable as a way of earning.
Now I'm writing my own game, let's see what happens.
I hope you found the article useful, if you have any questions - I will be happy to answer in the comments.
finally got the hang of writing a little about my experience using the example of my main Perfect Ear application (in the Russian market known as Absolute Hearing).
An educational application that is a collection of exercises for training your hearing. The application, it is not difficult to guess, covers a very narrow circle of consumers, however, I managed to achieve some success with it. It spent 2 weeks in the list of featured applications, which I will discuss in more detail below.
Under the cut will be a brief history of the development, publication, promotion and support of the application. There will be no technical details about this or that functionality, rather, the highlights of certain moments that occurred during the year the application exists.
At the end I will give some numbers.
A little about the application
The Perfect Ear app, as you might guess, is intended primarily for musicians. The essence of the application is reduced to a series of exercises for the development of hearing. There are 6 of them:
- Interval comparison
- Interval Definition
- Frets
- Chord Definition
- Chord sequences
- Singing intervals
It does not make sense to speak in detail about functionality, because this is not advertising, and those who need it will understand for themselves what is hidden behind these words.
In short - most exercises consist of listening to MIDI sound, and selecting 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 at an IT company, where I have also been involved in Android development for the past six months, before that I was engaged in web Java, and I studied Android on my own.
The design was carried out separately for the money.
Development
So, the application development took me about 2 months of work ~ 4 hours a day. Let me list a few main points in my opinion.
Dynamic Midi Generation
Perhaps the most difficult moment in the development was the study of the possibility of generating the right sounds. An application should at any time be ready to play one or more notes in the timbre of a particular instrument.
I had 2 options:
- samples
- MIDI
The option with samples was extremely undesirable, because this is an additional 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’t record sound from them in a good, professional quality, alas.
Therefore, I settled on MIDI. As always, wherever you throw - everywhere a wedge. On Android, there is no API supporting MIDI generation. That is, well, you can’t synthesize a note in any way. More precisely, a detailed analysis showed what is possible, but this requires the use of a closed native platform API, which I did not want to do at all.
As a result, it all ended with the fact that, having carefully studied the MIDI format, I wrote my own small open source library that implements the necessary part of the protocol. The library provides a simple API to tell her 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 had never dealt with such tasks before, had never been involved in sound processing, and the words “Fourier transform” were for me rather an echo of my university years.
I tried to find a freelancer who would help me. Unfortunately, I spent a lot of money on this, and in the end I got nothing but an awfully slow and extremely inaccurate implementation. This moment forever pushed me away from working with freelancers programmers.
It all ended with the fact that I nevertheless took up the study of the topic, found open source examples, figured out them, and based on this I made this functionality.
Unfortunately, the problems did not end here, because after the appearance of this chip in the application, I didn’t, but complaints from users of different devices began to fall out that they didn’t work on the device. We drank a lot of blood, I had to do a lot of stabilization work, I significantly improved the support for different devices, but still no, no, yes, someone writes in a couple of months.
Tablet support
Interesting topic. Actually, as soon as the tablet version was released, I immediately thought about optimizing the application for the tablet. But for a long time, due to lack of time and a terrible emulator, Honeycomb put off this work.
But, after some time, I decided that it was time to buy a tablet and redo the application. I bought myself a Galaxy Tab 10.1.
The application was optimized using the Compatibility Library and took about 16 hours of work: the code of all activity was transferred to fragments, and activities began to play the role of coordinating fragments. That is, when the application opened on the tablet - you can show several fragments, otherwise - by fragment to the screen.
Graphics and Design
Just at that time, when design was needed, I was at GDD2010, where I listened to design tips from Roman Nurik during his talk, and also talked a bit afterwards.
Inspired by his advice, he decided to find a designer. I found a forum where designers live, and simply wrote that I need a person who can help, i.e. in PM. After an hour or two, one friend answered, I threw him TK, as well as my clumsy drafts of the UI. We agreed, I liked it, and decided to continue working with him.
He completed the work. But it was clearly visible that the person was not familiar with the platform. Perhaps this is the biggest problem when looking for designers: they don’t know how the platform works, especially how it works with resources. I am 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. Which sometimes requires considerable time. Therefore, I have compiled a mandatory list of parts for myself, which I now definitely discuss with designers who assure that they have experience working with android:
- do they know what nine patch drawable is, will they do it
- Do they know the requirements and guidelines of the platform
- do they understand that controls can have different states, and that they must do all of them + point 1
Of course, the more of these points the designer is ready to fulfill, the more likely you will have to fork out more.
Publication and Promotion
And finally, the day came when I published my brainchild.
I must say right away that I did it wrong - on a business day, when I need to publish it at the beginning of the weekend, because the new application will be in the list of new ones for some time and more noticeably.
I published 2 versions - a free one, containing not all exercises (one exercise was not included, and there was also no feature for creating custom exercises).
The next morning, I went into the console and saw one star with the comment “i hate it” ... Well, that’s all, I thought. No one will take it anymore. 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 comment. I thought that many still like it, but the filthy comments at the top still spoil the first impression. Therefore, I made sure that after a while in the free version a dialogue was displayed asking users to vote. This gave a wonderful result: the ratings rained, mostly good - 4-5 stars, but, without them, there were few bad ones. The application swam sharply up.
So I consider this an essential component of promotion. Not cheeky, 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 advance:
- Facebook page
- Website and AdWords Promotion
- moderate admob ads
- House Ads to promote the paid version of the free
- Translation into Russian, Spanish
As a result, the paid application slowly but surely began to move up, and settled down on page 1-2 of the education section.
To support the position, I used tricks such as stocks, such as "this weekend at half price." In a free application that uses an order of magnitude more people placed pop-up ads calling for updates this weekend at half price.
Also, no, no, but I sin with "empty" updates. No matter how Google unlocked, I clearly see that updates give a small temporary increase in downloads. However, you shouldn’t, of course, do this too often, as users don’t like when they need to update the application often, but there is no visible effect.
You're Featured, baby
For me this, of course, is a mystery, but there are a number of suspicions that I would like to share.
Firstly, I kept my application in the top of my category.
Secondly, this happened a week after the release of the Honeycomb version. Perhaps Google supports the transition of developers to tablets this way.
In any case, there my application hung 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 evil users and tell them that they would not write to you. Every day, read 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. Each user as happy as a result is a five in a rating, and a potential for growth. In my case, a satisfied musician will tell a friend to a musician, a teacher will advise children - musicians (yes, yes, music teachers from America really wrote to me with their tips).
Error tracking
It is very important to thoroughly test your application before posting. But, unfortunately, the high fragmentation, lack of time will not allow to do it 100%. Therefore, you must be able to receive information from users.
The most informative way to find out about errors that occur to users, I consider sending error messages directly from the application. Users will rarely send you error traces themselves.
In Perfect Ear, I track errors through Google Analytics. That is, someone is standing in flight, I immediately send an event with a description of the error, a string, etc.
In my new applications, I send errors to my mail through the server. I have a simple little server hanging on AppEngine, to whom I send all the anonymous error information I need, and that, in turn, sends me a report.
Statistics
For statistics, I use Google Analytics. There is a special SDK that lets you know what is popular and what is not in your application.
Monetization
I decided to monetize the application with the standard scheme: sales. I make a paid and free version, 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 versions is very important here. If you include almost everything in the free one, it will be very difficult for you to interest users in an upgrade. If vice versa - they will not have enough information to solve. In my opinion, it is very important to leave “hooks” in the free version.
For example, the exercise "Singing Intervals" I have only in the paid version, but in the free I did not remove the menu item, but left it. The user presses on it and sees a dialogue in which it is described what a wonderful exercise this is and the Buy button.
Cost / Profit
Yes, this application is niche, and you can’t earn a lot on it, but I’ll give you some numbers.
Estimated Costs
- $ 25 - Google fee
- $ 50 - design
- $ 250 - AdMob total costs for the whole time
- $ 300 - my useless costs for freelancers with FFT
- $ 30 - AdWords Campaign
- $ 50 - register perfectearapp.com domain and create a mailbox through GoDaddy.com
- $ 50 - consultation with a tax lawyer
- $ 600 - Galaxy Tab
- $ 1355 - Total
Income
In the first months, the application brought almost nothing. Then, after moving into the top category, a profit of about 300 dollars a month went and gradually began to grow to 500-600 dollars a month by summer. Now an average of $ 20-35 per day, income is in the region of $ 700-900 per month.
For two weeks in the featured section, revenues ranged from $ 300 to $ 500 a day, that is, in fact, for these 2 weeks I recouped all the costs 4 times.
A very good incentive to keep working.
Cash withdrawal
I carry out according to the standard scheme: AdSense-Rapida-Bank. I have a separate article about this.
Total
You can earn an indie girl on Android. My observations are 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 is finally gaining recognition, and this will definitely bring Market to a new level.
All this I write after I saw the comments of people, such as "you can’t recoup your expenses on Android." It is possible, and Android is quite viable as a way of earning.
Now I'm writing my own game, let's see what happens.
I hope you found the article useful, if you have any questions - I will be happy to answer in the comments.