📜 ⬆️ ⬇️

Run the application for Android (from personal experience)


Personally, I think every person should have a hobby. Someone is crocheting, someone is torturing the circuit boards with a soldering iron, and someone is launching various small projects and gaining new experience, and with luck, then money.
It just so happened that my colleague and I had just such a hobby. And now, during the next conversation in Skype, the question of what we have not tried yet had a thought, let's make an Android application? Everything spun ...

Looking ahead, I’ll say that, firstly, this story has a happy ending rather than a complete failure, and secondly, I understand how much we were doing is different from what mobile development experts are doing and not at all I urge anyone to repeat our path. Thirdly, I share my experience and I want to show all non-specialists that with an adequate level of perseverance and the application of forces, you can do something completely new, unknown. I hope someone will inspire my experience. So separately, I want to designate the timeframe of the project: the beginning of the development is 01/12/2014, 02.27.2015 - a publication in the Goolge Playmarket, a continuation of the story to the present. So let's go ...

Development for Android? And why not, the circle is full of success stories and vice versa, failures, a huge market, a large number of users, lack of knowledge, it all beckoned and made the awl particularly acute.
From the negative sides of such a venture, two sides were seen primarily:

But, as you know, the presence of objective difficulties is not an obstacle to the rake.
Accordingly, before embarking on a real embodiment, it was necessary to solve two questions: to find an idea, to find a programmer.

Search for an idea


No brainer that applications in the Android market darkness. And to do something you need to decide what it is?
')
Choosing a topic, we proceeded from the available resources (which were acquired earlier):


Based on the resources, we decided to make an educational application with simple functionality and so that you can use the content that is already available on the sites.

This is how the concept of the application appeared - a collection of materials (essentially an offline version of the site), divided into categories with the ability to add materials to favorites, read, update the database of materials from a certain central repository, plus a mechanism (we don’t know which) to fill the application with these materials, something like a back office.

Under this concept, an application like “Cheat Sheets”, i.e. a collection of materials that you can have on hand, broken down by topic by issue. Pomonitorili playmarket - surprisingly, the normal application with cheat sheets for students was not. Rather, there are many applications, but they are all either narrow subjects, or frankly not very good. Many have 10-50-100 thousand downloads.

In addition to the obvious advantages of our resources, the niche of cheat sheets for students turned out to be also good with the following points:

With the idea and the draft concept decided.

Programmer search


One of the most important questions, and who will actually do all this? Initially considered such options:

The “I” option was dropped when I set up the development environment and a bit plunged into manuals guides and other smart things. I had no such resource of time. To master the technology during the main work at 5x8 would require me to sit for 3-5 months in the evenings, while the result would surely be worse than in other cases. Cross out.

The “common friend” option is best for me because this person really loves programming and is interested in mobile development. In this case, having received a specialization, he would have become better as a specialist would have joined our team as a mobile developer. But alas, did not grow together in his spare time. He tried, but could not devote the right time for family reasons.

Option hired firm - a search for several days showed that firms of this orientation for the most part Moscow, the price tags start at 80 thousand per project - not our option.

Freelancers, I just do not like and this option would be an extreme case.

There remained a hired man but in our location. Search through friends brought to a student who has experience in development and the desire to earn. We talked with the man, I looked at what he was doing, described something that was necessary, discussed the budget and tentatively shook hands.

Prototyping


The developer quite logically asked us to portray on “paper” in the form of application screens, what we want to get in the end and set out the functional requirements in the form of TK.

I didn’t want to paint in a paint or photoshop, and it’s not serious either. There must be a different approach. Fast Google gave several services for prototyping applications.

Poked them back and forth and opted for one www.ninjamock.com . I don’t remember exactly what he came up with, most likely for free, conveniently, just to master, - that’s what you need.

Three hours of “lining up” over the service as a result brought just such a “demo” in which you can poke, move here and there, roughly estimate how the functionality will work:

Well, and so on. Blue dots mark places, clicks on which will lead to another screen. Those. The demo was interactive.

You can poke your pens here at this link: www.ninjamock.com/s/mmcdrz
(I now look at what happened in the end and I understand that everything is completely wrong, but the principles are correctly conveyed.)

