12 Key NFR Considerations for Mobile Application Development

Insight categories: ArchitectureMobilityTechnology

While ideating any software, functionality and its implications on the business and revenue are typically major focus areas. Functionalities are further broken down into requirements, then features, user stories, and integrations. But when it comes to actually developing that software, another mindset takes over. The key focus on the architect’s mind is more often, “What are the non-functional requirements here?” 

Non-functional requirements (NFR) are the criteria or parameters that ensure the product delivers on the business requirements – speed, compatibility, localization, and capacity, for example. While functional requirements define what the app should do, NFRs define how well it should perform and meet user expectations. 

The Importance of NFRs 

NFRs are an essential aspect of software development and act as base requirements around which the system architecture is designed. System architecture designed around a well-established NFR provides a road map for designing software architecture, implementation, deployment, and post-production maintenance and updates. 

Many known NFRs were defined before the first mobile application was developed, making it essential that you contextualize these NFRs from a mobile development point of view. But which of these non-functional requirements are applicable to mobile application development, and what considerations must you keep in mind when planning your own mobile app project?

In this post, we’ll explore how NFR impacts mobile application design, development, and support, looking at each requirement and what it involves in turn.

NFRs Through the Lens of Mobile App Development

These are the non-functional requirements to consider when designing mobile applications. Some are applicable only to mobile, while others vary only slightly from web app development NFRs.

Accessibility 

Accessibility as an NFR refers to how the app supports users with special needs or is used under specific circumstances; for example, User with Low Vision. While there are many accessibility requirements to meet in mobile application design, using voice commands to control and navigate through the application is a particularly important NFR. Additionally, accessibility can be increased by adding special gestures such as double tap and long press to perform essential functions. 

Adaptability 

In the context of mobile application development, if an application meets all its functional requirements under the following conditions, it meets the adaptability NFR: 

  • Support for a wide range of screen resolutions. 
  • Support for a wide range of Manufacturers (In Android). 
  • Support for the maximum possible backward compatibility OS versions. 

Adaptability can also be an NFR for ensuring the application runs smoothly under low bandwidth conditions. 

Recommended reading: Selecting a Cross-Platform Solution for Mobile Application Development

Availability 

If a mobile application is directly dependent on backend API and services to execute its functions, its availability is dependent on the availability of those backend services. However, in a mobile context, availability as an NFR pertains to the execution of possible functions even if the backend API is not available For example, can the user perform an operation that can be synchronized later once services are back online? 

Compliance 

Compliance in mobile applications largely revolves around the protection and privacy of user data, with requirements set out and enforced by HIPAA, GDPR, etc. If privacy and security NFR is achieved on the backend and in mobile applications, in most cases, compliance is also achieved (unless there are specific compliance requirements). 

Data Integrity 

In mobile apps, data integrity involves the recovery of data for the smooth execution of the application, with the expectation that the app will recover and retain data as intended when users change the device, a new version of the application is installed, or the user performs operations in offline mode. 

Data Retention 

In mobile applications, it is expected that data is synchronized with backend services, and for that reason, it’s generally not advised to keep large-size persistent data locally. “No data retention” as an NFR applies to mobile applications. However, when there is a requirement to keep extensive data in local persistent storage, the volume of data – not the duration – should be the driving factor for the data retention NFR.

Deployment 

Mobile application deployment occurs mostly in stores provided by Android and Apple, which follow their own process to make applications available. Updates are not available to end users immediately as a result. Deployment as an NFR in the mobility context (apart from its basic specifications) is focused on informing users about the availability of new versions and stopping application usage if mandatory updates are not installed. Both the App Store and Play Store provide configurations to prioritize mandatory updates. Still, the system can be designed to enforce mandatory updates for a smooth application experience to the end user. 

Efficiency 

Unlike web or backend applications, mobile applications run on mobile devices with limited resources such as memory. Given that they are also battery-powered, efficiency is an important NFR. It is a must for the mobile application to run efficiently, with a low memory footprint and battery consumption.

Privacy 

Privacy is an important aspect of mobile applications. In terms of privacy NFRs, the following are important considerations: 

  • Media files containing user-specific data should be stored in the application's private storage and encrypted. 
  • Media captured from the application should not be shared directly. 
  • Copying text from the application should not be allowed. 
  • Screenshots should not be allowed. 

Reporting and Monitoring 

Reporting and monitoring NFRs are crucial from a support and maintenance perspective. Since mobile applications are installed on users' devices, it's difficult for the support team to have direct interaction, screen share sessions, or access local log files. Remote logging and analytics solutions such as Firebase or Countly are needed for that reason. These solutions can capture events, user actions, and exceptions, and can help to analyze application usage patterns. 

Security 

Privacy and security are interlinked and in terms of security NFRs, the following are important considerations: 

  • The application should be signed with appropriate private certificates, with a policy guiding certificate storage and usage. 
  • The application should not install on authorized/tampered versions of operating systems.
  • Data should be encrypted both at rest and in transit. 
  • Application access from other applications should disabled by default. 
  • All other platform-specific security guidelines should be followed.

Usability 

Due to the small form factor, usability is an important NFR. In general, users should be able to navigate through applications and access important functions with ease, most often with single-hand operations. UX design should also consider having a minimum scrolling screen, or search functionality for scrollable content, and quick navigation for important functions. 

Key Takeaways

Addressing NFRs requires a proactive and comprehensive approach from mobile app developers. It begins with thorough planning and analysis to identify the specific NFRs relevant to the project. Setting clear and measurable targets for each requirement is essential to ensure that the app meets user expectations.

Throughout the development process, consider NFRs at every stage. Developers should continuously evaluate the app's performance, security measures, and usability, making necessary adjustments and optimizations to meet the desired requirements. Close collaboration between developers, designers, testers, and stakeholders is crucial to effectively address NFRs and ensure a high-quality mobile app.

Rigorous testing methodologies, such as performance testing, security testing, and compatibility testing, will help validate the app's adherence to the defined NFRs. Automated testing tools and frameworks can help streamline the testing process and identify any potential performance bottlenecks, security vulnerabilities, or compatibility issues.

Keep in mind that NFRs are not a one-time consideration. As technology evolves, user expectations change, and new challenges arise. Mobile app developers must continuously monitor and adapt to emerging trends and technologies to ensure their apps meet evolving NFRs.

Prioritizing NFRs and integrating them into your development process will help your team deliver mobile apps that not only meet functional requirements but also excel in performance, security, usability, compatibility, and scalability. Such apps have a higher chance of success in the highly competitive mobile app market, delighting users and establishing a strong reputation for the development team.

More helpful resources:

Author

Abhiishek-Gedam_5259851_4485152

Author

Abhishek Gedam

Principal Architect,Technology

View all Articles

Top Authors

Yuriy Yuzifovich

Yuriy Yuzifovich

Chief Technology Officer, AI

Richard Lett

Richard Lett

VP of Healthcare Technology

Chet Kolley

Chet Kolley

SVP & GM, Medical Technology BU

Ravikrishna Yallapragada

Ravikrishna Yallapragada

AVP, Engineering

All Categories

  • URL copied!