MV* Architectures - Responsible for the business logic of the application.

Overview

MV* Architectures

MVC

Model

Responsible for the business logic of the application.

  • Persisting application state: communication with the database.
  • Data management: data validation, reading, and writing data.

View

The View stands for UI components such as jQuery, HTML, CSS, etc.

  • Presenting data to the user.

Controller

Establishes the relationship between the View and the Model.

  • It contains the core application logic.
  • Gets informed of the user’s response.
  • Updates the Model as per the need.

MVP

Model

Responsible for the business logic of the application.

  • Persisting application state: communication with the database.
  • Data management: data validation, reading, and writing data.

View

The View stands for UI components such as jQuery, HTML, CSS, etc.

  • Presenting data to the user.
  • Handling user interaction.

Presenter

  • Gets the input from the View.
  • Processes the data with the help of the Model.
  • Passes the results back to the View after the processing is done.

MVVM

Model

Responsible for the business logic of the application.

  • Persisting application state: communication with the database.
  • Data management: data validation, reading, and writing data.

View

The View stands for UI components such as jQuery, HTML, CSS, etc.

  • Presenting data to the user
  • Handling user interaction.

ViewModel

Presents functions, methods, and commands to:

  • Uphold the View’s state
  • Operate the Model
  • Activate the events in the View itself

Goal

The aim of these architectures is to separate the responsibilities of visualizing, processing, and data management for UI applications.

Their goals are to increase:

  • Modularity
  • Flexibility
  • Testability
  • Maintainability

Comparison

Performance Evaluation

When we are testing the UI performance, MVP turns out to be the one with the highest reliability and lowest hindrance when it comes to rendering frames. Data binding in MVVM creates an additional overload that could drastically affect its performance when performing complex tasks.

Compatibility

When testing the patterns based on their compatibility, MVVM was the best of the lot due to its data binding which had a positive impact. MVP fared better than MVC, which had serious restating issues.

Modifiability

When we talk about design patterns, it is evident that it should be modifiable since that gives us the option of adding new features and strategies into our app.

  • Based on these factors, we observed that changes are very few in MVP and MVVM, with MVVM contributing a lot towards maintainability.
  • MVC tends to increase the number of changes in the majority of the cases.

References

In MVC, the View doesn’t have reference to the Controller while in MVP, the View has reference to the presenter and in MVVM, the View has reference to the View-Model.

Entry Point

For MVC, the entry point to the application is the Controller whereas, for MVP and MVVM, the entry point is the View.

Single Responsibility Principle

  • MVC does not follow the modular and single responsibility principle.
  • MVP and MVVM both follow the modular and single responsibility principle.

Unit testing

  • Limited support to Unit testing for MVC.
  • Easy to carry out Unit testing but a tight bond of View and Presenter can make it slightly difficult for MVP.
  • Unit testability is highest in MVVM.

Evax mobile app implementation

After comparing the three architectures, we found that MVP and MVVM are way better than MVC regarding performance and modifiability. Regarding MVP and MVVM, both are suitable for our application. We then judged that our application is not complex enough in order to add that extra layer of work/difficulty that comes with the implementation of MVVM. For this reason, we chose to use MVP architecture.

Use case 1: Update phone number

Use case 1: Add and delete a child

References

bacancytechnology.com geekforgeeks.org levelup.gitconnected.com medium.com

You might also like...

Mobile app for small food business have more results spending almost nothing.

ilunch Mobile app for small food business have more results spending almost nothing. Getting Started This project is a starting point for a Flutter ap

Nov 17, 2022

An application built using Flutter that can be used while playing board games if actual or physical dice is missing . This is a dual dice application.

diceee_utter A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Feb 3, 2022

This is an auction application just like eBay. Using firebase as the backend for signup & sign-in functionality. In addition to that, it's a two pages application with user bid in input and count down view.

