Evaluating a mobile app architecture and principles

Things to consider while deciding app architecture

Aaina jain
Swift India
3 min readNov 22, 2018

--

Mobile app architecture is a set of patterns and techniques which developers follow to build a fully structured mobile application.

Credit: droidsavvy

Evaluating architecture:

While making architectural decisions, we need pragmatism, neutrality and understanding of the bigger picture.

  1. Components of the app should be nicely organized and decoupled.
  2. Architecture should speak about the business domain of the project. Is it a food delivery application Or maybe one for financial institutions?
  3. Scalability: How easy it is to add more features? Having an elegant solution might save us a lot of time and money in the future.
  4. How the architecture fits the requirements of the business domain. Is it a heavy data driven app? Does it have a lot of forms that require user input? What is the complexity of the app that we are going to build? Is it a “5 screens” app or “20 screens” app?
  5. Will team be able to work independently on features, without blocking themselves?
  6. What are the key components that we want to test?
  7. What is the deadline and budget for the project? What is the trade-off that we must do in terms of quality — time of delivery?
  8. Consider all network scenarios.

Principles:

Portability

Portability is the ability of the system to react to the environmental changes. In case of Mobile applications, the change in environment may be frequent considering the technology and market demand changes. These changes may result in change in servers, database, etc. The good Mobile Application Architecture ensures the system to be portable enough to respond to these changes keeping the impact of change at minimal level.

Maintainability

Considering the requirement change due to change in environment i.e. market demand or the ease with which a component can be modified to correct faults, improve performance, or other attributes, always there is a need of maintenance for the Mobile Applications. A Good Mobile Application Architecture ensures the high maintainability of the mobile application. It reduces the efforts and complexity of the change implementation which is in favor of the developers.

Manageability

How efficiently and easily a software system can be monitored and maintained to keep the system performing, secure, and running smoothly.

Reusability

Reusability always leads to faster application development and structured development approach. Good Architecture always considers the reusability aspect during design of components and protocols.

Testability:

The application needs to undergo testing process in order to ensure the consistency of the application under various conditions. This raises a need of regression testing for each component of the system. Good Mobile Application Architecture ensures that the each component is separately testable.

Security

Security of the data is one of the major non-functional requirement of the application. The application architecture should be robust enough to secure the data consumed by the application. The architecture of Mobile Application should be in sync with organization’s security ecosystem. Any data stored on the device (in-memory or persistent) should be encrypted to ensure security. The organization may opt for Mobile Device Management (MDM) tool to impose security constraints on the application. The application architecture should be able to accommodate any interface to such Mobile Device Management tools.

Performance

The performance of application plays an important role in mobile applications. Mobile users expects quick response from the application specifically compared to desktop/web applications. If the application is taking long time to retrieve or display the details, there is a high possibility that the users would not like the application and they might stop using the application. A mobile application architecture should ensure to meet the performance expectations of the users.

Key questions for identifying the appropriate architecture:

  • Who will use the app?
  • What type of experience do users expect?
  • What functionality is required?
  • How important is multi-platform compatibility?
  • Does the app need to run offline or when the connection is bad?
  • Are there industry-specific requirements?
  • How much time do you have to build the app?
  • Does your team have the necessary skill sets?
  • What’s the total cost of ownership?
  • How soon do you need new device or OS features?

Thanks for reading article.

You can catch me at:

Linkedin: Aaina Jain

Twitter: __aainajain

--

--