A story of an effective app relaunch

A venture that turned into a project

In 2020, EGO Creative Innovations partnered with Inventive, a Texas-based custom software development company. Pocket Geek Auto for A Fortune 500 Global Automotive Insurance Company has been one of our first joint projects, but also one of the most fascinating ones.

Before partnering with us, Client had a version of the app they weren’t satisfied with. After re-evaluation, they decided to change the development contractor and remake the app from scratch. To find a new partner, they launched a tender.

To take part in a tender, a participant company had to come up with a proof of concept that would meet technical requirements and could be used for further development. We felt it was a challenge that we as a mobile application development company could accept, even though there was no guarantee that we’d get the project.

Pocket Geek Auto is one of the apps that helps its users to take care of and maintain the cars they own, sell, or service.
Our challenge was to create an app that could be useful for different target groups: dealers aim to increase service centers’ revenue, while consumers look for ways to improve their ownership experience.

Duration

1,5 years

Team

Project Manager

UI/UX Designer

Tech Lead

4 Flutter Developers

QA Engineer

Solution

We made a Proof of concept app within three weeks. In four months, we had the app ready for dealers. In October 2020, the app went live on the app stores.

Scope of work

Solutioning, UX/UI design, prototyping, mobile app development, and quality assurance for iOS and Android.

What is Pocket Geek Auto

Features and challenges.

Everybody knows that cars need regular maintenance. Every car has a manual on how often you should replace belts, change oil, check your tires, and so on.

But nowadays people hardly use manuals. It’s hard to keep up with all that information and know how important it is to inspect a particular part within its service interval. Pocket Geek Auto helps with that.

The app’s business model is based on keeping customers connected with car dealers and services. So the app must offer value to all of them.

As a customer, with Pocket Geek Auto you can:

–  keep an eye on the condition of your car and other cars in your family
–  be aware and get reminders of the required maintenance and repairs
–  get customized vehicle service offers to address your current needs
–  see prices for repairs offered by the dealers in your area
–  store car service documents in the app

Car dealers and car service owners can also visually customize and offer Pocket Geek Auto as a part of their services.

Pocket Geek Auto helps car services increase visits to their service centers by delivering promotional offerings, diagnostic warnings, or maintenance alerts. At the same time, car dealers can locate their vehicles and get them into their inventory quicker, as well as monitor vehicles’ fuel/battery status to make sure they’re ready for a test drive, for instance.

So the advantages businesses get from Pocket Geek Auto include (but are not limited to) less paperwork, faster pre-delivery inspections, and shortened sales process.

Having expertise in the automotive industry, our mobile and web development firm was committed to achieving top-notch results for this product.

Project Setup

Initially, Client expected the proof of concept to effectively be a real clickable app ready to be used as a base to build upon. Since the functionality expected in this PoC was impossible to implement within such a tight timeframe, we suggested and eventually made a PoC app with an existing design and a new design concept with a clickable prototype to showcase the app’s potential.

In addition to that, the PoC requirements were often quite abstract. So, at this stage, we did a lot of clarification: communicated to figure out details and goals, discussed the flow and wireframes, and approved the suggested design concept.

Our dedication and attention to detail did not go unnoticed, the client was happy with the PoC and chose EGO and Inventive as their iOS and Android mobile app development partners.

The fact that we got this project shows yet again that caring about products we work on as if they were our own is priceless. I think it might be the main reason for a successful partnership in this industry.
~ Eugene Polyanskiy, CEO at EGO Creative Innovations

Working on a development project in partnership with another development team might seem to be a challenge, but we quickly figured out how to split our responsibilities and keep our pace.

We’ll use a "follow the sun" model where your team (and PM) work on the PoC during your day and our team (and PM) work on the PoC during our day. As best as we can, working on different features would be best so that we don't trip over one another too much.
~ An excerpt from the initial meeting notes

At the end of the day, designers, developers, and managers from both teams were involved. But it was Inventive that managed high-level issues, finances, and formalities of the partnership. They visited Client onsite, presented the results of our work, and made many management decisions throughout the project.

For instance, it was their idea to go with Flutter and Serverless; at that moment we weren’t a Flutter company and have been only applying it within internal projects.

We’ve been responsible for the project’s organization and implementation. We set up Jira and Confluence to follow the Agile methodology in project management. The quality assurance was also done exclusively on the EGO side.

The Story

An example of a user journey

play video

Take a look at a user journey when adding a vehicle in the app.
For the sake of data privacy the video was created in QA environment, hence the “Debug” label

Project Highlights

Working Day And Night

One of the project challenges was timing - we had to deliver the PoC before Christmas. Thanks to 15 years of teamwork experience, we managed to build productive communication with the Inventive and Client teams and sync our efforts to get everything done on time.

Project managers ensured the smoothness of workflow and communication between the engineers. Despite the time zone difference, we had daily standups with product owners, as well as regular demos, planning and design meetings, and requirements discussions to move forward as fast as possible.

The reason this project has worked out so well is the active communication between all three parties.
– Oksana Ivanova, Project Manager, EGO

Invitation Functionality

A use case: a dealer wants to share the app with a customer who has just bought a car from them. 
Our solution: A QR code that includes the information on the user and their car generated by the dealer after the car is sold. The new customer scans the code and downloads the app from the app store. Once the newly installed app is launched, it already contains the info on the user’s car and is branded with the dealer’s logo.

