Building Mobile Apps, Stage 3: Development & Tests
This stage of the app-building process takes place when the UI design is almost ready. Finally, the team can start the app programming and testing.
What does it take to build mobile apps? How do we work? And what is a product owner’s role at this point? Find that out.
Note: This blog post focuses on the third phase of the mobile app development process. Get to know what takes place earlier and read about: the Product Discovery phase, the kickoff meeting, and designing the UX/UI projects.
The introduction to building mobile apps
What are mobile apps?
To many people, a mobile app is just a program they have on smartphones or tablets. But as a member of the development team, you need to have a more technical perspective.
Essentially, most apps consist of two main elements: backend with API and frontend. Each of these elements has a different role to play.
Everything that mobile app users see and interact with is the frontend. The whole interface with its buttons, graphics, fonts, colors, etc. All the visible components are made by developers who spend most of their time on this part of the project. So, when you open your mobile apps and see the search bar, navigation, or some sections with different types of content – you know who gets the credit for creating it.
It’s a hero that stays in the shadows – users can’t see it but a lot of apps wouldn’t work without it. Its main role is to store, process, and deliver the data.
If you want to let customers log in to their accounts, search for products, make orders and pay for them, then you need a backend. It also allows you, for example, to enable live chat, collect analytics data, send notifications, add and remove products, display the recommended items, etc.
You search for a red jumper in the eCommerce app, so you enter the phrase “red jumper” into the search bar. This request is passed to the backend. It stores the data concerning all the products that match this phrase. The backend sends these results to the frontend, so you could see them.
When some kind of data isn’t stored on the backend, this means the frontend cannot show it to users. Let’s say, you display one jumper and want to see similar products. But the backend doesn’t have any info about such products, so there’s no way for you to see it.
The important part of the backend is API. This abbreviation stands for the Application Programming Interface. API connects two worlds – backend and frontend, enabling them to communicate. When the frontend asks the backend for the results, first it goes through an API that processes this request. It allows the backend to understand it and deliver the needed elements.
QA testing in the development process
Writing code and testing are like Flip and Flap, Timon and Pumba, and Romeo and Juliet. Inseparable. There are two types of tests used in the mobile app development process – manual and automated.
After implementing or editing each element of the app, our QA specialists test it manually on mobile devices. Depending on a goal, they run different tests.
- The most often used one is a functional test that comes after adding a new element to the app.
- If there was a bug detected and the developer reports it’s fixed, the QA expert runs retests and regressions.
- Before the product launch, we also conduct an acceptance test.
It’s crucial to test iOS and Android apps separately. So, it doesn’t matter whether you build native apps or cross-platform one. In each case, testing takes the same amount of time. So, even with Flutter apps, testers check the software on two operating systems.
Automated testing is based on test scripts written usually by the QA or software engineers. Unit tests are the most common example of such tests. Developers run them after every implementation to see if everything works fine. They are recommended for complex projects when there are many similar elements. Automated testing allows teams to save a lot of time and fully focus on aspects that require a human outlook (e.g., exploratory tests).
These tests can be easily conducted in a CI environment (like Bitrise). Such an investment may seem high at the beginning, but it pays off in the long run. Especially, if mobile apps often require changes and it’s necessary to check the same elements over and over.
How do we work?
The most common methodology in software development is probably agile. At Holdapp, we use two agile-based frameworks – Kanban and Scrum. They make this process more flexible and allow us to adapt to changes faster.
Building mobile apps in SCRUM
When reading about app development management, you’d probably come across such terms as iterations or sprints. They are related to SCRUM. What should you know about them?
- They usually take up to around two weeks.
- Every iteration is focused on developing and testing particular elements of the app.
- The goal of the sprint is called a definition of done.
- In each sprint, we have a few meetings a.k.a. ceremonies.
SCRUM iteration workflow
Every SCRUM iteration is divided into a few stages. It optimizes the work, makes it easier to control the progress, and lets us improve our performance.
1. Sprint planning
It’s the very first meeting in the sprint. During the planning, the team discusses the goal of the upcoming iteration (definition of done). Everyone needs to understand what has to be achieved, how to do it, and how long it should take. As a result of this meeting, the team must have an updated backlog with info about the requirements and priorities.
2. Daily meetings
They take around 15 minutes. Everyone says what has been achieved the day before and what they are going to do over the next hours. The team also talks about the obstacles that slow down the work. Who takes part in this meeting? Usually, a project manager (scrum master), developers, and a QA tester.
3. Backlog refinement
It takes place in the middle of the sprint. First, the product owner prepares the initial backlog for the next iteration. Then, the team looks into it and estimates how much time they need to complete the planned tasks. The ultimate goal is to formulate the final sprint backlog.
4. Sprint review
The moment when stakeholders come in. The sprint review is when developers show the outcomes of their work. They present what has been done, what problems came up on the way, and how they solved them. The purpose of this meeting is also to determine what to do next and whether the backlog needs to be modified.
5. Sprint retrospective
It’s when the team meets together to share their opinions on what went well in the past sprint and what needs to be improved. The participants define what they want to change in the next iteration to make the development more efficient.
Preparations for the app development
You know the elementary terms and methodologies we use. Now, let’s move on to the tasks that developers must complete before typing the first line of code.
Phase 1. The team analyzes the materials provided by the client (such as plans for an MVP, information architecture, KPIs, etc.). They have to make sure that the client’s objectives are feasible. This process involves consultations with the product owner and the API/backend team.
Also in this phase, the team leader creates the initial Gantt chart or the product roadmap, depending on the project. The point is to make it clear what you want to achieve, when, and how.
Phase 2. If changes in the MVP are required, developers adjust the project accordingly. Their next task is to choose the best technology stack and identify the risks and milestones (key elements of the project). They also need to choose the best tools for the job.
Phase 3. When the final version of the MVP gets approval, the roadmap is modified to reflect the current scope of the project.
Phase 4. The project manager writes user stories that explain what users want to achieve. It helps developers understand the purpose of each element that they must implement.
Meanwhile, the UI designer prepares wireframes and later, the final designs. The client accepts them before the development begins.
Phase 5. The first draft of the backlog is created. It shows the most and the least important tasks that the team must complete.
App programming & tests
When all is set and done, mobile app developers start programming. What does this process usually look like?
- Project manager adds a task to the Jira board.
- Developer creates the required element of the app.
- Developer opens a merge request to let others know about changes in the code.
- The code gets verified in a CI environment (e.g., Bitrise or Jira). This process includes static code analysis, unit tests, and integration tests, among others. CI tools also check the formatting and verify if the code is compliant with the requirements.
- Another developer does a code review and suggests changes if necessary. What is a code review? When one developer completes the task, another one checks their code. They look into its logic, and architecture, verify whether it is adjusted to the requirements, and try to detect the errors. They also make sure that the code is clear, easy to understand, and not too long.
- Developer merges the code.
- The project is moved to a main branch which gives testers access to the app.
- Builds are moved to testing.
- QA testers check the app and report bugs. This process gets repeated until all the app’s elements are created and verified. Meanwhile, at the end of every month, our project manager sends a client a report. It informs them what tasks have been completed and how much time it has taken
- The client reviews the product and accepts it or suggests changes.
- After the approval, the release procedure begins.
- Developers run a build in the CI environment.
- The code undergoes further internal and external testing (in the case of iOS apps, it takes place via TestFlight).
- The app is finally reviewed by Apple App Store and Google Play Store. If it receives approval, the product becomes available in the stores.
Every project is unique, so this procedure can slightly differ in every case. For example, sometimes a UX designer is more involved in the programming stage. In other projects, releases take place irregularly. It all affects the flow of the process.
The next step is the product launch in app stores. It requires some engagement from the client’s team, such as copywriters, legal experts, or graphic designers. Read our guides to submitting Android apps to Google Play Store and iOS apps to Apple App Store and get ready for this.