The Challenge
YLD embarked on a partnership with a prominent US retail company to create an invaluable internal tool.
The Approach
Our client wanted to change its price tag printing process as they were using a dated system that was time-consuming and unintuitive. The goal was to be able to update in-store prices quickly, be notified of price changes, confirm the in-store product availability using a mobile barcode reader, and generate new price tags using a mobile barcode printer.
At the time, React Native had been open-sourced recently and YLD were early adopters of this technology. We saw its potential to produce native apps that were performant, maintainable, and integrated well with existing stacks and team skills.
Since React Native was still relatively new, experimental, and perpetually evolving, we had to constantly and quickly adapt as upstream changes were happening. From implementing our navigation tooling (react-navigation didn't exist yet), to facing animation performance challenges. Alongside that, React Native's Flexbox implementation came with its quirks (fixed with v2 of Yoga).
We couldn't just use Expo which had just been released as we needed to maintain our own custom modules to interact with the barcode reader and the printer.
As the topic of state management was still hot in the React ecosystem, following the release of Redux the previous year, we chose to go all in with Redux and manage all the state and side effects with it.
The Deliverables
We created a maintainable, composable, and performant application. Our composition decisions allowed us to create new views and interactions quickly, without compromising quality.
It had a massive impact on the in-store operations as it simplified some slow and contrived tasks, freeing up valuable time for the store employees and enabling them to dedicate their efforts to creating exceptional customer experiences.
Closing the Engagement
Ultimately, our pragmatism and technical decision to adopt React Native, to overcome its learning curve and experimental nature, paid off massively. It wasn't just about delivering a one-time solution: we worked closely with their existing team of web engineers to ensure they understood the inner workings of the app, empowering them to maintain and adapt it in the future. This knowledge transfer ensured they could leverage the tool's capabilities effectively, even as their business continued to grow and change.