project

Milence

UI/UX DesignEV ChargingAndroidKotlin
app

EVs, once a niche product, are now mainstream, with major automotive companies investing heavily in the development of electric cars, trucks, and buses. One of the critical components of the EV ecosystem is the charging infrastructure. Efficient and accessible charging stations are essential to support the growing number of EVs on the road.

The global electric vehicle charging station market, valued at 16.43 billion dollars in 2023, is projected to reach 257.03 billion dollars by 2032, growing at a CAGR of 35.6%. Increased EV adoption, government incentives, environmental concerns, and advancements in EV technology drive this surge.

Companies like Milence are at the forefront of this movement, providing innovative infrastructure to ensure that drivers of heavy-duty electric trucks have reliable and convenient access to charging facilities.

Year

2024

Country

Netherlands

Team

5 people

Commits

1214

Development

43 weeks

Challenge

Milence partnered with the payment terminal vendor to install custom software for processing payments and providing drivers with the ability to track charging progress.

Milence approached us to develop an application for their EV charging payment terminals. The goal was to create a robust, user-friendly app that allows users to manage their charging sessions, view statistics, and contact support seamlessly. The application needed to be compatible with the terminal's Android-based payment app and the Milence API.

Based on the project scope, we identified three key challenges.

1. UX/UI Design. The terminal's small display size, limited color reproduction, and localization requirements were major design challenges.

2. Security Adherence of Terminal Vendor. Ensuring the app adhered to stringent security guidelines set by Milence and their vendor was critical. This involved integrating with third-party systems without compromising security and passing Non-Disturbance Testing (NDT).

3. QA Testing. Testing the application was another challenge, especially in the synchronization with the client’s backend developer.

Product

Process

The Milence project workflow underwent all key stages from Scoping to Release.

During the Pre-project stage, we communicated with the client to understand their needs and expectations of the apps’ features and functionalities. The client came to us with ready-made research and a clear vision of how the app should look. They also prepared wireframes with screens for all future flows.

This provided a good start, and our task was to think through all possible corner cases, errors, and anticipate all possible scenarios. Since the app deals with clients' finances, the quality of our work had to be top-notch.

When working on IoT projects, we always ask for the actual device. That’s why Milence, along with the vendor, sent us the payment terminal and 2 testing payment cards (MasterCard and Visa) so we could develop and test all the features of the application directly.

Five members of the Stormotion team participated, including a Project Manager, 2 Andoid Developers, UX/UI Designer, and QA Engineer. It took about 43 weeks to deliver the app to the client.

Pre-Project - 10 Weeks

Scoping

Planing

Discovery

Agile Development - 31 Weeks

UI Design

UX Design

App Development

QA & Testing

Release - 2 Weeks

Release

Solution

The development process followed an Agile methodology, which allowed the team to adapt to changes and work efficiently.

To address the small display and color reproduction issues, our designer tested various color schemes and fonts in real-time on the actual terminal. We adjusted the element sizes and layouts to ensure usability and readability. Localization was handled by reducing font sizes and shortening phrases (after confirmation with the client) without breaking the layout. The result was a design that looked dull and dusty in Figma but was clear and readable on the terminal.

The development team maintained high standards by achieving 81% test coverage and top ratings in Reliability, Security, and Maintainability using SonarQube. The app successfully passed NDT set by the terminal vendor and met Milence’s security guidelines.

The QA Engineer closely collaborated with the client’s backend developer to conduct testing. This collaboration was essential because backend developer adjusted values on their side, enabling our QA Engineer to perform their tasks effectively. They ensured the app functioned correctly across all supported languages. The team also conducted interruption testing to verify the terminal's behavior during internet outages and tested the app's functionality after long idle periods.

Product

The key features implemented in Milence included: language selection, station/connector selection with status displays (e.g., occupied/not occupied) for charging, starting charging, monitoring charging statistics, ending charging, viewing final statistics after completion, contacting the support center, displaying errors at different stages, automatic session termination, and returning to the current charging session. We also added the ability to scan a QR code for remote monitoring of charging via smartphone.

Success for Milence from a:

PM Perspective

The absence of a critical protocol initially delayed the project, necessitating an extension of contracts with developers to complete the project. However, working in an Agile methodology allowed us to adapt and proceed with unblocked items, preventing the project from stalling.

From the project management viewpoint, key lessons include planning buffer time for dependencies and unforeseen issues, aligning corporate expectations, and conducting technical discovery before major product decisions. Close cooperation with Milence’s Product Owner helped overcome these challenges.

Development Perspective

The development team maintained high standards with adherence to security guidelines. They effectively managed protocol implementation challenges and delivered key features such as QR code scanning for remote monitoring and NTP (Network Time Protocol) integration for time synchronization.

QA Perspective

The QA Engineer effectively collaborated with the client’s backend developer for testing and conducted comprehensive tests across all languages. They ensured the app functioned correctly after long idle periods and during internet interruptions, adapting font sizes and phrases for better display on the terminal's small screen.

DevOps Perspective

The DevOps team utilized SonarQube for continuous code quality checks and successfully conducted non-disturbance testing to ensure stability during real-world interruptions.

Client's Perspective

Overall Business / Roadmap Perspective

Distributing the app presented significant challenges due to the need to comply with both client and vendor regulations. However, maintaining strong communication and flexibility with Milence’s Product Owner proved crucial for the project's success.

The delivered app is not only scalable and maintainable but also fulfills all client requirements, providing a robust foundation for future updates and enhancements. As a result, Milence is now closer to realizing its goal of establishing 1,700 public charging points across Europe.

Tech stack

  • Firebase

  • Sentry

our blog

All blog posts
How to Develop an EV Charging Station App: Practical Case

How to Develop an EV Charging Station App: Practical Case

testimonials

shuffle through the slider. drag or swipe.

Message us

By sending this form I confirm that I have read and accept the Privacy Policy

Thank you

Your message has been sent.

Our manager will contact you as soon as possible. Have a nice day!

To Home page

Contacts

Contact E-Mail

hello@stormotion.io

Stormotion Legal Office

Kauptmehe tn. 7-120

10114 Tallinn, Estonia

Stormotion Development Office

PE Oleksii Bulavka Zaporizke Hwy. 48/120

49040 Dnipro, Ukraine