{"id":3680,"date":"2022-08-19T14:38:04","date_gmt":"2022-08-19T12:38:04","guid":{"rendered":"https:\/\/visionslabs.io\/rewriting-the-entire-mobile-app-on-android\/"},"modified":"2022-08-19T14:38:06","modified_gmt":"2022-08-19T12:38:06","slug":"rewriting-the-entire-mobile-app-on-android","status":"publish","type":"post","link":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/","title":{"rendered":"Rewriting the entire mobile app on Android"},"content":{"rendered":"\n<p>We recently released a new version (<em>2.4.0<\/em>) of our popular mobile app at <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=io.visionslabs.mojehodinovka\" target=\"_blank\" rel=\"noreferrer noopener\">Android &#8211; <strong>Workarys<\/strong><\/a>. Which is a mobile application that helps you with your attendance record. And since this is a case where we rewrote the entire mobile application into a new structure and also a new language, we want to share some interesting observations with you. Just to be clear, we are comparing versions of the application that are 99% the same in terms of functionality, so this is an ideal case for comparison.<\/p>\n\n<h2 class=\"wp-block-heading\">Original application<\/h2>\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/android-jetpack.svg\" alt=\"Android Jetpack\" class=\"wp-image-3664\" width=\"300\"\/><figcaption><a href=\"https:\/\/developer.android.com\/jetpack\" target=\"_blank\" rel=\"noreferrer noopener\">Android Jetpack <\/a><br\/>source: https:\/\/developer.android.com\/jetpack<\/figcaption><\/figure>\n<\/div>\n<p><strong>Workarys<\/strong> was originally written as an app for our close circle of users and was not intended to be used by thousands of users as it is today. So its structure was <strong>as simple as possible<\/strong> and no architectures were used for larger or longer maintained applications. Also, the application language was the only one at the time, <strong>Java<\/strong>. And all this has been carried by the application since 2019, when it was created. Over time, Google presented new options for development on Android, such as the new language <strong>Kotlin<\/strong> or new packages such as <strong>Android Jetpack<\/strong>.<\/p>\n\n<h2 class=\"wp-block-heading\">New application<\/h2>\n\n<p>So for this year, we decided to rewrite the entire application both in the new Kotlin language and using all the best practices and libraries currently recommended by Google. The &#8220;main&#8221; package recommended by Google is <strong>Android Jetpack<\/strong> &#8211; which is, for example, using the <strong>M-V-VM<\/strong> architecture, aka <em>Model &#8211; View &#8211; ViewModel<\/em> &#8211; or splitting application to the data-related part (<em>model<\/em>), then the graphic part &#8211; sometimes also as UI (<em>view<\/em>) and then <em>ViewModel<\/em> as a connecting element , which stores the data for the View and works with the data from the Model. Another piece from the recommended deck was <strong>Hilt<\/strong>, which is <em>Dependency Injection<\/em> and a successor to <strong>Dagger<\/strong>. Hilt works very well in combination with <strong>MVVM<\/strong> and also generates code that the developer would otherwise have to write himself, so it&#8217;s&nbsp;a very nice simplification of the work when creating a mobile application on Android. Then just briefly other recommended &#8220;libraries&#8221; such as <strong>Room<\/strong> for DB, <strong>LiveData<\/strong>, <strong>ViewBinding<\/strong> and etc. You can find all information about Android Jetpack on the official website <a href=\"https:\/\/developer.android.com\/jetpack\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/developer.android.com\/jetpack<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">How to compare mobile apps now?<\/h2>\n\n<p>We could probably do a &#8220;primitive&#8221; counting of files and lines of code, but that probably wouldn&#8217;t be quite right, even though it has its value. But we were looking for a &#8220;better&#8221; way to compare the old and new mobile app. We found the project <strong>SCC<\/strong> (<code><em>Succinct Code Counter<\/em><\/code>), which can extract various statistics from the code, both the previously mentioned counting of lines and files, and even some complexity of the code or its difficulty. More about the project at <a href=\"https:\/\/github.com\/boyter\/scc\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/boyter\/scc<\/a>.<\/p>\n\n<p>In the image below, we can see the individual statistics that the SCC tool offers us, and it always shows how much value the old application (<em>Old<\/em>) has gained and how much the new one (<em>New<\/em>).<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-us_600_400\"><a ref=\"magnificPopup\" href=\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/Moje-hodinovka-mobilni-aplikace-android-scc-porovnani.png\"><img decoding=\"async\" width=\"600\" height=\"198\" src=\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/Moje-hodinovka-mobilni-aplikace-android-scc-porovnani-600x198.png\" alt=\"Workarys - mobile application - android - scc - comparison\" class=\"wp-image-3661\" srcset=\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/Moje-hodinovka-mobilni-aplikace-android-scc-porovnani-600x198.png 600w, https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/Moje-hodinovka-mobilni-aplikace-android-scc-porovnani-300x99.png 300w, https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/Moje-hodinovka-mobilni-aplikace-android-scc-porovnani-1024x338.png 1024w, https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/Moje-hodinovka-mobilni-aplikace-android-scc-porovnani.png 1295w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><figcaption>Compare applications using the SCC tool<\/figcaption><\/figure>\n<\/div>\n<p>Individual file types are always compared, so <strong>XML<\/strong>, <strong>Java<\/strong> and <strong>Kotlin<\/strong> in particular. The main difference is between <strong>Java and Kotlin<\/strong>, where we can see that Kotlin is basically &#8220;better&#8221; in all parameters. That is that Kotlin is both more efficient in terms of the number of lines and its complexity. Which then results in the tool using the <strong>COCOMO<\/strong> method (<em>Constructive Cost Model<\/em> more about the method e.g. on the wiki &#8211; <a href=\"https:\/\/en.wikipedia .org\/wiki\/COCOMO\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/en.wikipedia.org\/wiki\/COCOMO<\/a> ) tries to estimate the work of the project both in terms of time (how long it would take to write the given code), as well as, for example, how much it might cost. Let&#8217;s&nbsp;leave aside the specific values \u200b\u200bthat may be contradictory, but rather a relative assessment. That is that in terms of cost, writing a new application would be <strong>cheaper by 20%<\/strong> and about <strong>10% faster<\/strong>. And because we know that in terms of function these are identical applications, it follows that using modern procedures and languages, mobile applications can be written <strong>cheaper and faster<\/strong>.<\/p>\n\n<p>If you would like to develop a mobile application for Android, do not hesitate to write to us, e.g. at <a href=\"mailto:hello@visionslabs.io\">hello@visionslabs.io<\/a> and we will come up with something together.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We recently released a new version (2.4.0) of our popular mobile app at Android &#8211; Workarys. Which is a mobile application that helps you with your attendance record. And since this is a case where we rewrote the entire mobile application into a new structure and also a new language, we want to share some&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3676,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[206,458,148],"tags":[460,462,459,466,463,461,467,464,465,468,225],"class_list":["post-3680","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-interesting-facts","category-mobile-application","category-uncategorized","tag-android-en","tag-android-jetpack-en","tag-google-en","tag-hilt-en","tag-java-en","tag-kotlin-en","tag-livedata-en","tag-mvvm-en","tag-room-en","tag-scc-en","tag-workarys"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rewriting the entire mobile app on Android - visionslabs<\/title>\n<meta name=\"description\" content=\"An article about how we rewrote My Watch and measured the difference. New modern procedures can save up to 20% of costs and approx. 10% of time.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rewriting the entire mobile app on Android - visionslabs\" \/>\n<meta property=\"og:description\" content=\"An article about how we rewrote My Watch and measured the difference. New modern procedures can save up to 20% of costs and approx. 10% of time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\" \/>\n<meta property=\"og:site_name\" content=\"visionslabs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/visionslabs\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-19T12:38:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-19T12:38:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Leopold Podmol\u00edk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@visionslabs\" \/>\n<meta name=\"twitter:site\" content=\"@visionslabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Leopold Podmol\u00edk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\"},\"author\":{\"name\":\"Leopold Podmol\u00edk\",\"@id\":\"https:\/\/visionslabs.io\/en\/#\/schema\/person\/8002ebaef6052f50e66a94371d7764c9\"},\"headline\":\"Rewriting the entire mobile app on Android\",\"datePublished\":\"2022-08-19T12:38:04+00:00\",\"dateModified\":\"2022-08-19T12:38:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\"},\"wordCount\":722,\"publisher\":{\"@id\":\"https:\/\/visionslabs.io\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg\",\"keywords\":[\"Android\",\"Android Jetpack\",\"Google\",\"Hilt\",\"Java\",\"Kotlin\",\"LiveData\",\"MVVM\",\"Room\",\"SCC\",\"Workarys\"],\"articleSection\":[\"Interesting facts\",\"Mobile application\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\",\"url\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\",\"name\":\"Rewriting the entire mobile app on Android - visionslabs\",\"isPartOf\":{\"@id\":\"https:\/\/visionslabs.io\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg\",\"datePublished\":\"2022-08-19T12:38:04+00:00\",\"dateModified\":\"2022-08-19T12:38:06+00:00\",\"description\":\"An article about how we rewrote My Watch and measured the difference. New modern procedures can save up to 20% of costs and approx. 10% of time.\",\"breadcrumb\":{\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage\",\"url\":\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg\",\"contentUrl\":\"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Android - porovn\u00e1n\u00ed aplikac\u00ed - moje hodinovka - mvvm kotlin\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/visionslabs.io\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rewriting the entire mobile app on Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/visionslabs.io\/en\/#website\",\"url\":\"https:\/\/visionslabs.io\/en\/\",\"name\":\"visionslabs\",\"description\":\"Digit\u00e1ln\u00ed studio visionslabs se zab\u00fdv\u00e1 tvorbou web\u016f, aplikac\u00ed a digit\u00e1ln\u00edm marketingem\",\"publisher\":{\"@id\":\"https:\/\/visionslabs.io\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/visionslabs.io\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/visionslabs.io\/en\/#organization\",\"name\":\"VisionsLabs - Po\u010d\u00edta\u010dov\u00e1 slu\u017eba s.r.o.\",\"url\":\"https:\/\/visionslabs.io\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/visionslabs.io\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/visionslabs.io\/wp-content\/uploads\/2020\/07\/visionslabs-logo-icon-1.svg\",\"contentUrl\":\"https:\/\/visionslabs.io\/wp-content\/uploads\/2020\/07\/visionslabs-logo-icon-1.svg\",\"width\":317,\"height\":90,\"caption\":\"VisionsLabs - Po\u010d\u00edta\u010dov\u00e1 slu\u017eba s.r.o.\"},\"image\":{\"@id\":\"https:\/\/visionslabs.io\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/visionslabs\/\",\"https:\/\/x.com\/visionslabs\",\"https:\/\/www.instagram.com\/visionslabs\/\",\"https:\/\/www.linkedin.com\/company\/visionslabs\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/visionslabs.io\/en\/#\/schema\/person\/8002ebaef6052f50e66a94371d7764c9\",\"name\":\"Leopold Podmol\u00edk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/visionslabs.io\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/61ff2dad8ddeb5d3d6cda0cb4b861bb91797c98c4da6550c31c087557182e89f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/61ff2dad8ddeb5d3d6cda0cb4b861bb91797c98c4da6550c31c087557182e89f?s=96&d=mm&r=g\",\"caption\":\"Leopold Podmol\u00edk\"},\"description\":\"CTO - dealing with both development and digital marketing\",\"sameAs\":[\"https:\/\/visionslabs.io\"],\"url\":\"https:\/\/visionslabs.io\/en\/author\/admn_podmolik\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rewriting the entire mobile app on Android - visionslabs","description":"An article about how we rewrote My Watch and measured the difference. New modern procedures can save up to 20% of costs and approx. 10% of time.","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:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/","og_locale":"en_US","og_type":"article","og_title":"Rewriting the entire mobile app on Android - visionslabs","og_description":"An article about how we rewrote My Watch and measured the difference. New modern procedures can save up to 20% of costs and approx. 10% of time.","og_url":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/","og_site_name":"visionslabs","article_publisher":"https:\/\/facebook.com\/visionslabs\/","article_published_time":"2022-08-19T12:38:04+00:00","article_modified_time":"2022-08-19T12:38:06+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg","type":"image\/jpeg"}],"author":"Leopold Podmol\u00edk","twitter_card":"summary_large_image","twitter_creator":"@visionslabs","twitter_site":"@visionslabs","twitter_misc":{"Written by":"Leopold Podmol\u00edk","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#article","isPartOf":{"@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/"},"author":{"name":"Leopold Podmol\u00edk","@id":"https:\/\/visionslabs.io\/en\/#\/schema\/person\/8002ebaef6052f50e66a94371d7764c9"},"headline":"Rewriting the entire mobile app on Android","datePublished":"2022-08-19T12:38:04+00:00","dateModified":"2022-08-19T12:38:06+00:00","mainEntityOfPage":{"@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/"},"wordCount":722,"publisher":{"@id":"https:\/\/visionslabs.io\/en\/#organization"},"image":{"@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage"},"thumbnailUrl":"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg","keywords":["Android","Android Jetpack","Google","Hilt","Java","Kotlin","LiveData","MVVM","Room","SCC","Workarys"],"articleSection":["Interesting facts","Mobile application"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/","url":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/","name":"Rewriting the entire mobile app on Android - visionslabs","isPartOf":{"@id":"https:\/\/visionslabs.io\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage"},"image":{"@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage"},"thumbnailUrl":"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg","datePublished":"2022-08-19T12:38:04+00:00","dateModified":"2022-08-19T12:38:06+00:00","description":"An article about how we rewrote My Watch and measured the difference. New modern procedures can save up to 20% of costs and approx. 10% of time.","breadcrumb":{"@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#primaryimage","url":"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg","contentUrl":"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg","width":1200,"height":630,"caption":"Android - porovn\u00e1n\u00ed aplikac\u00ed - moje hodinovka - mvvm kotlin"},{"@type":"BreadcrumbList","@id":"https:\/\/visionslabs.io\/en\/rewriting-the-entire-mobile-app-on-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/visionslabs.io\/en\/"},{"@type":"ListItem","position":2,"name":"Rewriting the entire mobile app on Android"}]},{"@type":"WebSite","@id":"https:\/\/visionslabs.io\/en\/#website","url":"https:\/\/visionslabs.io\/en\/","name":"visionslabs","description":"Digit\u00e1ln\u00ed studio visionslabs se zab\u00fdv\u00e1 tvorbou web\u016f, aplikac\u00ed a digit\u00e1ln\u00edm marketingem","publisher":{"@id":"https:\/\/visionslabs.io\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/visionslabs.io\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/visionslabs.io\/en\/#organization","name":"VisionsLabs - Po\u010d\u00edta\u010dov\u00e1 slu\u017eba s.r.o.","url":"https:\/\/visionslabs.io\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/visionslabs.io\/en\/#\/schema\/logo\/image\/","url":"https:\/\/visionslabs.io\/wp-content\/uploads\/2020\/07\/visionslabs-logo-icon-1.svg","contentUrl":"https:\/\/visionslabs.io\/wp-content\/uploads\/2020\/07\/visionslabs-logo-icon-1.svg","width":317,"height":90,"caption":"VisionsLabs - Po\u010d\u00edta\u010dov\u00e1 slu\u017eba s.r.o."},"image":{"@id":"https:\/\/visionslabs.io\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/visionslabs\/","https:\/\/x.com\/visionslabs","https:\/\/www.instagram.com\/visionslabs\/","https:\/\/www.linkedin.com\/company\/visionslabs"]},{"@type":"Person","@id":"https:\/\/visionslabs.io\/en\/#\/schema\/person\/8002ebaef6052f50e66a94371d7764c9","name":"Leopold Podmol\u00edk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/visionslabs.io\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/61ff2dad8ddeb5d3d6cda0cb4b861bb91797c98c4da6550c31c087557182e89f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/61ff2dad8ddeb5d3d6cda0cb4b861bb91797c98c4da6550c31c087557182e89f?s=96&d=mm&r=g","caption":"Leopold Podmol\u00edk"},"description":"CTO - dealing with both development and digital marketing","sameAs":["https:\/\/visionslabs.io"],"url":"https:\/\/visionslabs.io\/en\/author\/admn_podmolik\/"}]}},"jetpack_featured_media_url":"https:\/\/visionslabs.io\/wp-content\/uploads\/2022\/08\/visionslabs-android-porovnani-aplikaci-moje-hodinovka-mvvm-kotlin.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/posts\/3680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/comments?post=3680"}],"version-history":[{"count":0,"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/posts\/3680\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/media\/3676"}],"wp:attachment":[{"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/media?parent=3680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/categories?post=3680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/visionslabs.io\/en\/wp-json\/wp\/v2\/tags?post=3680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}