This publication is the story of the development of my own small project from the inception of the idea to the first working version laid out on Google Play, which I tried to dilute with useful tips. Dedicated to all who (like me) someone else's example is able to inspire even small feats of their own.
The story of my project does not begin with an idea, but with a strong motivation - from the occasion, because of which I wanted to launch my own project at any cost. The old friend turned out to be the culprit, a former classmate, who several months ago asked me to write a small Android application for him (Sanya, if you read this, thank you so much!). A couple of weeks - and the application is laid out, the money received, but an unpleasant aftertaste remained in my heart. We studied together, graduated together, I didn’t seem particularly stupid, but he is trying to develop and promote his projects, and I spend time on others. Why? After weighing all the pros and cons, I came to the conclusion that I was also capable of something and decided to prove it in practice (at least to myself).
The decision to start your own project is made - half the work is done, it remains only to generate an idea and implement it (a trifle). Hour 4 of the next evening I spent on it to understand what exactly I will do. The conditions were set quite obvious - the project should be simple (so that you can pull alone and have enough energy to the end) and at least potentially useful to people (explain to me why write an application that nobody needs?). As usual, not a single bright idea visited me for all the hours of intensive thinking, but I had only to go to bed, as the idea came with a lot of details and even a way of monetization. It's good that the notebook was at hand, and I overcame myself and made the necessary notes (otherwise I would remember nothing guaranteed in the morning). At such moments, involuntarily you begin to believe tips like “always carry a notebook and a pen with you to write down an idea” from vulgar articles about success.
So, the drum roll! Mobile application to display motivational quotes after a certain period of time! Yes, nothing fundamentally new - all the same quotes from motivating public and smart books. But if you think about the problem of motivating groups in social networks? In my opinion, precisely in the fact that they are in social networks. Instead of getting a portion of motivation and doing something, the subscriber continues to flip through the group or go to another and start watching photos of cats. Not very conducive to achieving the goal, is not it? And what if you make sure that the quotes themselves come every 30 minutes / hour and not allow the user to flip through the quotation after another? Maybe something will work out.
')
Well, the idea is there and it is recognized as potentially not worthless. It is necessary to get down to business as quickly as possible, until I reluctantly. On this occasion, even someone
rule 72 hours invented. It is difficult to talk about his justice, but it’s checked out by experience - the longer it takes to postpone your idea, the less likely you are to start doing something at all (not to mention getting it done).
The next step is to define the requirements and compile those. tasks. It may seem to someone that the compilation of a tz. - superfluous convention, when you are alone and implement your own idea. But in reality, this is a guideline that will help to more or less adequately build the architecture of the application and will not let go into the endless improvement of the project. Yes, when you are working on someone else's project, new requirements and ideas from the customer are just annoying. But when working on your own application, you want to make it perfect - fix it here, rework there, and if you don’t stop it in time, you won’t release any application. So tame your inner perfectionist, and so help you tz.
For my project, I highlighted the following requirements:
- The ability to choose a period of time in which quotes and a delay between two appearances will appear. It is doubtful that one can be positively motivated by waking him with a quote like “Time does not like being wasted”;
- Ability to choose topics of quotes. Yandex Wordstat showed that the most popular motivation for success, self-development, sports and weight loss. It is very likely that the user will be interested in only one of these topics, so why should he show everything? True, the reality turned out to be such that it was necessary to combine success and self-development into one topic, and sport and weight loss into another. All the fault of the inability to clearly distinguish between topics and a small number of quotes that fall into the network;
- Ability to add your own quotes. I suspect that I am not able to find all possible quotes. And some of those that I find and discard, considering it uninteresting, may be useful to other people. Adding your own quotes should correct this situation, as well as extend the life of the project if I stop following the update of quotes;
- Some quotes should be stored on the user's device, and some on the server. Thus, the application can be used without connecting to the Internet, but in order to deliver a new set of quotes to the user, you do not need to release an update.
I also limited myself to this set of requirements. Then it seemed to be quite enough, but now it seems necessary to add an update of the local database of quotes so that without an internet connection, the user can see the most recent quotes. But, as I said above, one should not give free rein to the inner perfectionist. Therefore, this Wishlist remained for the next version (like many others).
Its those. I will not lay out the task here in order to save space.
In the next step, I took up the most difficult (for me) problem - design. About people who have hearing problems say “bear stepped on”. I do not know who and what came to me, but I categorically do not know how to develop designs. The only hope was for minimalist styling and flat design.
The color
Scheme's excellent service helped me choose the right colors (I suspect that you can find a bunch of analogues if you wish). It not only helps to choose colors according to the main selected color, but also shows a couple of examples of website design in the selected color scheme. Well, according to the finished design of the site, it is not a problem to draw something similar for a mobile application. The icons were either borrowed from
Bootstrap , or made in a minimalist style. And, of course, I did not disdain the advice given once by a familiar designer. It sounds simple: “Never play with fonts! Nothing betrays designer inexperience as an incorrectly chosen font. ”
Also, do not forget that your application will be used by people and it should not only look beautiful, but also be comfortable and understandable to use. It is strongly recommended to download and watch top apps from google play, the closest analogues of your brainchild (if any) and see how this or that functionality is designed. It is not necessary to repeat other people's ideas, the main thing is to do no worse than that of the colleagues in the workshop.
The most frequent mistakes in this regard are the addition of page turning and deleting with a brush without the slightest hint that this functionality is provided in your application. That is, the user goes to the screen where you can turn the pages, but does not see a single hint of it - a simple screen with text, pictures, controls. How should he guess that he is required to make a “leafing” gesture? For a long time there are libraries that add page indicators in a variety of views, in extreme cases, you can simply flip from the n-th page to the first demonstratively with animation, but, nevertheless, many simply ignore this aspect.
If you have a page turning screen, this must be explicitly indicated. If you add the ability to delete records by brushing, describe it. If one of the devices does not show that the screen can be scrolled from top to bottom, think about how to solve this problem. Your users are not you, they have not thought about the application for several months and have not tested it. In the end, remember the law of Murphy: "If there are two ways to do something, one of which leads to a catastrophe, then someone will choose this particular method."
In terms of visual design, this is what I ended up with:
Of course, girls do not faint from oversupply of feelings, and nobody asks for autographs, but at least doesn’t hurt my eyes. Personally, I am satisfied.
Then went a long and quite standard development process, which does not make sense to describe in detail. I will mention only a couple of points.
Firstly, the minimum supported version of android. I went on about the herd instinct and decided that my project will support all android devices, starting with version 2.3. Because of this, I had to clear up a few additional problems (in my case, not so much, but in large projects the difficulties can be much more serious). Is it worth the complication of the project (and therefore, the time of its development, the weight of the application due to the support of libraries) of those additional users that we can attract? It's not for me to decide, but just for information: at the moment active users with android 2.3.3 - 2.3.7, there are about 5.6%, and this number is decreasing every month (
proof ).
Secondly, the use of third-party libraries. You should not reinvent the wheel, you should not write your own implementation of the finished functional out of pure interest. It may well be that after such a small subtask you simply exhale and do not bring the project to the end (and in this case, this is our main task). Google, use ready-made libraries, if they exist, borrow code from open-source projects (not mindlessly of course). Do everything to reduce development time. It is also worth doing in commercial innovation development. The sooner you show your development to the public (even if it is a semi-working prototype), the faster you will get feedback and understand if your project is interesting to anyone (read: spend less money on unpromising development).
In parallel with the development, I needed someone to gain a base of motivating quotes. I tried to contact fl.ru for help. He put the task in the style of “collect 500 quotes on each topic, the source is not important, discard completely erased phrases”. He judged that 500 quotes on each topic would be more than enough to start (what to do next is the tenth question), if it is at all possible to find 500 DIFFERENT motivating quotes on the net. Price tags, which put the local, just pleased - from 1 000R to 20 000R. Moreover, half of the respondents immediately merged somewhere and did not answer any questions.
Soberly judging that a simple job — scrolling public tables on VKontakte and reading quotes (most of the country's population is doing this for free), you can take some student / first-year student for a much lower price, I decided to refuse freelancers. Since then, no regrets about it. Received quotes, a symbolic amount paid, and I and the student are happy like elephants.
Nevertheless, I kept a couple of contacts with the most interesting proposals for myself in case the project will be seriously developed, and people with sufficient qualifications will be needed.
With monetization, everything is simple. It is doubtful that someone will decide to give their money for something resembling a banal quotation. Therefore, the only way out is advertising. The only acceptable for my application (try to cash in on advertising in the application, which is almost always closed) and the least annoying way to introduce advertising - bonuses for views. The user is sorely lacking in the application, but in order to get it, you need to either wait a few hours or watch a commercial and get what you want instantly. Usually the user prefers the second method. And since he himself decided that he was ready to see ads for the sake of the bonus, she was not so annoyed by him.
It is not difficult to guess that in my case, the user should receive impressions of quotes for viewing advertisements. I watched the video - you can see 8 motivating quotes. Did not watch the video - you can see only one quote per day.
In terms of the advertising provider, I first
stared at
Appodeal . The system is interesting (somewhere in the neighborhood on Habré there was an article about ways to increase profits), and in itself the prospect of increasing profits can not but rejoice. Unfortunately, as it turned out during the start of development, the ability to display video ads has not yet been added to Appodeal. Later this feature was added, but according to rumors, on this platform there are problems with paying small traffic. Therefore, until better times,
AdColony was integrated into the application.
I did the testing myself, and towards the end of the development I was joined by a handful of selected friends.
First of all, I wondered how people would start using my application, whether they would have questions or complications. The main thing here is to remember the goal for which you give the application for testing. If at least 3 out of 5 respondents make the same mistake when using the application, then this is the developer's error, not the user’s. This stage was completed without any problems.
But when testing the functional, it turned out that I didn’t understand very well some of the features of the platform, which is why the application turned into a guessing game: quotes either came or did not come. In this state, the project could not be left, so we had to quickly eliminate the gaps and correct errors.
The torment of development is over, the application has been on Google Play for several days. I haven’t done promotion yet, so I can’t boast of financial success and a lot of downloads. However, in addition to the financial component, there is another profit from the project, which I have already received.
First of all, no matter how trite it sounds, it is an experience. I do not mean the experience of solving technical problems (although he certainly was), but the experience of independent development. For a couple of months I had to go in a few simplified roles of PM, designer, employer and content manager. After some time, I will have the first experience in promoting the product. Even if you are not going to leave your employer and start your own business, this experience will help you to better understand all the processes occurring during the development of the project. At the very least, you will be more tolerant of changing requirements and implementing a new design.
Secondly, you get another application in your portfolio (and if it is the first in your portfolio, then there's nothing to talk about). Yes, it may not be very difficult and unsuccessful in terms of attracting users and money, but it is completely yours. Idea, design, code - the project from the beginning to the end is realized by you. If you have done this, then you are at least technically savvy. If you have a good design and the application is convenient to use, it means that you can not only give you designer’s mockups, but also consult on how best to add this or that detail (I still remember unsuccessful warriors in the style "- It won't work, either it will not fit, or it will be too small! -Just do it, and then we'll see. "). And finally, if you have implemented a project without motivation in the form of money, then what can you create for money?
And of course, you will enjoy the realization that you have done something completely independently. Yes, many have projects executed in a team, or without a team, but with the customer and financing. But the implementation of its own project, the passage of all stages of development, the realization that “wanted, invented and realized”, gives a completely different feeling than hiring.
I have everything, thanks for reading this long post. I hope, at least someone he was useful. If anyone is interested, later I will complement it with experiments with the promotion of their results.