The vast majority of mobile applications that you use day to day have some form of integration / interfacing to an external system. When you think about it even the simplest of games on IOS and Android are connected to a scoring system or to in-app purchases. Your social networking apps are connected to vast databases of data and selfies! The good news is that as mobile and web frameworks have matured so has the approach to integration. Most applications now have a service library that is abstracted from the user interface and functional logic. This means that many integration tasks are pre-existing and can be leveraged with minimal new development effort.
No need to fear the integration layer, just apply appropriate governance and resources to this area to ensure success. Depending on the scope, tools and standards you adopt on your project there will be many specific considerations for interface design. Additionally there are many sources (books, peer groups, forums) of general information that is well worth investigating.
Once you understand your scope and associated interfaces at a high level you can broadly group them, for example into the following categories:
- Outbound Interfaces (data travels from the back-end system to the mobile application)
- Inbound Interfaces (data travels from the mobile application to the back-end system)
- Cross Application Interfaces (data travels between two or more mobile applications)
- UI/Service Interfaces (data travels between the UI layer on the device and the service layer on the device)
Additionally the nature of mobile applications brings some unique challenges when it comes to integration:
- Communications are not reliable
- CPU is less than desktop
- Dynamic and storage memory is less than desktops
- Offline versus Online
- Data synchronisation
- Data residency & Housekeeping
- Security & Encryption
For each in-scope interface it’s important to document key design information. At a high level each interface specification should contain:
- The data schema – what data fields are being shared between applications, what fields are keys and mandatory
- The trigger – what makes the interface fire, is it user fired or scheduled.
- Logic associated with the fields
- Is the interface synchronous or asynchronous – does it wait for a response
- What is the error handling logic
- What is the frequency
- Security & authentication