Mobile Application Development

With the explosive growth and widespread adoption of mobile telecommunications, it is clear that industrial digitalisation is also extending its boundaries,

requiring powerful hardware built into modern devices. As a result, the question of whether the development or migration of a new system should be able to support mobile devices is not even raised. These conditions are reshaping development methodologies and presenting IT service providers with new challenges.
The mobile application development flow used by Egnosis has been derived from industrial software development, taking into account the characteristics of devices and user behaviours.

1. I Need an App. I Need a Business Analysis

Beyond the classic needs assessment, the first round of mobile development consultancy focuses on defining the type of need: a completely new need or an extension of an existing industrial application for mobile devices. This greatly distinguishes the further steps in the process. Adding a mobile version to a given system already limits the scope of the application. An existing environment is given, in most cases, the desktop look and feel, security requirements or even the back-end.

For a new service request, it is important to map the business need and purpose first, exploring the basic context: e.g. industry, user volume and types, data volume, security, scalability, technology constraints or preferences, and sustainability.

2. A Picture Is Worth a Thousand Words. Design and Art

Moving onwards from the business analysis, we favour the instant sketching method in the next round. Our experience is that in the case of mobile development, it is more efficient to use wireframing early on before devising complex architectures, as it allows us to quickly discover use-cases, user stories, functionalities and even matters of security tech. This is the stage of the process where art, creativity, and engineering meet. Often the client expects the full functionality featured on the large screen to be incorporated into the mobile application. This is where you have to find the middle ground between the client’s needs and the capacity of the mobile phone. It’s a real work of art and a sense of achievement when a spectacular and technically feasible design is created.

3. Architecture

We prefer the use of component- and microservice-based architectures.

Regardless of whether the application is cross-platform or not, we avoid code duplication and monolithic blocks in our designs and prioritise the sustainability and scalability of the application.

Our experience has confirmed that the programming languages and components used for mobile software development are far from being mature enough that they wouldn’t need to be updated for years. Therefore, we are cautious about including often overloaded 3rd party components.

4. Development, Testing, QA, Repeat

We follow the standard Agile development approach (more on this in the Industrial Software Development chapter), separating front-end and back-end development according to the competencies of our staff in order to increase efficiency. These are complemented by functional testing and quality assurance procedures.

There are also specific cases when we extend and prepare an existing industrial solution for mobile use.

On occasions as such, the transformation/migration to the back-end service-based delivery is a separate development cycle.

5. The More Devices, The More Settings. Deployment

It’s like a vicious circle. Thousands of mobile applications are being launched at super speed, so platforms and operating systems are under constant pressure to develop. Hardware vendors are also fighting for market dominance in their urge for compliance. Therefore, target devices and environments are changing swiftly. In response to this, a multi-versatile test environment is needed, where automatic deployment processes allow us to instantly track whether the deployment of a version was successful and be notified at once if our tests fail or if the application does not work as intended due to the particularities of a device. Have you ever wondered how many Android or iOS versions are released each year?

6. Training, Support, Maintenance

Our experience confirms that training in the case of mobile application development is much simpler than in the case of industrial systems. On the one hand, it is likely that due to the early design and wireframing phase, which requires intensive customer presence and interaction, the customer is already “warming up to” the application. On the other hand, industrial solutions compressed into mobile applications aim to reflect a part-functionality and are therefore more straightforward and transparent, making the learning process faster.

Support and maintenance are more complicated as accelerated operating system updates often override environment settings, the phone’s default operation or security settings, and the vast number of installed applications significantly reduces the devices’ hardware capacity. For this reason, all these aspects must play a critical and mandatory role in the architecture and design phase.

Our product support methodology is also aligned with the industrial software development practices in the case of mobile applications. Through customer reporting channels, our colleagues are at our customers’ disposal at every issue, from identifying the problem to troubleshooting, scheduling updates or delivery.

“We have worked together on a project of The National Institute of Occupational Health in Norway.

Egnosis, as part of the international project team, was responsible for the backend work in addition to an Angular-based frontend module. The Egnosis team is skilled problem-solvers and always knows which questions to ask to get to the bottom of things. They met every deadline that was set, and all deliveries were of the highest standard.”

Espen Bjaarstad
CEO – Netlab AS, Norway