Characteristics of Modern Apps

The way of doing things are always changing. This is true in the mobile app realm as well. There are some characteristics that one should look for when developing modern apps that an article form the San Diego Times laid out very well. Check out the characteristics of modern apps below:

  • Mobile: Supporting touch interaction and adaptability to a large range of screen sizes and pixel densities. Factoring application functions into simpler, shorter workflows. Factoring applications into many apps. Factoring systems into APIs and apps.
  • Cloud-Backed: Project assets stored in the cloud catalyze collaboration between stakeholders. Using cloud resources for testing. Using MBaaS services such as authentication and notification. Avoiding hardware provisioning. Adopting more abstract and machine-independent application models for back ends in the form of PaaS.
  • Agile: Incremental, frequent releases. Rapid response to change. Teams working in an integrated fashion. Collaboration with social tools, and integration of users into the development process, including frequent user validation.
  • Continuously Integrated and Delivered: Applications must be integrated to run daily. Heavy reliance on automated testing. Integration of testing into the development cycle, and frequent and incremental changes to application users, potentially while preserving a managed degree of generational compatibility.
  • DevOps-Enabled: Developers own deployment or work seamlessly with Ops staff to release, test, refine and rerelease applications to users. Using self-service portals to enable many stakeholders to participate and have accountability for the application. A view of the application life cycle that integrates its performance through delivery to the end user.
  • App Store Delivered and Extended: The app is delivered in an app store and/or uses modules or off-the-shelf components and services. Components and extensions are surfaced in module or app directories where they can be discovered and integrated.
  • Analytics Infused: Developers get rich intelligence on application usage. Data on app modules and screen elements are used. Fielding experiments and tests with automation and quick turnaround (e.g. A/B testing of planned features).
  • User Experience-Centric: Focusing on the design and appearance of the application that brings the front-end designer and/or application programmer into the enterprise development process more fully than ever before.
  • Socially Oriented: Integrating of user-interface patterns borrowed from social networks, such as timelines, event streams, social graphs and other social metadata. Data is updated using event-based push-oriented patterns. Integrated search functionality. Seamless support for content elements such as images and video. Integration with consumer or enterprise social networks.
  • API Factored and Surfaced: The move to APIs involves a comprehensive movement to componentize and granularize back-end software in order to achieve composable and easy-to-evolve back-end platforms. Today’s API architectures use standardized, loosely coupled and lightweight REST call formats to reduce complexity and maximize accessibility.
  • Lightweight: Less complex software that is less time-consuming to install, learn and use. Software that uses a smaller resource footprint—including on disk, memory and CPU—and enjoys quick startup and recycling times. The trend toward lightweight can be witnessed in both the tools sphere, such as the increased use of editors or online IDEs, and in deployment architectures, such as the use of Web Servers in place of App servers, the use of NoSQL in place of relational databases, and the use of containers (e.g. Docker) in place of virtual machines.
  • Model-Driven: Rich use of visual tools to support abstraction in the development toolset such as for relations in a data model, business logic flows, and process flows. Some tools rely entirely on such approaches to construct applications, while others use them selectively in domain-specific ways for building various parts of the application such as the user interface or process workflow.

Original Source