{"id":7405,"date":"2019-01-04T12:46:00","date_gmt":"2019-01-04T07:16:00","guid":{"rendered":"https:\/\/www.konstantinfo.com\/blog\/?p=7405"},"modified":"2020-01-31T13:06:19","modified_gmt":"2020-01-31T07:36:19","slug":"mvp-vs-mvc-vs-mvvm","status":"publish","type":"post","link":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/","title":{"rendered":"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?"},"content":{"rendered":"<div class=\"top-container\">\n<span style=\"text-decoration: underline;\"><strong>Table of Contents<\/strong><\/span><\/p>\n<ul>\n<li><a href=\"#1\">What does  MVC (Model View Controller) model do?<\/a><\/li>\n<li><a href=\"#2\">MVC vs. MVP: When MVP Architecture comes to rescue?<\/a><\/li>\n<li><a href=\"#3\">What is MVP (Model View Presenter)?<\/a><\/li>\n<li><a href=\"#4\">MVC vs. MVVM (Model-View-View-Model): How do data models interact within a website?<\/a><\/li>\n<li><a href=\"#5\">A Wrapper<\/a><\/li>\n<\/ul>\n<\/div>\n<p>Orchestrating the Android Application into logical components, embracing a modular and logical approach to organize the application leads way to drifting away from monolithic model view controller (MVC) pattern and leveraging testable patterns like Model View Presenter (MVP) and Model-View-View-Model (MVVM).<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7408\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-vs-MVP-MVVP.png\" alt=\"MVC vs MVP MVVP\" width=\"711\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-vs-MVP-MVVP.png 711w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-vs-MVP-MVVP-300x128.png 300w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><\/p>\n<p>MVVM Cross as it has come to be known allows integrating MVVM design pattern to Android and iOS platforms. Now you know how easy <a href=\"https:\/\/www.konstantinfo.com\/cross-platform-app-development\" target=\"_blank\">hybrid app development<\/a> become when lucrative architecture is on a platter.<\/p>\n<p>Are MVC, MVP, and MVVM architecture simply presentation patterns? Are these mainly designed to redeem the complexity of the code, facilitate the process and alleviate the headache of making scrambled user-interface code achievable and clean?<\/p>\n<p>Without letting this conversation going around in circles \u2013 here is the crux:<\/p>\n<p>As the conversation will revolve around various layers of the OSI model, here is the perfect picture:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7411\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/The-OSI-model.png\" alt=\"The OSI model\" width=\"367\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/The-OSI-model.png 367w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/The-OSI-model-213x300.png 213w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/p>\n<h2><span id=\"1\">What does \u00a0MVC (Model View Controller) model do?<\/span><\/h2>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7407\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-model.png\" alt=\"MVC model\" width=\"542\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-model.png 542w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-model-300x149.png 300w\" sizes=\"(max-width: 542px) 100vw, 542px\" \/><\/p>\n<p>MVC clearly stands for Model (a collection of class that explains business logic) + View (user interface built up of HTML, CSS, and Jquery) + Controller (processes incoming requests) (Logically dividing a problem situation into three solvable bits). Model is a data and business logic. The view is a User Interface. The controller is a request handler. This cleverly excludes the internal information from the user who is simply presented with a user interface\/design. Being the most influential and important model to arrange the presentation layer in Android Applications, MVC eases testing and maintenance of applications.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7406\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-eases-testing-and-maintenance.png\" alt=\"MVC eases testing and maintenance\" width=\"586\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-eases-testing-and-maintenance.png 586w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVC-eases-testing-and-maintenance-300x121.png 300w\" sizes=\"(max-width: 586px) 100vw, 586px\" \/><\/p>\n<h3>A code excerpt showing Model<\/h3>\n<p>Here the Model is not tied to the view. Both are separate and easily testable. But still there are some controller concerns:<\/p>\n<ul>\n<li>The controller cannot be tested independently as it is tightly tied up to the Android API&#8217;s<\/li>\n<li>Controllers are tied tightly to the views. So in case of views are to be changed, changes have to be done in controllers first.<\/li>\n<li>An application created in MVC becomes difficult to be maintained as more and more code gets transferred into the controllers later.<\/li>\n<\/ul>\n<h2><span id=\"2\">MVC vs. MVP: When MVP Architecture comes to rescue?<\/span><\/h2>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7409\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-Pattern.png\" alt=\"MVP Pattern\" width=\"625\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-Pattern.png 625w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-Pattern-300x134.png 300w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/p>\n<h3><span id=\"3\">What is MVP (Model View Presenter)?<\/span><\/h3>\n<p>It is a derived from MVC and separated presentation layer from the business logic layer. No one would like to re-do entire view in case the data has to be retrieved from the database instead of web service? An application needs to be extensible and maintainable in separate and independent layers. MVP architecture separates the views from the data source into at least three different layers. These work independently and make the application testable.<\/p>\n<p>Model is same as in MVC. The activity or fragment is part of the view. Here the view interface can be implemented by making use of the activity.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7410\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-view-interface.png\" alt=\"MVP view interface\" width=\"783\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-view-interface.png 783w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-view-interface-300x143.png 300w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-view-interface-768x365.png 768w\" sizes=\"(max-width: 783px) 100vw, 783px\" \/><\/p>\n<h3>A code excerpt showing the use of Presenter<\/h3>\n<p>The presenter is not at all tied to any view, but with the interface. This poses the risk of leaking the activity (for more than 10 seconds can make solutions complex and ultimately make the app vulnerable) with long-running tasks and the activities that have already died can as well be updated! (You sent a request to the server that took 10 seconds but the user closed the activity within 5 seconds. The UI is updated by the time, the callback is called. And finally, the application will crash as the activity is about to finish).<\/p>\n<p>The fact that impels the bifurcation of concerns is that MVP is good in modeling the presentation layer but in case other layers are to be handled, there is still a requirement to have a better architecture.<\/p>\n<p>Adding a comic strip here (just to sense you\u2019re still interested in reading further)<\/p>\n<p>A &#8211; Why did you just sigh?<\/p>\n<p>B &#8211; I learned it in the computer club.<\/p>\n<p>A &#8211; You did?<\/p>\n<p>B &#8211; Yeah, sighing is the first rule of tech support.<\/p>\n<p>Here is a trick to migrate the application and code it smartly, making it easily updatable, testable and maintainable: MVVM Architecture. It will add the right dash of sweet and salty effect into the coded application. Catch the flavor here,<\/p>\n<p>C \u2013 I\u2019m in the mood for a bacon melt on toast.<\/p>\n<p>D \u2013 Why not have the salad bar instead?<\/p>\n<p>C \u2013 (Thinking*) Bacon Bits or Cheesy Chunks or Croutons<\/p>\n<p>C \u2013 (Mixes all Bacon Bits + Cheesy Chunks + Croutons) and says to D, \u201cMicrowave this for me, would you?\u201d<\/p>\n<p>Do you want the same thing to happen, when you are just about to start off with coding the application? Definitely, not agreeable.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7412\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/ViewModel.png\" alt=\"ViewModel\" width=\"952\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/ViewModel.png 952w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/ViewModel-300x77.png 300w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/ViewModel-768x198.png 768w\" sizes=\"(max-width: 952px) 100vw, 952px\" \/><\/p>\n<h3>A code excerpt showing ViewModel to check how various actions and variables are bound<\/h3>\n<p>MVVM architectures ease all the cons of MVC and MVP, making the coded application easily testable, modular, flexible and simultaneously reducing a lot of code that is glued with view and model.<\/p>\n<p>Model behaves and looks like in MVC and MVP. View binds the observable variables in a flexible way. ViewModel wraps the model and prepares the observable data that is needed by the view.<\/p>\n<h2><span id=\"4\">MVC vs. MVVM (Model-View-View-Model): How do data models interact within a website?<\/span><\/h2>\n<p><strong>MVC model<\/strong> has been extensively used and tested over multiple languages. E.g.: If there is a search box or a questionnaire survey on a website then attributes associated with each question or to-do item are stored in an instance of the model.<\/p>\n<p>The view is presented to the users and it is how users interact with the app. It has access to DOM and is made up of HTML, CSS, JavaScript etc.<\/p>\n<p>Controller sticks the model and view together adding event listeners to view and updates when users manipulate the view.<\/p>\n<p>When an application scales up, many new models are created. The number of controllers also grow simultaneously. As the new layers of abstraction are added codebase becomes difficult to navigate.<\/p>\n<p>In MVVM architecture, the ViewModel method relies heavily on the front end of the application. In this model, the view is tightly coupled with the model but in an unconventional way and this is completely different from the controller. It is in-fact a binder and allows Models to interact directly with the views. Allowing views to communicate directly with the backend, ViewModels works wonders for single page applications. Consuming a considerable amount of memory in comparison to controllers and overhead, ViewModels are not suitable for larger applications.<\/p>\n<h3><span id=\"5\">A Wrapper<\/span><\/h3>\n<p>Breaking the streak, let\u2019s boggle down the facts: There has been an increase in the proportion of websites with an increase in the proliferation of programming languages. Every new innovation facilitates in the management of codebase, making it more testable, manageable and helps bind the web pages with the database. Out of the various ways in which a website can be structured, MVVM vs. MVC vs MVP are just three different methods\/architectures that define the logic behind the models, interfaces\/views and database. Discover more ideas about what is MVVM, what is MVC architecture, the difference between MVC and\u00a0MVVM\u00a0<strong><a href=\"https:\/\/www.konstantinfo.com\/contact-us\" target=\"_blank\">here<\/a><\/strong>. If you are someone into competitive coding, this is worth a check. Find your future with us!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Table of Contents What does MVC (Model View Controller) model do? MVC vs. MVP: When MVP Architecture comes to rescue? What is MVP (Model View Presenter)? MVC vs. MVVM (Model-View-View-Model): How do data models interact within a website? A Wrapper Orchestrating the Android Application into logical components, embracing a modular and logical approach to organize&hellip; <a class=\"more-link\" href=\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/\">Continue reading <span class=\"screen-reader-text\">Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?<\/span><\/a><\/p>\n","protected":false},"author":21,"featured_media":7427,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[1324,1323],"class_list":["post-7405","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile-app-development","tag-android-app-de","tag-mvp-vs-mvc-vs-mvvm","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?<\/title>\n<meta name=\"description\" content=\"Impressing and inspiring masses by a pattern of coding requires an effort. An MVC vs. MVP vs. MVVM application has to be more modular, more testable, more updatable and free of business logic.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?\" \/>\n<meta property=\"og:description\" content=\"Impressing and inspiring masses by a pattern of coding requires an effort. An MVC vs. MVP vs. MVVM application has to be more modular, more testable, more updatable and free of business logic.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/\" \/>\n<meta property=\"og:site_name\" content=\"Konstantinfo\" \/>\n<meta property=\"article:author\" content=\"http:\/\/www.facebook.com\/konstant.info\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-04T07:16:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-31T07:36:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1008\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Neeti Kotia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@konstantinfo\" \/>\n<meta name=\"twitter:site\" content=\"@konstantinfo\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Neeti Kotia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/\",\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/\",\"name\":\"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?\",\"isPartOf\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png\",\"datePublished\":\"2019-01-04T07:16:00+00:00\",\"dateModified\":\"2020-01-31T07:36:19+00:00\",\"author\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/f21f3944d0e3bceb3e4884381bb224b9\"},\"description\":\"Impressing and inspiring masses by a pattern of coding requires an effort. An MVC vs. MVP vs. MVVM application has to be more modular, more testable, more updatable and free of business logic.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#primaryimage\",\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png\",\"contentUrl\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png\",\"width\":1008,\"height\":448,\"caption\":\"MVP vs. MVC vs.-MVVM\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#website\",\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/\",\"name\":\"Konstantinfo\",\"description\":\"Welcome to Konstant Info\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/f21f3944d0e3bceb3e4884381bb224b9\",\"name\":\"Neeti Kotia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/02\/Neeti-150x150.jpg\",\"contentUrl\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/02\/Neeti-150x150.jpg\",\"caption\":\"Neeti Kotia\"},\"description\":\"Neeti Kotia is a technology journalist who seeks to analyze the advancements and developments in technology that affect our everyday lives. Her articles primarily focus upon the business, social, cultural, and entertainment side of the technology sector.\",\"sameAs\":[\"http:\/\/www.konstantinfo.com\",\"http:\/\/www.facebook.com\/konstant.info\",\"https:\/\/x.com\/konstantinfo\"],\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/author\/neeti-kotia\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?","description":"Impressing and inspiring masses by a pattern of coding requires an effort. An MVC vs. MVP vs. MVVM application has to be more modular, more testable, more updatable and free of business logic.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/","og_locale":"en_US","og_type":"article","og_title":"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?","og_description":"Impressing and inspiring masses by a pattern of coding requires an effort. An MVC vs. MVP vs. MVVM application has to be more modular, more testable, more updatable and free of business logic.","og_url":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/","og_site_name":"Konstantinfo","article_author":"http:\/\/www.facebook.com\/konstant.info","article_published_time":"2019-01-04T07:16:00+00:00","article_modified_time":"2020-01-31T07:36:19+00:00","og_image":[{"width":1008,"height":448,"url":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png","type":"image\/png"}],"author":"Neeti Kotia","twitter_card":"summary_large_image","twitter_creator":"@konstantinfo","twitter_site":"@konstantinfo","twitter_misc":{"Written by":"Neeti Kotia","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/","url":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/","name":"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?","isPartOf":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#primaryimage"},"image":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png","datePublished":"2019-01-04T07:16:00+00:00","dateModified":"2020-01-31T07:36:19+00:00","author":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/f21f3944d0e3bceb3e4884381bb224b9"},"description":"Impressing and inspiring masses by a pattern of coding requires an effort. An MVC vs. MVP vs. MVVM application has to be more modular, more testable, more updatable and free of business logic.","breadcrumb":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#primaryimage","url":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png","contentUrl":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/12\/MVP-vs.-MVC-vs.-MVVM-1.png","width":1008,"height":448,"caption":"MVP vs. MVC vs.-MVVM"},{"@type":"BreadcrumbList","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/mvp-vs-mvc-vs-mvvm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.konstantinfo.com\/konstant-blog\/"},{"@type":"ListItem","position":2,"name":"Is it MVP vs. MVC vs. MVVM that Creates an Odyssey for Android App Development?"}]},{"@type":"WebSite","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#website","url":"https:\/\/www.konstantinfo.com\/konstant-blog\/","name":"Konstantinfo","description":"Welcome to Konstant Info","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.konstantinfo.com\/konstant-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/f21f3944d0e3bceb3e4884381bb224b9","name":"Neeti Kotia","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/02\/Neeti-150x150.jpg","contentUrl":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/02\/Neeti-150x150.jpg","caption":"Neeti Kotia"},"description":"Neeti Kotia is a technology journalist who seeks to analyze the advancements and developments in technology that affect our everyday lives. Her articles primarily focus upon the business, social, cultural, and entertainment side of the technology sector.","sameAs":["http:\/\/www.konstantinfo.com","http:\/\/www.facebook.com\/konstant.info","https:\/\/x.com\/konstantinfo"],"url":"https:\/\/www.konstantinfo.com\/konstant-blog\/author\/neeti-kotia\/"}]}},"show_toc":false,"table_of_content":[],"faq":[],"related_blogs":[{"id":12341,"title":"AI in Real Estate Industry &#8211; Benefits, Use Cases, Applications and Challenges","slug":"ai-in-real-estate","link":"https:\/\/www.konstantinfo.com\/konstant-blog\/ai-in-real-estate\/","modified":"2026-05-07 17:49:19","excerpt":"The real-estate industry is predominantly run by human expertise and manual processes including buying, selling, and building lands and property....","image":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2025\/04\/ai-in-real-estate.webp"},{"id":12324,"title":"10 Top Education App Development Companies (2026)","slug":"education-app-development-companies","link":"https:\/\/www.konstantinfo.com\/konstant-blog\/education-app-development-companies\/","modified":"2026-05-07 15:22:39","excerpt":"What started as an extension of traditional classrooms became a billion-dollar industry. The online education sector has flourished massively. It...","image":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2025\/04\/education-app-development-companies.webp"},{"id":12333,"title":"10 Best eCommerce App Development Companies (2026)","slug":"ecommerce-app-development-companies","link":"https:\/\/www.konstantinfo.com\/konstant-blog\/ecommerce-app-development-companies\/","modified":"2026-05-05 17:18:51","excerpt":"We have curated a comprehensive list of top eCommerce app development companies to assist you in developing top-notch eCommerce applications....","image":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2025\/04\/best-ecommerce-app-development-companies.webp"}],"_links":{"self":[{"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/posts\/7405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/comments?post=7405"}],"version-history":[{"count":1,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/posts\/7405\/revisions"}],"predecessor-version":[{"id":8859,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/posts\/7405\/revisions\/8859"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/media\/7427"}],"wp:attachment":[{"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/media?parent=7405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/categories?post=7405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/tags?post=7405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}