Mobindustry merges with Apriorit,
a Specialized Cybersecurity R&D Company
Month: January 2023
16 Things You Need to Know About the Mobile App Development Process
When you’re a professional, you start to forget that what’s obvious to you may not be so obvious to people from other industries. I bet you sometimes get that feeling when you talk to someone outside of work. I do too.
When I had only just started working as a project manager, I experienced this a lot. I worked both with small startups and large enterprises, and sometimes my clients didn’t have any technical knowledge at all. Their idea of how the development process should go was simple and lacking in detail.
As the preparation stage begins, you’ll need to consider lots of things
That’s why I’ve decided to tell you what it’s like to develop mobile software. Sure, you’ll get this information and even more in the process of working with a mobile development company, but this article will give you an idea of what is needed for mobile application development, and what mobile app development phases a development project consists of.
App Development Process
Before we talk about planning, let’s get an overview on the app development process. It consists of seven main steps:
- Kick-off stage
- Discovery phase
- Code audit
- Design
- App development
- Testing
- Deployment
- Maintenance
1. Kick-off stage
The kick-off stage is the initial stage of your project where you develop the vision for your product and start to communicate with your vendor. At this stage you need to understand what your project is going to be about. What do you want your app to do? What goals you need to achieve? At this point you may be thinking about some core functionality your app should have, or take inspiration from your competitors who already have a mobile product. Vision is something to present to your development vendors or your in-house team, so that they understand what needs to be done in order to achieve particular goals your strategy consists of.
How does a kick-off stage happen at Mobindustry? First, when a client comes to us with their idea, our specialists conduct an interview where they get an understanding of the project. This allows them to provide a client with a rough estimate, so both parties know if they’re right for each other. After this stage is complete, and we sign the contract, it’s time for more detailed planning which is called a discovery phase.
2. Discovery phase
After the goals are set, and the core functionality is decided on, it’s time for a discovery phase which includes analysis and detailed planning. This usually involves the work of a business analyst, who creates a technical specification that is based on business needs, best practices of app development, competitor and market analysis, and their own experience.
Planning is one of the most important stages in app development. As a result of it, you’ll get these deliverables:
- A detailed technical specification that includes all features, technology stack, requirements, a list of tools, and suggested architecture. All this will help you and your development team speak the same language and expect the same results.
- UI/UX concept that shows the overall business logic of your future project and also provides visual components for the interface. The UI/UX concept includes the wireframes that show how user personas will interact with your product and achieve their goals.
- Development plan and detailed estimates show the step-by-step process of your project development and sets deadlines and a budget. Estimates are made by a project manager and the development team lead.
3. Code audit
If you already have software, and you’d like to hire our team for further development and improvements, code audit will be our first step after understanding your goals and requirements. A software code audit is an analysis of a project code that provides you with in-depth information about your software’s quality, and reveals issues like spaghetti code, architecture inconsistencies and security risks.
Code audit is crucial for further development, as it allows developers to familiarize themselves with your project, and also suggest the best solutions for your current software.
3. Design
At this stage, a designer creates a UI and UX design concept for your app based on the wireframes. The wireframes can be created by either the business analyst or a UX designer. UI design can take up to 20% of the whole app building process, depending on its complexity. Note, that if you add complex animations into your app, it will influence both the time and cost of your project.
4. App development
Now it’s time to give design concept, wireframes and a technical specification to your development team. The app development workflow in most companies is organized according to the agile methodology, meaning that the whole process is divided in sprints, and each next sprint can be changed based on what has been achieved during the previous one.
App development cost and speed depends on a number of developers, their skill and technology stack. Note, that developers also need time to merge their code, if they work on a same project as a team, and some time will be needed at the initial stage of app development, to set up the development environment, databased, backend and architecture.
4. Testing
In a modern mobile application development cycle, testing often happens almost simultaneously to development, as each small part of fresh code is tested immediately. This helpes to make the development and quality assurance processes faster, as it’s easier to find inconsistencies in small chunks of code rather than make changes to a large code at the end of the development.
However, quality assurance specialists run tests on a whole product as well, to make sure everything works correctly together.
4. Deployment
After the app is ready, and all the tests have proven the code quality, it’s time for deployment. Mobile apps are released to two main app markets: Play Store and App Store. However, there are other stores, for example Huawei’s App Gallery. No matter where you release your app, deployment is a separate activity, as you need to make sure you comply with all the rules and regulations of a store, and also you need to set up a paid developer account there.
5. Maintenance
After your product is released, you need to continuously take care of it. Maintenance of an app means updating it for the new operation system versions, new devices and platforms. Also, you’ll need to continue to improve it with regular updates to your third-party services like maps, payment gateways, libraries and frameworks. Maintenance is an important part of an app development procedure that continues along the whole existence of your mobile product.
Maintenance can take 10% – 40% of your initial development budget yearly, depending on your app’s complexity, technology, and size.
How app development process starts
Your project begins with an idea.
At Mobindustry, we offer the knowledge and experience of our business analysts to translate your idea into clear technical requirements. If you want to create your application for business but you’ve never worked in the mobile market before, it may be difficult to understand all the peculiarities of the mobile industry.
After you’ve decided on your target audience and the value that your product will bring, you can start thoroughly planning your app. Business analysts, project managers, and developers will help you with that.
As the preparation stage begins, you’ll need to consider lots of things. To make them clearer, I’ve divided the the process of creating an app and its planning into four stages:
- Development part
- Project part
- Product part
- Design part
Let’s explore what details you need to consider before starting development.
Development part
The development part is a core part of the process of creating an app. At this point, you need to think about the platform you want to build your features on, and decide whether you want a native, hybrid or a cross platform application. To determine this, our developers will need to think through the architecture.
1. Architecture
The architecture of an application is its spine, and everything that developers build will rely on it. As you can imagine, architecture design is rather time-consuming, so be aware that developers won’t be able to start developing features right away.
There are three common types of architectures:
- Model-View-Presenter, or MVP (don’t confuse this with the MVP that stands for minimum viable product)
- Model-View-ViewModel, or MVVM
- Model-View-Controller, or MVC
- Model-View-Intent, or MVI
- Clean Architecture
These are the core principles that modern developers will follow while creating your app. They divide the whole development process into segments and explain how and when they intersect.
Note, that these models are relevant for native applications. If you want to create a cross-platform app or convert website to mobile app, you’ll need to consult with developers so they choose the best architecture for your project.
2. Databases
There are tons of databases, and your development team will need time to decide which best fits your needs before mobile app development process starts.
Developers will need to understand what types of data are prevalent and choose a database based on that. Some databases are great for working with simple text data that doesn’t change dynamically. Other databases allow for fast information exchange and are great for social media where information is dynamic.
3. Caching
Think about how you want to store data. If you want to store some data on the user device, developers will need time to implement caching and local data storage.
4. UI Error Messages
If you work with APIs, there are some standard errors that developers will need to process.
5. Certificates
It will also take time to create a development environment and create developer profiles. We use Fabric and continuous integration (CI) in our work to make the development process smoother and easier.
Continuous integration (CI) is a set best practices for automated code integration when multiple contributors are involved. CI is a tool that allows developers to frequently merge code changes into a single software project. A CI repository builds, tests and runs this code automatically, which allows to significantly accelerate the development process.
Crashlytics is an advanced analytics service that helps identify bugs and crashes and gives valuable information on application growth and performance.
6. Backend and API
Every application has two parts: the backend and frontend. The frontend is everything a user can see, while the backend includes the logic behind everything happening in the mobile app. If you already have a web application or a website, you know the deal.
To implement any third-party services like social media or maps, developers will need to use APIs
You’ll need backend development as well as frontend. Backend developers create APIs (application programming interfaces) that allow the frontend to communicate with the server. This is one of the important steps to develop an app.
Clients often don’t know how they’ll use third-party services, for example Google Maps or social media channels like Facebook and Instagram. To implement third-party services, developers will also need to use APIs. Luckily, almost all third-party services provide them, so there’s no need to hire backend developers for this.
7. Quality assurance
You are to decide whether you want us to test your app. We advise using professional QA-engineer services, as they provide the highest quality of your app. QA-engineers not only perform testing, but also create documentation that allows you to see a detailed plan for testing your app.
These are the basic things you’ll need to consider in the mobile app development process. The next stage that’s connected to development is work on the project.
Application development process: Project part
8. Communication
If you’ve never participated in an app development process, you probably can’t even imagine how much time communication takes.
Daily and weekly meetings with developers, quality assurance specialists, stakeholders, and project managers: all this is necessary to make sure everyone is on the same page and the project is running smoothly.
9. Code management
Many clients also don’t think about the time developers need to merge code and deploy the app to an app market. Another thing developers need to do for your app’s quality is refactoring. If the project is big and takes over 300 development hours, refactoring is a must. Refactoring helps to keep code in order, reduce bugs, and make your project scalable.
10. Research
IT technologies evolve at a crazy pace and new libraries, frameworks, operating systems, and programming languages appear constantly.
A library can change or become outdated, meaning developers will need time to learn a new one. Developers will need time for research to keep your app up-to-date.
Mobile app development process: Product part
The product part is complex, and it consists of lots of small things we all take for granted as users. But the devil is in the details.
These small features play a huge role in the overall impression of your app.
11. Offline logic
Clients often forget about offline logic. However, it’s a big feature that’s necessary in 90% of cases.
While implementing offline logic can take a decent amount of hours, it is still very important for most modern applications
How will your app function if there’s no internet? Will it save information and upload it once there’s a connection? All this needs thorough analysis, as you want to make only the most valuable features work offline.
Note that implementing offline logic can take a decent amount of hours in your cross-platform or native app development process.
12. Errors
Your wireframes with all the transitions may be ready, but you probably haven’t considered all possible things that can happen in your mobile application. Often, nobody actually thinks about what happens after an error occurs.
For example, what happens if there’s not enough memory on the device? What do you show to users if they’ve typed the wrong password? You need to think about this and also hire a product copywriter to invent your brand language and write texts for all errors, actions, and alerts.
13. Data management
Let’s say you want to create an ecommerce mobile application. You have a long catalog of products, like any retail app would. How should you show this catalog if you have dozens or hundreds of products in a single category?
The answer is pagination. Pagination allows your app to load information in small portions. This increases the performance and makes it more convenient to use. Pagination is a very important feature that people often forget about, and it takes at least eight hours of development.
14. App market requirements
I’ve often talked to clients who had no idea about app store requirements and how strict they are. In order to release your mobile product to the Google Play Store or the Apple App Store, you need to follow their rules. Otherwise, they won’t release your app at all.
Moreover, Google and Apple have some rules and policies that can be unexpected and unpleasant for you. For example, if your monetization strategy is in-app purchases, be ready to share your revenue. Google and Apple each take around 30% of each payment.
If users are able to generate their own content, for example post photos or videos, you’ll need to add a button for complaints and process them in an admin panel.
15. Analytics
Analytics is one of the most important parts of an app. Unfortunately, many clients don’t know this and don’t treat it seriously, and it costs them user loyalty later. It’s the first thing you should include in your first release. There’s no point in producing an app if you haven’t implemented any analytics.
Analytics give you tons of benefits like tracking user behavior, your app growth, its performance and KPIs. All this is valuable information that helps you understand which direction to go next.
The most popular mobile analytics services are:
- Firebase
- Apple App Analytics
- AppsFlyer
- Mixpanel
- Flurry
- Localytics
- Amplitude
Application design process
16. Animations and layout
Design is an important part of your app, but its complexity can vary. If design is one of the core selling points of your app, then developers will need to spend more money on animating loaders and view elements. These aren’t just images — these elements are complex animations that require development time.
The time it takes developers to make an app look nice often surprises clients, but you should remember that design isn’t just about the layout: it also takes time to cut all elements, put them in the right places, and animate them according to iOS or Android guidelines.
Final thoughts
In this article, I provided you with a guide to mobile app development and everything you need to do to prepare for it. There are lots of particular qualities, internal process of developing an app, and unexpected details that aren’t obvious to those who work outside the mobile industry. In this article I’ve tried to point out everything you need to know about the development process so that you can take it into consideration when planning your budget.
To sum up, the whole development process is broken down as follows:
- Development: 30–40%
- Deployment: 3%
- Communication: 15–30%
- Merges: 5–8%
- Refactoring: Makes sense if your project takes over 300 hours
- Research: Varies
- Design: 10–20%
I wish you good luck with your project! If you need to get a mobile app developed or would like a consultation, don’t hesitate to contact us. We like when our clients are deeply involved in creating their products.