Crypto wallet development for a customer from Canada
Mobile App
Fintech
Intro
We maintain and improve iOS and Android applications
Intro
This case could be a great example of how we can seamlessly integrate with the customer’s team
This project wasn’t our idea, but we are enthusiastic about it (100%) as if it was our own. MobileUp does its best to improve the product and implement the best practices and approaches.
Task
What initial data did we have at the start?
Initially the customer’s team asked for our help to audit the mobile application. We analyzed both platforms and provided a step-by-step plan to improve the project’s codebase. When the audit had been conducted, we realized that we were comfortable working together and decided to continue our cooperation. Let’s Look at how it went.
Do you have a similar task? Let's discuss!
Solution
What we are doing
There is a team consisting of 16 specialists working on the project: developers, QA engineers, analysts, and a project manager. Here’s what we’ve been working on.
iOS development
Improving architecture
Before we started, the application had a common problem for ios applications developed using the MVC (Model View Controller) architectural pattern, namely the Massive-View Controller situation, when a certain class in charge of a separate screen/screens grows to incredible sizes and becomes difficult to maintain and modify.
All practices and patterns of The Clean Architecture we’ve used can help to rebuild and structure the codebase gracefully for further work and scaling.
Templating and acceleration of development
The new logic is implemented using class templates from our ListController library. This allows not only to unify the approach to new screen development but also to increase the speed of introducing new developers to the project.
We also apply class templates while modifying already developed screens — the library allows us to use Clean Architecture seamlessly and split the existing code into well-read classes.
Заголовок
The most exciting thing about the project for me is the use of Clean Architecture: sometimes it may be difficult to structure the logic of interaction between app layers properly, especially if if they change a lot over time.
Design and implementing complex functionality this way allows not only to simplify the working process but also to get incredible emotions from work done.
Removing dependencies
MobileUp is trying to refrain from using private libraries in favor of using the Swift language standard mechanisms during the development. This allows us to reduce compilation time and app size.
At some point the SDK was added to the app as a separate library. The problem was that most of the tasks affected the basic entities of the application, which were right in the SDK. So, developers had to make changes in two different projects, and it significantly slowed down the process of applying changes.
Android development
Reconstruction architecture
We have done a large volume of work on refactoring the app code. Pay originally was a multi-module project with some feature modules and a separate web SDK. Unfortunately, it made the project difficult to upgrade and slowed down its development. MobileUp team improved the architecture, collected the code into one module, and then split it into separate modules again. Now all resources, new screens, and the SDK have their own modules. This implementation has reduced the build time from five minutes to one.
Заголовок
Thanks to code refactoring we’re getting rid of legacy and legacy code and apply new approaches. We have reduced the time for the build by dividing the project into modules, for example.
The approach to development has also changed. Today the application is on the way to getting the Single-Activity architecture when navigation between screens is done through fragments. The problem with the previous approach was that Activity starting was a completely asynchronous process. We had no guarantee of an instant start, it was impossible to control it fully. The Sesame library implementation speeded up the development and simplified the design.
Sesame is an architecture library developed by MobileUp. The library allows us to describe the complex logic of the screen compactly, manage transitions between screens, implement page-by-page data loading, validate input forms, etc.
Implementing modern solutions and approaches
We started maintenance of a completely new approach to UI organization adopted in Android development — Compose UI. Compose helps to describe UI in a declarative style, which makes it possible to reuse some implemented components on other screens.
Заголовок
The latest innovation was the gradual transition of new screens to a declarative description of the interface through Compose.
This solution could help to reuse ready-made UI components on other screens in the future, accelerate development and improve code readability.
Testing
We use 6 types of testing
We developed a test plan for the project and implemented six types of testing: functional ones (regression, acceptance, and exploratory testing) and nonfunctional ones (UX/UI testing, localization, and requirements-based testing). TestRail was used for testing automation. It helped to speed up running 900 test cases to test the functionality of the app.
MobileUp took into account many nuances when localizing the project and preparing for the release in Europe: different systems of payment methods and dates, middle names, and also such important things as putting the euro symbol after the amount (while the dollar symbol is generally used in front of amount).
Заголовок
I like the speed of the project development, it expands, grows, and new features appear quickly. It’s great to be a part of this and help the project grow.
UX/UI design
We help to build a design system
MobileUp helped to finalize the design language for the project — we unified elements and screens. We reworked some scenarios and improved the UX.
And what’s next?
MobileUp has been working on the development of the project. In a great company, we are confidently moving towards next-generation banking.
Заголовок
It’s incredibly cool that a code audit project has grown into a global collaboration and an international release in 27 European countries for us.
Team
Project team
- IOS-developers
Pasha Petrovich, Kolya Timonin, Dima Zaharov, Vlad Grohotov, Sasha Litvinov, Andrey Komarov, Ilya Chub, Yuriy Andrianov
- Android-developers
Arthur Artikov, Vitaly Zharikov, Dmitry Starchevsky
- QA engineers
Ksenia Vilezhagina, Juliya Boyko, Dasha Kurkina
- UX/UI designers
Zhenya Svavilnov, Sveta Beldenkova
- Project manager
Platon Kultin
Collaboration
contacts
0We are always glad to cooperate and work on new projects
Describe the task, and we will contact you soon. Or you can always text us on Telegram.
Let’s get to know each other!
Your application has been submitted successfully
Thank you! We will contact you soon