This is an auction application just like eBay. Using firebase as the backend for signup & sign-in functionality.  In addition to that, it's a two pages application with user bid in input and count down view.

Nilam This is an auction application just like eBay. Using firebase as the backend for signup & sign-in functionality. In addition to that, it's a two

Nov 9, 2022

A Demo application📱 which stores User feedback from 💙Flutter application into Google Sheets🗎 using Google AppScript.

A Demo application📱  which stores User feedback from 💙Flutter application into Google Sheets🗎 using Google AppScript.

📱 Flutter 💙 to Google Sheets 📊 A Demo application which stores User feedback from Flutter application into Google Sheets using Google AppScript. Yo

Dec 28, 2022

A fully functional Movies Application built with Flutter. The application built with null safety and clean architecture, also uses OMDB API for fetching movies in the search item

A fully functional Movies Application built with Flutter. The application built with null safety and clean architecture, also uses OMDB API for fetching movies in the search item

Cinema DB Project Details This project uses null safety feature Project uses clean code architecture (Uncle Bob's Architecture) Project can run on bot

Oct 1, 2022

eDoc mobile application is designed as an example of a medical application that allows doctors to manage appointments

eDoc mobile application is designed as an example of a medical application that allows doctors to manage appointments

eDoc Mobile App (Demo Version) ✨ About The eDoc mobile application is designed a

Nov 14, 2022

This application was created using the Dart language and it is an application that contains a set of different questions and at the end shows you the number of correct answers you have answered , made by flutter

exams_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if thi

Dec 28, 2021
Owner
Mekni_Wassime
Mekni_Wassime
Learn how to build a multi-step form flow and how to use bloc to effectively isolate the presentation layer from the business logic layer.

Multi-page Form Flow Learn how to build a multi-step form flow and how to use bloc to effectively isolate the presentation layer from the business log

Sandip Pramanik 15 Dec 19, 2022
A state management library that enables concise, fluid, readable and testable business logic code.

Creator is a state management library that enables concise, fluid, readable, and testable business logic code. Read and update state with compile time

Xianzhe Liang 181 Dec 24, 2022
Business Card - Business Card App Built With Flutter

Business Card app. Basic single page app with functionality. For now you can cha

buraktaha 5 Apr 20, 2022
Dart package responsible to provide the basic resources to Lambda Functions with Clean Dart

AWS Lambda Core This package is responsible to provide the basic resources to all services; Usage pubspec.yaml dependencies: aws_lambda_core: <laste

David Araujo 1 Dec 2, 2021
Flutter Control is complex library to maintain App and State management. Library merges multiple functionality under one hood. This approach helps to tidily bound separated logic into complex solution.

Flutter Control is complex library to maintain App and State management. Library merges multiple functionality under one hood. This approach helps to

Roman Hornak 23 Feb 23, 2022
Open source Flutter-based template for a business assistant application

TallyAssist TallyAssist is an open source Flutter-based template for a business assistant application. It has been designed to use Google Firebase as

null 180 Jan 1, 2023
This mobile application is used to record sales and purchases for a business

This mobile application is used to record sales and purchases for a business, show which sales were paid and which ones are not hence provision of ease track of debtors. The app simplifies the overall business calculations for easy management, monitoring and control.

null 0 Aug 22, 2022
Venda is a location-based business platform

Venda (vendaround.com) Venda is a location-based business platform that enables people to discover businesses around them. With Venda, you can sell or

Ogwal Steven Albert 24 Jul 24, 2022
A Flutter project to show a personal business card. 📱ℹ️

Mi Card Mi Card Flutter (Practice Project) ?? ℹ ?? What is Mi Card Mi Card is a personal business card. Imagine every time you wanted to give someone

Masiha Jafari 0 Jan 4, 2022
Startup-Name-Generator-App-in-Flutter - Business Startup Name Generator App in Flutter

Business Startup Name Generator App #About APP: A simple mobile app that generat

AHSAN SIDDZ 0 Jan 30, 2022