Not a common approach to build just a module, not the whole separated application. Required to have a module on Android, iOS, backend with Agent web interface that cannot work alone, but should be integrated by providing an interface to an existing (and constantly maintained and extended) platform (web + mobile + services).
Modularity has been achieved in a few different ways, dependent of the platform and a part of the system. On mobile devices, we built modules handling all the required app logic and scenarios that were exposing only a minimal interface to the “host” application. Mobile modules do not communicate with existing backend services but use a dedicated backend application and service responsible for both the messaging logic and communication with existing services. That backend application is architectured in a way that can serve as an independent module of another application that communicates using a specific interface. For additional compatibility, we also added an incoming webhook capability to the backend service that allowed external systems to trigger specific actions inside the app. Last but not least, the web interface part does also contain a non-standard integration approach since it’s a Vue.JS app embeddable into an AngularJS application (since our Client’s existing web solution was using AngularJS in the parts we needed to connect to).