Thousands of new apps appear in the Apple Store and Google Play every day, but only a few are financially successful. All others disappear: 80% - in the first year, the rest - within the next five years. The main reason for their failure is their unwillingness to understand the nuances of mobile development, which leads to many unnecessary errors. In this article, we will tell you about 7 key things that everyone who wants to develop their application should know.
1. Stages of development process
What stages does the process of creating mobile applications usually consist of. Source
The first thing you need to know is how the mobile app development process works
. This is important because this way you can understand what stages the entire development process
is divided into, who is involved in it and what is doing. This knowledge will provide the basis on which you can dive deeper into the topic.
Strategy and vision
. The first step in starting any startup is to understand exactly what your project is about. You have to decide what you want your application to do? What goals do you want to achieve and how? By answering these questions, you can create a vision of your project: tasks, functions, niche, target audience, monetization, unique value proposition, etc.
After you have formed the basic concept of the future mobile application
, you can contact your internal development team or an outsourced technical service provider. Together with the developers, you can more clearly define the objectives of the project and how to achieve them. The distribution of areas of responsibility when developing a strategy looks like this:
Analysis and planning
- the customer determines WHY we do it;
- the developer decides WHAT and HOW we do it.
. After the tasks are set and the main functions of the proposal are determined, it is time for analysis and planning. Typically, this stage involves a business analyst who creates a technical specification based on business objectives, application development best practices
, competitor and market analysis, and personal experience.
As a result, you will receive a technical task of the project and a detailed development plan
, which includes a description of business needs, functionality, technology stack and API, design requirements and layouts that will help you and the developers speak the same language. Further deadlines, communication channels and KPIs are discussed. When all these things are agreed, a contract is drawn up.
UI / UX design creation.
At this stage, the designer creates a UI / UX design concept for your application based on wireframes that can be written by a business analyst or UX designer. Further, based on the wireframes, layouts and prototypes of the application user interface are created.
All this can take up to 20% of the entire process of creating an application
, depending on its complexity and depth of development. Of course, the more complex the design is, the more time and money will be spent on its implementation. But this does not mean that you need to save on design. Quite the opposite: design is one of the most important elements of the success of any IT startup, since it is the design that most of all influences the first impression and user experience.
Writing program code
Difference between wireframe, layout, and prototype when developing an application design. Source
. At this stage, the development team is provided with the design concept, layouts and technical specification. They study this information and start writing the application code. This process in most companies is usually quite flexible, which means that it is all divided into sprints, and each next sprint can be changed depending on what was achieved during the previous one.
The speed and cost of development depends on
the number of specialists involved, their experience and skills, as well as the technology stack. Please note that developers will need some time initially to set up the development environment, database, backend and architecture. If the development is divided into separate blocks, then it will also take time to combine all the elements into a single structure and test it.
QA and product testing
. In the modern development cycle, code review often occurs almost simultaneously with its writing: while developers are writing the code, QA specialists conduct various automated tests in parallel and manually check the code. This approach helps speed up the testing and bug fixing process: it is easier to find inconsistencies in small pieces of fresh code than to make changes to large code at the end of development.
The code testing process itself usually includes the following things:
- Smoke testing. A set of basic tests, implying a thorough check for obvious errors in the most important and critical elements, taking into account the fact that this is an incompletely finalized product.
- Retesting. This is a rerun of a previously failed test with new (fixed) code to check if the issue is resolved.
- Regression tests. A selection of tests aimed at eliminating regression errors that appear when making changes to an existing build or when fixing other bugs that cause new bugs to appear in an already tested product.
- Performance tests. Full-scale endurance tests of the application under a wide variety of loads, including reboots, switching between offline and online mods, and other internal operations.
After completing each test and receiving feedback, the QA engineer makes improvements to the code, which takes most of the testing phase.
. After the application is ready and all tests have confirmed the quality of the code of the created software, mobile applications
are released on Google Play and the App Store. Before adding a new app to their listings, these marketplaces check it for compliance with the site's rules and minimum quality. If you find errors in your code, you will have very little time to fix them (2 days in the App Store). Therefore, we strongly advise against saving time and budget on testing.
. Maintaining a mobile application
usually means improving it to be compatible with newer versions of operating systems, devices, and platforms. In addition, it also means improving the design with functionality and connecting various third-party services. Thanks to all this, your application
will remain relevant for many years, and not only for the first time immediately after launch.
2. Business model and monetization
A business model is how a company functions: what it does, what for, how it makes a profit from its activities, how it interacts with customers and partners, what it invests in, etc. In the case of a mobile application, its business model can be is aimed at performing a wide variety of tasks. The most obvious one is generating income directly from the application. Another popular option is to serve as a “magnet” to attract target audiences by indirectly increasing brand reach or helping sell products elsewhere.
If you choose the first option, here's how you can do it:
- Freemium model. These applications can be downloaded for free and used without any payment, but not 100%. Some features and/or content will be blocked. It will be possible to get access to blocked things only through a purchase or by subscribing.
- Paid (premium) applications. To use these applications, you need to buy them in a store, like a regular product in a supermarket. This approach creates a price barrier for entry, so when launching such an application, you need to develop a marketing strategy that will demonstrate the advantage of your software in comparison with free competitors.
- In-app purchases. In this model, your mobile app will serve as a sales channel for digital or physical products such as branded merchandise or exclusive content.
- Advertising in applications. This is perhaps the simplest and most affordable monetization model of all, because users will be able to use your application for free, which removes any barriers to entry. But be careful with the amount of ads, since too many banners and ad inserts can scare people away.
- Subscription model. With this approach, users get access to the application after completing a monthly, semi-annual or annual subscription.
- Sponsorship. This option implies that the application will be free, and you will receive money for its support through voluntary donations from users.
3. The composition of the development team
A mobile application is a rather complex piece of software that cannot yet be created in the same way that websites are launched using WordPress. This requires an internal development team or an outsourced technical partner. An on-staff team is a good option if they have work on a regular basis, which is very rare. Therefore, in most cases, the creation of applications is entrusted to the outsourcing company.
How to find such a partner and what to look for when choosing one, we have described in the article: «How to choose a developer company
As for the composition of the team of developers of mobile applications, in most cases it will be so:
- Business analyst. Collects the tasks and requirements of the client for the desired product, analyzes how the software should look like, and what functions need to be included in the development, in order to create a technical specification based on this information and plan the entire process with a budget.
- Project manager. Distributes tasks between the development team, plans the progress of work, motivates, controls the process and coordinates common actions. He is also responsible for risk management, time management and actions in case of unforeseen situations.
- UI / UX designers. Use wireframes created by the client and/or business analyst to "draw" interface layouts (UI) from them. Also, designers are responsible for creating a great user experience for the end-users of your mobile application.
- Developers / programmers. Responsible for the embodiment of the design and functionality of the application in the program code, which is understandable to the user's device, servers and various third-party services. Programmers can specialize in front-end, back-end and mobile development.
- QA specialists. They test the application for bugs in the code and other errors, and then submit a report to the development team, which must fix them. Sometimes QA engineers fix bugs themselves.
4. Architecture and technology stack
. A mobile application is a complex software product
that consists of many different components, such as a login screen, user interface, databases, online store, etc. To manage these components, programmers create an application architecture
to logically define the relationships and interactions between all of these components. Here is an example of such an architecture:
Architecture of enterprise mobile applications. Source
Typically, such an architecture implies the separation of all application components into front-end and back-end parts, which are connected to each other and to various third-party services through an API (Application Programming Interface). The set of components for the server and client parts, as well as the API depends on the type of a particular application, its functionality and tasks.
. Includes components that the end user interacts with, such as a customer in a store. This is the user interface (what the end user sees on his screen) and the system interface. To create the client side, you need special tools (technical stack for the frontend). Here is an example of such a stack for developing a mobile electronic medical record (EMR) service):
. The hardware and software part of the system, which is responsible for working with information and the implementation of the functioning of the internal part of the application. This is what the technology stack looks like for developing an EMR application: