How climbers’ app “The Rock & Wall” was created
IdeaThe idea of creating an app for climbers came to a businessman from the UK. Ivan’s company has nothing to do with his favorite hobby. He turned to us, having just a raw idea and a desire to expand his circle of like-minded friends.
We contacted our new customer and talked about his expectations for the final product. Based on the received information, we began work on the assessment and strategy. At this phase, a manager and designer led the project. We divided the workflow into phases, each of which fulfilled its goals and objectives. Based on the work valuation, the estimated cost of the project was calculated.
This phase also included apps analysis of the direct competitors. As a result, we found the following weaknesses in similar apps: unprofessional design and complex functionality with unnecessary activities. This gave us some reference point regarding the appearance and contents of the future app. Since Ivan initially had no ideas regarding goals, objectives and functionality, the assessment phase took about a month.
Our specialists worked on the design for The Rock & Wall app: designer, project manager, BA and the customer himself. The advantage of developing an app from an idea to a release by one team is that everyone is entirely consumed by the process and as a result, we have a harmonious, holistic product.
The process of design making is complex and involves several stages. It all starts with creating a wireframe, or a low-detailed representation of the design, with a sketch of the basic functionality. It clearly shows the main groups of contents, the information structure, describes the user/interface interaction. After customer’s approval, the developers prepare a clickable model. For interface creating and prototyping, we used such specialized services as Figma (the collaborative interface design tool), Zeplin (connected space for product teams), Sketch (a design tool entirely vector-based and focused on user interface design), Adobe Photoshop. The design-making phase was not without difficulties. There were problems with selecting pictures for each type of activity, working on icons, choosing colors for each rating system. However, in 2-3 weeks we managed to combine the simplicity and creativity of the design in our product.
After the design-making phase, an equally responsible and time-consuming process follows – the development phase that our developers, designer and BA worked on. As a rule, this phase takes about two months, one of which is dedicated to testing and bug fixing.
DevelopmentThe app was written in the Kotlin programming language initially for Android smartphones, however, an iOS platform version is already being prepared. We didn’t consider the option of a cross-platform app, because we believe that it can become too expensive to maintain when scaling. Eventually, the customer will have to have the program rewritten for each of the platforms separately, and he or she will spent much more money when updating and expanding its functionality. We used the following technologies in the development process:
• Scrum was used as a development methodology. Scrum involves working on a project through short sprints, each of which is a mini-project with its own goals, strategy, workflow and final product. After each sprint, testing is carried out. Thanks to testing during development process, possible bugs are fixed on time, which means a much more stable final product.
• We also used the Git version control system, which makes it possible not only to return particular files to their previous form, but also to copy the entire repository. This will allow to restore the database in case of a server crash.
• The Realm mobile database allows all objects to be updated synchronously, to respond to changes instantly and to be saved quickly.
• The Moxy MVP architecture allows you to share responsibility in the app code, easily change one part without breaking the other and the code itself becomes more understandable and readable.
• Technologies such as Retrofit, Extension Function, etc.
While developing, we solved a number of puzzles. For example, climbing rating systems are different for many countries, and that had to be correctly combined in the app. In addition, it is considered that the user can achieve the goal on the not only first try, which should also be taken into account and reflected in the rating system. We also faced the challenge of collecting a database of gyms where you can do climbing and generating QR codes for them.
Testing and Next GoalsIn this project, one sprint lasted one week, after which testing was carried out. We fixed bugs in the Trello program. Detected bugs fixing is included in the goals of the next sprint. Testing took place on a model range of devices with different screens, resolution and diagonal.
We used the following types of testing:
• Automated testing, or software verification process, which includes carrying out such basic functions and test steps as launching, initializing, executing, analyzing and outputting the result.
• Monkey testing, or the process of accidentally pressing on all kinds of app buttons to test its resistance to a huge number of requests.
• UI testing or user interface check.
In addition, we tested the final product on a small group of the target audience, namely, our client’s like-minded friends and received a good After the finished app release, our role in the project doesn’t decrease at all. There were problems with the server, the version of the Gradle automatic assembly system, the Amazon Cognito authorization server, and downloading images. We not only provide technical support for the existing product version, but also continue to communicate closely with Ivan and develop updates and strategies for the further progress of the app. Just recently, we announced the release of a new function that allows the user to track his or her rating in the general table of users, and also reports what it takes to reach a higher position. We are planning to connect NFC sensors and make it possible to use smart watches. G-sensors will allow us to record the height of the ascent, the last delay, fall, the beginning and the end of the action. All this will make the app even more convenient and useful. However, after this global update release, the product will become paid.
In addition to solving technical problems, we are engaged in analytics using services such as Fabric Crashlytics (mobile app analytics, beta distribution, and user identity and authentication), AppsFlyer (a SaaS mobile marketing analytics and attribution platform) and Google Analytics. And our marketer can advise you on promoting your mobile app.