{"id":6272,"date":"2018-06-22T20:15:13","date_gmt":"2018-06-22T14:45:13","guid":{"rendered":"https:\/\/www.konstantinfo.com\/blog\/?p=6272"},"modified":"2018-06-22T20:15:32","modified_gmt":"2018-06-22T14:45:32","slug":"android-app-architecture-to-streamline-the-app-development-process","status":"publish","type":"post","link":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/","title":{"rendered":"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process"},"content":{"rendered":"<blockquote><p><em><strong>Pinal Jakhar<\/strong>&#8211; an Android developer at the firm, takes an hour long session on Android app architecture and how its implementation can help overcome the most common challenges developers face. The engaging and resourceful session earned her much regard followed by a token of appreciation. Here is a layout of the session:<\/em><\/p><\/blockquote>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6286\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-team.jpg\" alt=\"android team\" width=\"737\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-team.jpg 737w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-team-300x156.jpg 300w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/p>\n<p>A <a href=\"https:\/\/arxiv.org\/pdf\/1511.06554.pdf\" target=\"_blank\" rel=\"nofollow\">report <\/a>(pdf) published at the University of Luxembourg in 2015, found that over 60% of an Android apps\u2019 code was contributed by common libraries. Most of such libraries include ads and analytics from Google, social plugins, common widgets, among others. That means more than half the resources (of which mobile devices are highly constrained) is drained by processes irrelevant to core business logic.\u00a0 And given that we still use most of those libraries, it can be safely assumed the situation hasn\u2019t changed much since 2015.<\/p>\n<p>No, libraries themselves aren\u2019t the problem. They are extremely resourceful and there is no way we can build apps without them. But the point is if more than half the code and device resources are channeled to common housekeeping tasks, it becomes essential that the code we do write for the core business logic brings the highest level of efficiency.\u00a0 And that is what this post is about- the problems in Android app development and the how we can streamline the process by effective implementation of latest libraries to boost quality while managing deadlines.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6287\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-Trainning-Session.jpg\" alt=\"android-trainning-session\" width=\"737\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-Trainning-Session.jpg 737w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-Trainning-Session-300x156.jpg 300w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/p>\n<h2>The current scenario<\/h2>\n<p>To understand the better way to building an app, we first have to outline what actually constitutes building an app. In its most rudimentary form, the process involves these broad steps:<\/p>\n<p><strong>Routine repetitive tasks <\/strong><\/p>\n<p>Building applications always start with the same basic set of steps- creating packages, managing versions and elements, and those dozens of other tasks that have to be repeated like clockwork for each application.<\/p>\n<p><strong>Network communication <\/strong><\/p>\n<p>The next in line is network management. Because mobile devices often work in patchy network reception, apps need to be highly resilient to server timeouts, lost response, or any other kind of network error for that matter.<\/p>\n<p><strong>Data storage <\/strong><\/p>\n<p>Applications essentially run on data and while there is always the main database at the backend, the tricky part is to decide how data flows through different processes and which data source to use for each type of user action. Eventually, it all boils down to the speed of local storage vs accuracy of fetching it from the server.<\/p>\n<p><strong>Data display <\/strong><\/p>\n<p>This relates to the UI aspect of the application that users actually see. While the primary task of UI components is to display data, it also has to change its own behavior depending on the data being displayed.<\/p>\n<p><strong>Data manipulation <\/strong><\/p>\n<p>This is where the core business logic is applied and has to take into account all different components.<\/p>\n<p><strong>Architecture<\/strong><\/p>\n<p>Both of the above operations are implemented in specific architectures of which two of the most popular are MVP and MVVM:<\/p>\n<ul>\n<li>MVP (Model-View-Presenter)<\/li>\n<\/ul>\n<p>Model refers to the data layer that applies business logic and communicates with database and network. View is the UI layer that displays data and forwards user actions to the presentation layer, which in turn retrieves data from the Model layer, applies UI logic and decides what to display for each particular user action.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6275\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/testing-methodologies-mvp.png\" alt=\"testing methodologies mvp\" width=\"312\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/testing-methodologies-mvp.png 312w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/testing-methodologies-mvp-300x206.png 300w\" sizes=\"(max-width: 312px) 100vw, 312px\" \/><\/p>\n<p style=\"text-align: center;\">Image source: gwtproject.org<\/p>\n<ul>\n<li>MVVM (Model-View-Viewmodel)<\/li>\n<\/ul>\n<p>This architecture too works pretty much the same way as MVP but has one crucial difference- the view is completely insulated from model. That is, the business logic can be easily altered without having any affect on UI components. This also means that creating UI test cases is relatively simple and performing unit tests is much easier.<\/p>\n<p>While these approaches work well, there are a few subtle problems whose severity grows in proportion to size and complexity of the concerned app.<\/p>\n<h2>Notable problems:<\/h2>\n<p><strong>Modular programming <\/strong><\/p>\n<p>Generally, action of a dependent component is implemented in the lifecycle method of activities and methods of any other component. And as the application grows, this results into a web of dependencies, poorly organized code, and proliferation of errors.<\/p>\n<p><strong>Frequent data fetching <\/strong><\/p>\n<p>Repository modules are responsible for fetching data from different sources (both local and server), keeping the rest of the application abstracted from the complexity involved. But the problem is, it doesn\u2019t keep the fetched data anywhere. This means every time a user leaves an application and comes back, it has to fetch the same data all over again. Not only does this waste valuable data bandwidth but also creates a perception of the app working slow.<\/p>\n<p><strong>Data caching <\/strong><\/p>\n<p>To solve the problem of frequent data fetching we generally use data caching- which itself can be problematic in some cases. There are instances when two or more requests would essentially fetch the same user data- causing inconsistency and a confusing user experience.<\/p>\n<p><strong>Testing <\/strong><\/p>\n<p>The confusing web of dependencies we talked about earlier not only affect code manageability but also spills over to the testing phase. The more interdependent the components are, the tougher it is to run unit tests<\/p>\n<p>Now if you take a collective look at all the problems mentioned, it is evident that none of them are caused due to some inherent flaw in Android app architecture but for the lack of its proper implementation.<\/p>\n<p>Here are some key Architecture Components that when deployed can easily plug all those loopholes:<\/p>\n<p><strong>Lifecycle-aware components <\/strong><\/p>\n<p>The use of lifecycle-aware components lets us move the code of dependent component from lifecycle methods to components themselves. The android.arch.lifecycle package offers classes and interfaces to build lifecycle-aware components that automatically adjust their behavior based on current lifecycle state of an activity or fragment.<\/p>\n<p>At implementation stage, a LifecycleOwner is a single method interface that denotes any particular class has a lifecycle, which a LifecycleObserver can register to watch.<\/p>\n<p><strong>LiveData<\/strong><\/p>\n<p>LiveData is an observable data class holder that is lifecycle-aware and thus only updates app component observers that are in an active lifecycle state. LiveData considers an observer to be active if it is in a RESUMED or STARTED state. Using LiveData offers numerous perks including consistency between UI and data state, resource sharing, and most importantly, eliminates the need to handle lifecycles manually.<\/p>\n<p><strong>ViewModel <\/strong><\/p>\n<p>ViewModel is a lifecycle-aware class used to store and manage UI-related data. It enables data to survive any configuration changes like screen-rotation. One of the key benefits of using ViewModel objects is that they are designed to outlive specific instantiations\u00a0 of LifecycleOwners as depicted here:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6277\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/viewmodel-lifecycle.png\" alt=\"viewmodel lifecycle\" width=\"522\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/viewmodel-lifecycle.png 522w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/viewmodel-lifecycle-288x300.png 288w\" sizes=\"(max-width: 522px) 100vw, 522px\" \/><\/p>\n<p style=\"text-align: center;\">Image source: developer.android.com<\/p>\n<p><strong>Room <\/strong><\/p>\n<p>Room is a persistence library that enables us to create an abstraction layer over SQLite by having a cache of our app\u2019s data on local device- which drastically improves database access and ensures data consistency.<\/p>\n<p>To sum things up, the final architecture of your Android app should resemble the diagram below:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-6276\" src=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/final-archtecture.png\" alt=\"final archtecture\" width=\"960\" srcset=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/final-archtecture.png 960w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/final-archtecture-300x225.png 300w, https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/final-archtecture-768x576.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p style=\"text-align: center;\">Image source: developer.android.com<\/p>\n<h2>Benefits<\/h2>\n<ul>\n<li>Data persistence<\/li>\n<li>The use of Room library<\/li>\n<li>Lifecycle management<\/li>\n<li>Error reduction<\/li>\n<li>Less boilerplate code<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Pinal Jakhar&#8211; an Android developer at the firm, takes an hour long session on Android app architecture and how its implementation can help overcome the most common challenges developers face. The engaging and resourceful session earned her much regard followed by a token of appreciation. Here is a layout of the session: A report (pdf)&hellip; <a class=\"more-link\" href=\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/\">Continue reading <span class=\"screen-reader-text\">Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process<\/span><\/a><\/p>\n","protected":false},"author":20,"featured_media":6289,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[356,42],"tags":[44],"class_list":["post-6272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-company-news","category-mobile-app-development","tag-android-app-development","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process - Konstantinfo<\/title>\n<meta name=\"description\" content=\"This is the first in a series of tech blogs that try to bring to you tech expertise right from our in-house developers. We organize several training sessions every month where our lead technology experts share their skills and insights with the team.\" \/>\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\/android-app-architecture-to-streamline-the-app-development-process\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process - Konstantinfo\" \/>\n<meta property=\"og:description\" content=\"This is the first in a series of tech blogs that try to bring to you tech expertise right from our in-house developers. We organize several training sessions every month where our lead technology experts share their skills and insights with the team.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/\" \/>\n<meta property=\"og:site_name\" content=\"Konstantinfo\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-22T14:45:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-06-22T14:45:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"Mrityunjay Kumar\" \/>\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=\"Mrityunjay Kumar\" \/>\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\/android-app-architecture-to-streamline-the-app-development-process\/\",\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/\",\"name\":\"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process - Konstantinfo\",\"isPartOf\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg\",\"datePublished\":\"2018-06-22T14:45:13+00:00\",\"dateModified\":\"2018-06-22T14:45:32+00:00\",\"author\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/b99f56ac358560651df7fb8041397710\"},\"description\":\"This is the first in a series of tech blogs that try to bring to you tech expertise right from our in-house developers. We organize several training sessions every month where our lead technology experts share their skills and insights with the team.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#primaryimage\",\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg\",\"contentUrl\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg\",\"width\":1008,\"height\":448,\"caption\":\"Android App Architecture\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process\"}]},{\"@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\/b99f56ac358560651df7fb8041397710\",\"name\":\"Mrityunjay Kumar\",\"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\/2017\/08\/mrityunjay-kumar-150x150.jpg\",\"contentUrl\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2017\/08\/mrityunjay-kumar-150x150.jpg\",\"caption\":\"Mrityunjay Kumar\"},\"description\":\"Mrityunjay is a content developer at Konstant Infosolutions- a leading mobile app development firm that caters to enterprises of all scales and industries with cutting-edge tech solutions. Being an engineer by education, a reader by passion, and a writer by profession, he finds no topic truly boring, yet nothing seems to content his craving as well- an essence he leaves in everything he writes.\",\"sameAs\":[\"http:\/\/www.konstantinfo.com\",\"https:\/\/x.com\/konstantinfo\"],\"url\":\"https:\/\/www.konstantinfo.com\/konstant-blog\/author\/mrityunjay-kumar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process - Konstantinfo","description":"This is the first in a series of tech blogs that try to bring to you tech expertise right from our in-house developers. We organize several training sessions every month where our lead technology experts share their skills and insights with the team.","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\/android-app-architecture-to-streamline-the-app-development-process\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process - Konstantinfo","og_description":"This is the first in a series of tech blogs that try to bring to you tech expertise right from our in-house developers. We organize several training sessions every month where our lead technology experts share their skills and insights with the team.","og_url":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/","og_site_name":"Konstantinfo","article_published_time":"2018-06-22T14:45:13+00:00","article_modified_time":"2018-06-22T14:45:32+00:00","og_image":[{"width":1008,"height":448,"url":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg","type":"image\/jpeg"}],"author":"Mrityunjay Kumar","twitter_card":"summary_large_image","twitter_creator":"@konstantinfo","twitter_site":"@konstantinfo","twitter_misc":{"Written by":"Mrityunjay Kumar","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/","url":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/","name":"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process - Konstantinfo","isPartOf":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#primaryimage"},"image":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#primaryimage"},"thumbnailUrl":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg","datePublished":"2018-06-22T14:45:13+00:00","dateModified":"2018-06-22T14:45:32+00:00","author":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/#\/schema\/person\/b99f56ac358560651df7fb8041397710"},"description":"This is the first in a series of tech blogs that try to bring to you tech expertise right from our in-house developers. We organize several training sessions every month where our lead technology experts share their skills and insights with the team.","breadcrumb":{"@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#primaryimage","url":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg","contentUrl":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2018\/06\/Android-App-Architecture.jpg","width":1008,"height":448,"caption":"Android App Architecture"},{"@type":"BreadcrumbList","@id":"https:\/\/www.konstantinfo.com\/konstant-blog\/android-app-architecture-to-streamline-the-app-development-process\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.konstantinfo.com\/konstant-blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial- Why and How to implement Android App Architecture to Streamline the Overall App Development Process"}]},{"@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\/b99f56ac358560651df7fb8041397710","name":"Mrityunjay Kumar","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\/2017\/08\/mrityunjay-kumar-150x150.jpg","contentUrl":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-content\/uploads\/2017\/08\/mrityunjay-kumar-150x150.jpg","caption":"Mrityunjay Kumar"},"description":"Mrityunjay is a content developer at Konstant Infosolutions- a leading mobile app development firm that caters to enterprises of all scales and industries with cutting-edge tech solutions. Being an engineer by education, a reader by passion, and a writer by profession, he finds no topic truly boring, yet nothing seems to content his craving as well- an essence he leaves in everything he writes.","sameAs":["http:\/\/www.konstantinfo.com","https:\/\/x.com\/konstantinfo"],"url":"https:\/\/www.konstantinfo.com\/konstant-blog\/author\/mrityunjay-kumar\/"}]}},"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\/6272","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\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/comments?post=6272"}],"version-history":[{"count":0,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/posts\/6272\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/media\/6289"}],"wp:attachment":[{"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/media?parent=6272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/categories?post=6272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.konstantinfo.com\/konstant-blog\/wp-json\/wp\/v2\/tags?post=6272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}