Crypto wallet development
for a customer from Canada

  • Mobile Application

  • Fintech

Скрытый заголовок

We maintain and improve iOS and Android applications

Bitcoin
01

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.

Today the case is under non-disclosure agreements (NDA), but we have our customer’s permission to tell you about the project without mentioning its name. Much work has been done, we are extremely proud of the MobileUp team and want the whole world to know about its power. So we replaced all the screenshots with photos of our amazing specialists below.

02

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.

The client’s mission is to change people’s attitudes toward money worldwide. The team create a new reality where money works for you and not the other way around. We help to reach the goal.

03

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.

happy's developer
04

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.

Заголовок

Team member

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.

Team member

Grohotov Vladislav

iOS developer

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.

05

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.

Заголовок

team member

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.

team member

Dmitry Starchevsky

Android developer

Скрытый заголовок

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.

Developer is work

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.

Заголовок

Team member

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.

Team member

Vitaly Zharikov

Android developer

06

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).

Заголовок

Team member

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.

Team member

Ksenia Vilezhagina

QA engineer

07

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.

Developer's photo
08

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.

Заголовок

Team member

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 member

Platon Kultin

Project manager

09

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

10

Similar projects

  • Background image of the project
    Background image of the project

    The creation and development of CoinRoad — a service to track the cryptocurrency rate instantly

  • Background image of the project
    Background image of the project

    A new birth of RBC Investment

11

Collaboration

We 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!

By clicking 'send', you consent to our processing your personal data and agree to our privacy policy terms.

Your application has been submitted successfully

Thank you! We will contact you soon