This elegant and nontrivial solution was implemented via Firebase dynamic links.

Back-end Realization

At the beginning of the project, Inventive evaluated modern back-end solutions and decided to go with Serverless and AWS Lambda. Yet, later we found out that some of the server-side features, such as push notifications, were implemented in those tools as standalone features to save on resources.

That forced us to supplement the mobile side with additional logic to make those features work smoothly.

Quality Assurance

EGO utilized a wide variety of testing methods and techniques on the project. Usability and UI tests were supplemented by smoke tests once a new version was complete, as well as  regression tests at the end of each sprint. Quality assurance has been done for multiple devices and OS versions.

EGO’s Anna is a very skilled and professional QA, really love the way she’s doing her job!
– Greg Bryant, Head of Engineering at Inventive

Once the app was released in the app stores, we focused more on further development, while quality assurance could be something to outsource to an Indian company. At some point, too many people from all teams had become involved in QA, and we suggested making one of our QA experts a team lead to coordinate all efforts.

Using Flutter

As of December 2019, Flutter was only one year old – Google released the 1.0 version on Dec 5, 2018. Initially, that caused concerns as we couldn’t be sure if this technology would meet our technical requirements.

However, back then, Flutter was extremely attractive because it eliminated the JavaScript bridge (offering native performance), could provide 120 frames per second for mobile app interfaces, and was used by Google in its apps and the front end of its Fuchsia OS, proving its production readiness.

Eventually, we mastered Flutter in a way that helped us complete the project goals without any trade-offs. And as we continued improving Pocket Geek Auto through spring 2020, new major Flutter updates – such as the Metal API support providing 50% performance growth for iOS apps – helped us polish things up.

API Troubleshooting

Pocket Geek Auto takes most of the information it processes and shows from the APIs. Multiple third-party APIs were used: one API contained technical details on the car maintenance actions, while the other one would only list the colors available for every car made.

Each time we bumped into a bug, it was a challenge to figure out if the trouble was with the code or with the data from an API. For instance, with the two above-mentioned APIs, there were situations when they had different naming approaches, say, for car makes, and we had to find ways to avoid data conflicts.

Current Status

The very first version of the app was ready in May 2020. As we continued to polish it up for the app stores, Client started introducing it to car dealers.

Client has been so happy with us and Inventive that they eventually expanded our partnership, and now we’re working on a web portal for car dealers. Moreover, they let us focus squarely on the app’s development, while bug fixing and support are outsourced to their Indian partner company.

[Thanks to] all the great people at EGO for being such a great partner. They really are part of our team.
Andrew Siemer, CEO at Inventive

The biggest feature to come is OBD-II data support: it will enable providing much more up-to-date and precise information about the vehicle’s current technical condition.

What we’ve been able to do is to compare success rates before using our app and after. And we have seen that 90%+ actually passed the test with our app.
Tim Waldenback for CW39 Houston on Nov 12, 2020
What we’ve been able to do is to compare success rates before using our app and after. And we have seen that 90%+ actually passed the test with our app.
Tim Waldenback for CW39 Houston on Nov 12, 2020

Tech stack and tools:

Mobile

Dart

Flutter

Google Maps

Mockito for unit tests

Server

Typescript

Mocha, Chai, Sinon for unit tests

MongoDB

Serverless Framework

Google Maps

Services and tools

Okta for identification

Spot and Postman for documentation

AWS for hosting

Twilio for SMS

Backend

Language

PHP

JavaScript

Python

Terraform

Framework

Slim (PHP)

ExpressJS (JavaScript)

Django (Python)

Libraries

Stripe

Google SDK

Django Rest Framework

Facebook SDK

Firebase

Propel

Unit tests

Django tests

Coverage

Services

Google Cloud + Kubernetes

Sentry

Graylog

Technologies

RabbitMQ

Docker

Databases

Redis

MySQL (Read + write replicas)

Frontend

Language

JavaScript

Framework

ReactJS + TypeScript

NextJS

Libraries

Redux

WebPack

i18n

Sentry

Stripe

Unit tests

Jest

Mobile

Language

Typescript

Dart

Framework

React Native

Flutter

Libraries

Mobx

Redux

Error monitoring

Sentry

Sentry

Language

PHP

JavaScript

Python

Terraform

Framework

Slim (PHP)

ExpressJS (JavaScript)

Django (Python)

Libraries

Stripe

Google SDK

Django Rest Framework

Facebook SDK

Firebase

Propel

Unit tests

Django tests

Coverage

Services

Google Cloud + Kubernetes

Sentry

Graylog

Technologies

RabbitMQ

Docker

Databases

Redis

MySQL (Read + write replicas)

Frontend

Language

JavaScript

Framework

ReactJS + TypeScript

NextJS

Libraries

Redux

WebPack

i18n

Sentry

Stripe

Unit tests

Jest

Mobile

Language

Typescript

Dart

Framework

React Native

Flutter

Libraries

Mobx

Redux

Error monitoring

Sentry

Sentry

2Fa authentication
for added protection
Vehicle malfunction
information
2All documents
in one place
Complete details
of the last trip
Monitoring the
regularity of service