It was also written here is the TK (please do not laugh, just as an example, I strongly do not recommend writing TK in this way, we were lucky, but it could not be lucky). Perhaps I will remove the TK under the spoiler, because you never know, suddenly the faint of heart or pregnant will read this text.
Technical task
The mobile application is a directory of HTML formatted materials. Materials are divided into categories, categories also have HTML formatted description. The application serves for convenient reading and navigation through materials, for work with selected materials.
Main functions
  • HTML materials are formatted
  • Materials may contain images.
  • There is a search on the text and headings of materials
  • HTML category descriptions are formatted
  • Each material can be marked with an arbitrary set of tags (tags from both the developer and the user
  • Each material can be added by the user to favorites.
  • There is space for a horizontal advertising banner at the top or bottom of the screen.
  • Application and finished materials are separated.
  • Materials after installation are loaded separately.
  • Materials can be updated, respectively, need the opportunity - check the update materials
  • Storage of materials must be organized on the site.
  • Preferred storage of materials and categories XML file
  • When updating materials, custom tags and favorites should not disappear.



All this was provided to the developer, the approximate budget framework was announced.

Development


A couple of days later the developer contacted his proposal.

The proposal was: The cost of developing X rubles, a period of 1 month. The development includes an application + server part for filling materials and distributing content updates to the application. The application does it himself, attracts a familiar programmer to the server part and understands it himself in terms of interfaces, timing and payment. Agreed to pay an advance of 30% after the developer shows a prototype.

Also formed the requirements for the server part:


This development completely suited us, since initially we were ready to simply feed html or xml files to any available online directory for synchronization. And then the whole server part with a visual editor.

A few days later, the developer rolled out the prototype framework:

I immediately liked the result. Minimalism, conciseness. Only then I realized how much the prototype I have drawn is overloaded with details and does not correspond to the modern trends of mobile development.

The developer also presented the harsh concept of the server part:


We listed the advance and did other things.

In the process of development, from time to time he threw off prototypes, some small details were refined. Changes were made.

A week later, the developer passed the server part for testing, received a few comments on the functionality and interface, quickly completed them. After passing the server part, we started filling the content and paid another 20% of the cost.

Rake


In the process of this project, we stepped on a few “rakes” due to inexperience.

Rake number 1


The first “rake” that we felt was the placement of the server side. Before the start of development, I talked about this topic with the programmer. He asked the question: where do you have server to mark? I replied that we have hosting with PHP and MySQL support, on which a dozen other sites are running and there are still enough resources. He clarified whether there is access to bash, whether it is possible to install packages, and having received an affirmative answer, he calmed down. Said that will place the server.

When the server part was ready, it turned out that it works on Node.JS, that its installation on a hosting is problematic, that a full VPS or a dedicated server is needed. It upset me. The developer suggested using herokuapp.com , a service for hosting applications, with a free data plan up to a certain load. On this and agreed. We decided that we would have enough power to test the concept, and in the future it will be clear whether we are ready to spend money on VPS or whether we will pay this Hirok himself. Actually at the moment the free tariff plan pulls our inquiries.

How could the rake be avoided? It was necessary to immediately clarify the technology of the server part. Young developers are drawn for fashionable things and tools, so in critical places it’s worth finding out how one time or another will be done.

Rake number 2


Oh, this is the biggest rake, which we still have not completely bypassed. According to our plan, the trick of the application is that it contains all the cheat sheets that the student and you need Physics, and Psychology and Machine Parts, etc. Ie it is assumed a large amount of such material, in almost all common subjects (now, by the way, there are more than 130 subjects in the annex and more than 6000 answers to questions on these subjects). According to our plans, the fullness of the application should have grown to a volume of 10-15 thousand materials. We then think the yardstick of the sites, but what is a site for a server with an average attendance of 10t pages, of course, a lot, but not at all. And this moment we did not discuss at all, because it did not seem significant.

A developer thinks the standards of mobile applications and, as it turned out, he assumed that the ceiling is 2, a maximum of 3 thousand materials. And he did not lay the technology for the development of such a volume. It turned out almost to the end of development, when the materials are filled and the money paid. In the appendix, this discrepancy resulted in a very, very long loading of materials. It was assumed that the user puts the application from the market, then receives the base of materials and is happy. But waiting for 40-60 minutes while 3500 materials are being downloaded, no one will have enough patience ...

How could the rake be avoided? Negotiate in advance not only the qualitative but also the quantitative parameters of the application. What resources, what types, in what volumes, how many users there will be, how many online at the same time and other similar parameters. You need to fix them before starting work!

How did the rake get around? The starting volume of materials is included in the installation, the developer has optimized and reworked the download, but for a complete solution to the problem we need to redo something. We postpone it for later.

Rake number 3


Traditional rake of any development - time. Somewhere we didn’t calculate, somewhere the developer had miscalculated, we planned to carry out the main work until January 15, including the starting volume of filling, but we only released the application in the market on February 27, 2014, i.e. in fact, they have exceeded the terms by 1.5 months, from the initial 1 month. For the most part, the deadlines were frustrated because of Rake No. 2. But since for us the timing was not critical, then don't care. But if the dates are important, then we must take into account.

It seems more than a rake I will not remember. Around February 20, 2014 was almost ready final release.

We settled in the PlayMarket, moderated and began to storm the new world.

The application itself now looks like this, you can judge for yourself whether it is close or far from the prototype:

Some statistics
Currently, the number of installations is close to 28,000.
Daily record of installations = 389 installations.
Daily record online = 1021 users
Daily record viewing screens = 20,615 screens.

Immediately after the release of the application, we deliberately did not monetize in any way, we decided to first collect the user base. We also closely followed the reviews, and within 2-3 months they released several patches and updates. At the moment, the functionality of the application has slightly changed, from the planned, but since the article is already extensive, and there is a lot more to say, then perhaps I will transfer it to the second part.
As well as the following topics:


Of course, the second part will be if the comments become clear that the topic is interesting to readers Geektimes. Please ask questions in the comments, error messages in PM. I also did not find how besides the table you can beautifully place illustrations.

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


All Articles