At CCV Lab I was the mobile lead and one of the projects I worked on was SalesPoint.
Functionality
SalesPoint is a dynamic app which can be a “simple” payment initiation app or a full blown electronic cash register. It can run on Android and iOS devices and integrates with specific hardware (printers, terminals, etc.).
The app is designed to be offline first to allow user to initiate payments in any conditions while making sure no data gets lost.
Technology
The apps are pure native apps: Objective-C and Swift on iOS and Java and Kotlin on Android. The MVP and MVVM patterns were used for the view logic. Realm database was used for data persistence.
Stability and performance were key quality attributes as this app tends to be open longer (an entire workday) in comparison to “normal” apps. The app also had to run on devices with limited capabilities and needed to be more optimised than on your average Android device available in Western Europe.