AnyJunk rewrite their current mobile app for partners using . The key reasons for this were to a) add new features and b) bring the mobile development knowledge in house through a tight team collaboration. Based on my past experience with these kind of apps at Bizzby (an on demand services app) and my exposure to React-Native at Hoxfon I felt I could deliver on the company’s expectations.

AnyJunk is a very small but innovative award winning logistics company, with a great development team who share the same culture and values. Some pillars of the culture are the mutual respect for each other’s ideas and expertise, a healthy practice of code review and pair programming and the same passion for code quality and testing.

The server applications are written in and embrace principles of pure functional programming, leveraging the language’s strong types to enforce the correctness of the business domain logic. These principles strongly influenced the way in which the React web app is written. In fact the web app makes extensive use of , a standard library for functional programming in JavaScript that brings monads such as Maybe, Validation, and Either to React. The Javascript codebase is also using to infer data types and code correctness.

When planning the rewrite of their service partners’ mobile app, a clear objective was to deliver the best mobile user experience. Another important goal on the agenda was to not compromise the team values, philosophy and development practices. AnyJunk wanted to allow both Scala and React developers to review the mobile app’s code, develop in an iterative way coexisting with the weekly sprints and enable automated testing and continuous releases.