Top Story authorized to say: don't be afraid of mobile development

    Hello, Habr! In August, Top Story turns six months old - it's time to share the experience of developing the application, tell life stories and remember the main mistakes. Over the past six months, our news aggregator has grown, grown stronger and has a fully completed backend and frontend, so we have something to tell lovers of mobile development and those who take the first steps in it.



    Mobile development has gained immense popularity - it is led by world giants, agencies, small companies and programmers, a huge number of tools have appeared that make working on the application even easier. The number of applications is growing at an incredible rate. According to Appfigures statistics, the number of applications in the App Store amounted to 1.21 million at the end of the year, and the Play Store - 1.43 million ... We decided to enter this number and win our users. From the very beginning, we had several distinctive features that we could rely on in the development process. As you remember from previous posts, the main feature of Top Story is a personalized approach to the user. Realizing this task, we filled up cones, set successful and not very experiments, worked for weeks on fixing sometimes quite ridiculous mistakes.

    Nine tips for everyone ...


    Get away from key market players in the first phase of development.Before you start developing your application, study three important blocks of information: the market, competitors, potential users. It’s necessary to know the offers of key players in order not to wind up additional insignificant features when you have already entered the market and suddenly found that your idea is not new. If you are developing a unique application, remember that it should include a maximum of functionality. Ideas are in the air - it is likely that after the publication of the application there will be numerous clones with interesting functionality that you did not manage to release in the first release. When creating a program for a wide range of subscribers, think about users - develop clear interfaces, get rid of unnecessary complications without pity.

    Love the bugs.Do not be afraid of them, they will still be serious, petty and even stupid. Our team was mistaken more than once, here are some stories.

    • First, news articles in the Top Story app feed loaded quickly. After some time, we noticed that productivity dropped sharply and loading web pages began to take up too much time. There was a solution: now we cache the shared resource of the web page in our apk, it does not require constant data loading - when the user opens an article from the resource, the application just needs to download new content or image. After that, the average page opening time was about 1 second.

    • TopStory was originally designed as a news list, but there are performance issues in the native Android watch list when the list items are very complex. To solve the problem, we changed the code following the official Android recommendations for improving productivity and used an excellent open source project to control the embedding of images in news feed elements. Finally, in order to avoid further problems, we began to monitor the performance and speed of the application in order to quickly find emerging problems and immediately respond to them.

    • There were stupid mistakes in the history of Top Story ... Once a user from Turkey contacted us and complained that he could not share interesting articles on Facebook. At our competitors everything was "rummaged" with a bang. We thought. Searches for a mistake took a very long time. As a result, we discovered that this is a Facebook problem: their official sharing SDK did not allow sharing content if the device language is Turkish. And in the product of competitors was not built the official SDK Facebook, but native Android. Although they look the same, the official Facebook SDK does not work, and with the native Android, everything is ok.

    Be sure to test the application - including on the devices themselves and on device emulators. We already wrote that Top Story is often updated, so you have to pay great attention to testing and at the same time work very quickly. We watch the application for three days before the release using manual and automatic tests. For UI testing we use Robotium, for stabilization tests - Android Monkey. We especially carefully test new features, then “drive off” interactions and compatibility with devices. We also have a large checklist for some critical points - we conduct tests on it to avoid the most unpleasant and stupid bugs.

    Use the best algorithms and data structures.You can always stop and pile up crutches, but if you are going to live in the market for a long time, get rid of difficult decisions and look for the best design examples. When developing, be sure to consider the architecture of the application as a whole (backend + frontend), otherwise annoying errors cannot be avoided.

    Take care of the graphical user interface (GUI) and application design.Design forms, lists, think over the logic of the application, gesture control, the relationship between the various sections of the application. Be attentive to trifles, work with color, application shortcuts, headers and names of menu items, create your own unique style. When designing over and over again, go through the user’s path - so you will see obvious inconsistencies and illogical behavior of the application. TopStory always carefully works on the interface - how we do it and what remains to be done can be read in a previous post.

    Release the application for a small number of users already at the alpha version stage- because it is very important to collect feedback in the field from the first day, and gradually, as you approach the 1.0.0 build, increase the number of installations, at the same time experimenting with channels for attracting users. It is important not to be an idealist - it is simply impossible to make an ideal product, and therefore you need to experiment a lot and move step by step, testing hypotheses and selecting the best solutions.

    Use quality source information, for example, developer sections on platforms (both Google and Apple have it), read the guidelines, use the numerous community of developers - there you can find answers to many questions. Learn the best experience of open source projects - you can see good solutions and use them in your development. We realized that you do not need to reinvent the wheel - there are so many cool projects that will help you move forward quickly.

    Constantly update and develop. The basis for the development can be the opinions and user reviews - collect them in the comments of the Store, by e-mail, through social networks. It so happened that the opinions of users are the main source of inspiration for Top Story developers. If you go, for example, to us on Google Play, then you will see more than 10,200 reviews, each of which we read and take into account. For example, under our first post on Habré, the reader noted that the name of the "Explore" section does not fit very well into the overall structure.



    The Top Story team brainstormed and found a way out - we called this section “Kaleidoscope”.

    Be aware of platform issues.For example, we are faced with the fact that the problem when working under Android is the “crushing” of Android, when smartphone manufacturers release new devices for many competing versions of Android OS. This is where the question arises of how to balance the quality of the code and the requirements of the product in conditions where you need to develop very quickly. And here it is important to own all the tools: the capabilities of languages ​​(in our case, these are Java for Android, Objective-C for iOS), frameworks, tools for the backend.

    ... and the tenth for the most risky


    Do not be afraid to work and develop as part of international teams. Today, work in the most complex team is not hindered by either distance or time zones. The interaction of excellent developers, businessmen, designers, system architects from around the world allows you to work efficiently. Top Story is developed by professional programmers from China, and working with them is not only an exchange of experience, but also an excellent cultural exchange. And this applies, in particular, to the development culture. We told our Chinese guys about Habr and about publication, and in return they told us a little specifically for the post about ...

    ... about GitHub.We use the official Vkontakte SDK so that users of the application can share their favorite content. Once we began to observe strange crashes of the application and found out that an error occurs if, after clicking Send, but before the news has finished loading, a call arrives in the feed or the Home button on the device is accidentally pressed. We fixed this behavior of the SDK and committed the project to GitHub.

    ... about programming languages ​​and frameworks. Popular technologies in China and other countries of the world are not much different, but the Chinese teams (for example, Testin) have created several useful tools for developers, which are more convenient for us to use. Such national developments help startup teams (such as ours) to develop the product very quickly.

    ... about how a Chinese can teach a car to understand Russian. Without knowledge of the Russian language, we teach the machine to understand plain text and develop an algorithm for automatic processing of the natural language (NLP - natural language processing) in three ways.

    1. Statistical learning algorithm. Top Story collects a large amount of data including news content and user behavioral data (requests, searches, bookmarks ...). Processing them, we highlight useful language knowledge that is used for the further development of algorithms. For processing, we use, for example, word2vec, an open source technology for the statistical processing of text data arrays that determines the relationship of words in existing texts using neural network methods.

    2. Learning based on knowledge bases and open source libraries. For example, the extraction of named entities (NER - named entity recognition), based on Wikipedia data. We also use a stemming algorithm (the “Snowball” project), which is based on finding the word base by sequentially cutting off some morphemes (suffixes, endings) according to the established rules. We chose this algorithm because of the speed of work - for us in Top Story this is an extremely important factor.

    3. Finally, we use human expertise, and then a translator works together with the developer.

    ... about language barriers and communication problems. We communicate in English - without it, development in the modern IT industry is impossible, because it is it that contains the best manuals for developers, Android development documentation and much more.

    If you decide to do mobile development, feel free to start! This is a promising and interesting direction - it covers a huge number of users around the globe, suggests the latest and most interesting development tools, makes it possible to realize the most fantastic idea and bring together enthusiasts from different parts of the world around it. The long way begins with the first step. Good luck

    In the meantime, you can install Top Story from the AppStore and GooglePlay .

    Also popular now: