{"id":113149,"date":"2023-05-23T13:24:39","date_gmt":"2023-05-23T10:24:39","guid":{"rendered":"https:\/\/innowise.com\/?p=113149"},"modified":"2026-03-18T03:56:13","modified_gmt":"2026-03-18T07:56:13","slug":"mobile-app-development-digest","status":"publish","type":"post","link":"https:\/\/innowise.com\/pl\/blog\/mobile-app-development-digest\/","title":{"rendered":"Podsumowanie rozwoju aplikacji mobilnych Innowise"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"113149\" class=\"elementor elementor-113149\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e6733c6 main-block elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e6733c6\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-66 elementor-top-column elementor-element elementor-element-5af7f03c\" data-id=\"5af7f03c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-40f647f9 elementor-widget elementor-widget-html\" data-id=\"40f647f9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"breadcrumbs flex\">\n    <div class=\"info\"> \n    <a href=\"https:\/\/innowise.com\/\">\n  Main\n  <\/a>\n    <\/div>\n    <div class=\"info\">\n         <a href=\"https:\/\/innowise.com\/about-us\/\">\n  About us\n  <\/a>\n    <\/div>\n     <div class=\"info\">\n          <a href=\"https:\/\/innowise.com\/blog\/\">\n  Blog\n  <\/a>\n    <\/div>\n<\/div>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\/\", \n  \"@type\": \"BreadcrumbList\", \n  \"itemListElement\": [{\n    \"@type\": \"ListItem\", \n    \"position\": 1, \n    \"name\": \"7 reasons Java is perfect for enterprise software development\",\n    \"item\": \"https:\/\/innowise.com\/blog\/java-for-enterprise-applications\/\"  \n  },{\n    \"@type\": \"ListItem\", \n    \"position\": 2, \n    \"name\": \"Blog\",\n    \"item\": \"https:\/\/innowise.com\/blog\/\"  \n  },{\n    \"@type\": \"ListItem\", \n    \"position\": 3, \n    \"name\": \"Name\",\n    \"item\": \"https:\/\/innowise.com\/\"  \n  }]\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-78d33ae9 elementor-widget elementor-widget-html\" data-id=\"78d33ae9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"article-info flex\">\n    <div class=\"info\"> \n    12 min read\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f444666 elementor-widget elementor-widget-text-editor\" data-id=\"4f444666\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h1><span style=\"font-weight: 400; color: #ffffff;\">Innowise mobile app development digest\n<\/span><\/h1>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2abf81ad elementor-widget elementor-widget-shortcode\" data-id=\"2abf81ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[display_tags]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-114bbf89 button-tinder elementor-hidden-tablet elementor-hidden-mobile\" data-id=\"114bbf89\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-163b650f article-description elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"163b650f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-b381776 author-article\" data-id=\"b381776\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4fd559d0 elementor-widget elementor-widget-text-editor\" data-id=\"4fd559d0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Welcome to the Innowise mobile digest, your ultimate source for all things mobile development. Within this extensive compilation, we present you with the most recent news, thorough reviews, and invaluable guides in the ever-changing realm of mobile development. Explore real-life cases and success stories where revolutionary solutions have reshaped businesses and industries. Moreover, our handpicked selection of articles encompasses various interconnected subjects, providing insights and perspectives on the future of <span style=\"text-decoration: underline;\"><a href=\"https:\/\/innowise.com\/services\/mobile-application-development\/\">mobile technology<\/a><\/span>. <\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-539aa50 e-con-full e-flex e-con e-parent\" data-id=\"539aa50\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-8b6dc6b e-grid e-con-full e-con e-child\" data-id=\"8b6dc6b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-51d8311 elementor-hidden-mobile elementor-widget elementor-widget-image\" data-id=\"51d8311\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"841\" height=\"1054\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-1.png\" class=\"attachment-full size-full wp-image-155287\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-1.png 841w, https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-1-239x300.png 239w, https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-1-817x1024.png 817w, https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-1-768x963.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-1-10x12.png 10w\" sizes=\"(max-width: 841px) 100vw, 841px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11907f9 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-image\" data-id=\"11907f9\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"434\" height=\"485\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-2.png\" class=\"attachment-full size-full wp-image-155288\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-2.png 434w, https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-2-268x300.png 268w, https:\/\/innowise.com\/wp-content\/uploads\/2022\/10\/img-2-11x12.png 11w\" sizes=\"(max-width: 434px) 100vw, 434px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a08713c e-con-full e-flex e-con e-child\" data-id=\"a08713c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7351738 elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"7351738\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Seeking a seasoned mobile development team?<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-603cb16 elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"603cb16\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Count on Innowise to create a top-notch mobile app that matches your business goals.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c75d71a elementor-align-center elementor-widget elementor-widget-button\" data-id=\"c75d71a\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/innowise.com\/contact-us\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contact us<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-494d237 author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"494d237\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The dev_pilot package for creating a Flutter project<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b10734b elementor-widget elementor-widget-text-editor\" data-id=\"b10734b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">We are excited to introduce our newly released package, &#8220;dev_pilot,&#8221; developed by Innowise. This package aims to simplify the installation process for Dart projects, enabling developers to set up new projects quickly and efficiently.<\/span><\/p><p><span style=\"font-weight: 400;\">To begin with, dev_pilot serves as a valuable tool for developers seeking to expedite the creation of Flutter projects. It offers an interactive Command Line Interface (CLI) that guides users through providing project details such as the project name, features, and flavors. Subsequently, the package generates the necessary directory and file structure, effectively saving time and reducing effort.<\/span><\/p><p><span style=\"font-weight: 400;\">The code of dev_pilot is written in Dart, a contemporary programming language widely utilized for developing mobile and <a href=\"https:\/\/innowise.com\/services\/web-development\/\">web applications<\/a>. The code adheres to Dart coding conventions, boasting a well-organized and easily comprehensible structure.<\/span><\/p><p><span style=\"font-weight: 400;\">To accomplish various tasks like I\/O operations, logging, and validation, the code incorporates several essential packages and libraries, including dart:io, dcli, mason_logger, and others. Leveraging existing packages and libraries demonstrates the package&#8217;s judicious use of available resources, avoiding unnecessary reinvention.<\/span><\/p><p><span style=\"font-weight: 400;\">The main method serves as the entry point to the package, acting as the central hub for all operations. It initiates by verifying whether the provided argument is &#8220;create.&#8221; If the argument satisfies the condition, the package proceeds to prompt the user for additional project details, such as the project name, features, and previously mentioned flavors.<\/span><\/p><p><span style=\"font-weight: 400;\">To facilitate diverse tasks, the package relies on various services like DirectoryService, FileService, InputService, and others. The use of these services contributes to the code&#8217;s modularity and ease of maintenance, as they are thoughtfully organized.<\/span><\/p><p><span style=\"font-weight: 400;\">Another notable feature of the code is the utilization of &#8220;await&#8221; and &#8220;async&#8221; to handle asynchronous operations. This approach significantly improves code performance and responsiveness, showcasing a commendable implementation choice.<\/span><\/p><p><span style=\"font-weight: 400;\">Dev_pilot simplifies the process of creating a new Flutter project, allowing you to effortlessly incorporate features, flavors, packages, and generate code templates for different project components. Additionally, the package includes integrated validators to ensure accurate user input.<\/span><\/p><p><span style=\"font-weight: 400;\">Here is an overview of how Dev_pilot operates:<\/span><\/p><p><span style=\"font-weight: 400;\">It verifies whether the argument passed is &#8220;create&#8221;.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-850bf71 elementor-widget elementor-widget-image\" data-id=\"850bf71\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"40\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1-300x40.png\" class=\"attachment-medium size-medium wp-image-113152\" alt=\"The dev_pilot package for creating a Flutter project\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1-300x40.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1-1024x135.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1-768x101.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1-1536x203.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1-18x2.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-1.png 2000w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e0082e elementor-widget elementor-widget-text-editor\" data-id=\"5e0082e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">It verifies whether the argument passed is &#8220;create&#8221;.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-84ad668 elementor-widget elementor-widget-image\" data-id=\"84ad668\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"84\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2-300x84.png\" class=\"attachment-medium size-medium wp-image-113153\" alt=\"mobile app development digest\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2-300x84.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2-1024x286.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2-768x214.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2-1536x429.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2-18x5.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-2.png 2000w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c43b074 elementor-widget elementor-widget-text-editor\" data-id=\"c43b074\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">It checks if the Dart version falls within the acceptable range.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">If so, it prompts the user to enter a project name.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b26f97f elementor-widget elementor-widget-image\" data-id=\"b26f97f\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"26\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3-300x26.png\" class=\"attachment-medium size-medium wp-image-113154\" alt=\"The dev_pilot package for creating a Flutter project\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3-300x26.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3-1024x88.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3-768x66.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3-1536x132.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3-18x2.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-3.png 2000w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f8a9a2 elementor-widget elementor-widget-text-editor\" data-id=\"7f8a9a2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">It asks the user if they would like to specify a custom path for the project.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9efd9e9 elementor-widget elementor-widget-image\" data-id=\"9efd9e9\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"63\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4-768x63.png\" class=\"attachment-medium_large size-medium_large wp-image-113155\" alt=\"The dev_pilot package for creating a Flutter project\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4-768x63.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4-300x25.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4-1024x84.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4-1536x127.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4-18x1.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-4.png 2000w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ca0800 elementor-widget elementor-widget-text-editor\" data-id=\"3ca0800\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">If the user chooses to provide a path, they are prompted to enter the desired path.<\/span><\/p><p><span style=\"font-weight: 400;\">It inquires if the user wants to add feature modules to the project.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-686d8d8 elementor-widget elementor-widget-image\" data-id=\"686d8d8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"45\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5-300x45.png\" class=\"attachment-medium size-medium wp-image-113156\" alt=\"The dev_pilot package for creating a Flutter project\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5-300x45.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5-1024x153.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5-768x115.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5-1536x230.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5-18x3.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-5.png 2000w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20b19b0 elementor-widget elementor-widget-text-editor\" data-id=\"20b19b0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">If the user decides to include feature modules, they are prompted to enter the names of the desired modules.<\/span><\/p><p><span style=\"font-weight: 400;\">It asks the user if they want to add flavors to the project.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92fe8f3 elementor-widget elementor-widget-image\" data-id=\"92fe8f3\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"41\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6-300x41.png\" class=\"attachment-medium size-medium wp-image-113157\" alt=\"The dev_pilot package for creating a Flutter project\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6-300x41.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6-1024x140.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6-768x105.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6-1536x210.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6-18x2.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-6.png 2000w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-589f076 elementor-widget elementor-widget-text-editor\" data-id=\"589f076\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">If the user chooses to add flavors, they are prompted to enter the names of the desired flavors.<\/span><\/p><p><span style=\"font-weight: 400;\">It asks the user if they want to add packages to the project.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0a6660 elementor-widget elementor-widget-image\" data-id=\"a0a6660\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"64\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7-768x64.png\" class=\"attachment-medium_large size-medium_large wp-image-113158\" alt=\"The dev_pilot package for creating a Flutter project\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7-768x64.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7-300x25.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7-1024x85.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7-1536x127.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7-18x1.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-dev_pilot-package-for-creating-a-Flutter-project-7.png 2000w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66a383a elementor-widget elementor-widget-text-editor\" data-id=\"66a383a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">If the user decides to add packages, they are prompted to select a module and enter the names of the packages. This process is repeated until the user decides not to add any more packages.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-199e7c0 author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"199e7c0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Flutter Lab Innowise<\/span><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-acfb892 elementor-widget elementor-widget-text-editor\" data-id=\"acfb892\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In April, our company launched a Flutter lab in response to the market demand. Recognizing the shortage of professionals with relevant knowledge, we took the initiative to address this issue.<\/span><\/p><p><span style=\"font-weight: 400;\">The requirements for participants include proficiency in spoken English at a minimum level of B1, a basic understanding of Computer Science concepts, and well-developed soft skills. Prior knowledge of Dart\/Flutter is not necessary for applicants.<\/span><\/p><p><span style=\"font-weight: 400;\">The course will consist of 14 lessons, during which &#8220;students&#8221; will learn Dart\/Flutter and work on their own pet project. Following each lesson, a mentor will assess the understanding of the theory covered and conduct a code review. The instructors for this course are Flutter developers Alexander Guzich and Alexey Lebedev.<\/span><\/p><p><span style=\"font-weight: 400;\">As of the publication of this news, the first group is nearing completion. However, if the initial launch proves successful, we plan to repeat the course for subsequent batches.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23e9a70 author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"23e9a70\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Mobile development<\/span><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f1fde6 elementor-widget elementor-widget-text-editor\" data-id=\"4f1fde6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>iOS<\/h3><p><span style=\"font-weight: 400;\">This compilation encompasses a combination of YouTube collections, real-life case studies, and informative reviews with accompanying guides.<br \/><\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b566dea elementor-widget elementor-widget-text-editor\" data-id=\"b566dea\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Security from a mobile perspective<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/medium.com\/@kostadin.georgiev90\/security-from-mobile-perspective-5b7cdffdf3de\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">The article provides a concise overview of client application security across various levels, encompassing aspects from server communication to program code. Key points discussed include:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Risks associated with the use of mobile devices, such as data theft, malware, and phishing attacks.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Security levels for mobile applications.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The significance of security measures and their implementation.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Best practices to enhance mobile security, including the use of strong passwords, regular software updates, avoidance of unsecured Wi-Fi networks, and exercising caution with suspicious links or emails.<\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b4a91b elementor-widget elementor-widget-image\" data-id=\"5b4a91b\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1-1024x679.png\" class=\"attachment-large size-large wp-image-113208\" alt=\"Mobile development\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Mobile-development-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9412440 elementor-widget elementor-widget-text-editor\" data-id=\"9412440\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Rosetta, I&#8217;m sorry to say goodbye<\/span><\/h4><p>Source: <a href=\"https:\/\/betterprogramming.pub\/xcode-isnt-supported-under-rosetta-3cf214b34c58\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">With the launch of Xcode 14.3, Apple has discontinued support for Rosetta and subtly indicated to developers the need to adapt their projects for Apple Silicon. The Cyan developer shared a story about the obstacles their company encountered with their main product and the third-party solution that helped them eliminate the use of Rosetta.<\/span><\/p><p><span style=\"font-weight: 400;\">Summary:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Explanation of Rosetta.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">How the utilization of Rosetta was determined in the case of &#8220;Cyan&#8221;.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Steps taken to resolve the issue.<\/span><\/li><\/ul><p>Overall, a clear example of adapting the framework to the realities of ARM64 MacBooks, with our recommendation.<\/p><h4><span style=\"font-weight: 400;\">Understanding the impact of cyclomatic complexity on code quality in Swift<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/holyswift.app\/how-to-reduce-cyclomatic-complexity-in-swift\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Holy Swift<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This article delves into the concept of cyclomatic complexity in <a href=\"https:\/\/innowise.com\/technologies\/swift-development\/\">Swift software development<\/a> and provides recommendations for minimizing it. Cyclomatic complexity measures code intricacy based on the number of decision points or paths within the code.<\/span><\/p><p><span style=\"font-weight: 400;\">The author proposes several strategies for reducing cyclomatic complexity in Swift, including:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Replacing nested if-else statements with guard statements.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Breaking down extensive functions into smaller, modular functions.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Utilizing switch statements instead of if-else statements whenever feasible.<\/span><\/li><\/ul><p>Furthermore, the article explores the utilization of functional programming principles, such as employing higher-order functions like map, filter, and reduce, to simplify code and decrease complexity.<\/p><p><span style=\"font-weight: 400;\">Overall, this serves as a valuable resource for Swift developers aiming to enhance the comprehensibility, maintainability, and efficiency of their code.<\/span><\/p><h4><span style=\"font-weight: 400;\">Content caching with NSCache<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/www.andyibanez.com\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">andyIbanez.com<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">The author emphasizes the significance of content caching in iOS apps for enhancing performance and minimizing the volume of data transferred over the network. The article primarily concentrates on utilizing NSCache, the built-in caching mechanism in iOS, to cache content in iOS applications. NSCache functions as a key-value store that manages its contents and automatically releases objects that are no longer required.<\/span><\/p><p><span style=\"font-weight: 400;\">The article provides several instances of utilizing NSCache in iOS applications, including caching images, JSON data, and web content. Additionally, the article furnishes best practices for using NSCache, such as setting a maximum number of objects and implementing a cache eviction policy to control memory usage.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4205a76 elementor-widget elementor-widget-image\" data-id=\"4205a76\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1-1024x679.png\" class=\"attachment-large size-large wp-image-113209\" alt=\"Content caching with NSCache\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Content-caching-with-NSCache-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa5bde4 elementor-widget elementor-widget-text-editor\" data-id=\"fa5bde4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">How to store data in iOS: UserDefaults, Keychains, and sandwiches<\/span><\/h4><p><a href=\"https:\/\/telegra.ph\/How-to-Store-Data-in-iOS-Userdefaults-Keychains-and-Sandwiches-05-22\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This comprehensive and informative guide provides valuable insights into data storage in iOS. Recognizing the challenges that have perturbed many developers, this material proves to be particularly essential. In this resource, senior <a href=\"https:\/\/innowise.com\/services\/mobile-application-development\/ios\/\">iOS developer<\/a> red_mad_robot delves into storage engines, their utilization, and the advantages and disadvantages of each approach.<\/span><\/p><p><span style=\"font-weight: 400;\">The author meticulously analyzes the following tools:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">UserDefaults &#8211; ideal for storing user settings and flags.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Keychain &#8211; ensures secure data storage.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Lists &#8211; suitable for storing application configurations or libraries.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Databases &#8211; recommended for handling large amounts of diverse data.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">NSCache &#8211; designed for temporary data storage.<\/span><\/li><\/ul><p>Furthermore, this guide provides an in-depth analysis of various databases available on iOS:<\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cross-platform Realm, known for its speedy performance and user-friendly API.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Native Core Data, offering the convenience of a graphical interface for models and different storage types, facilitating testing.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">SQLite, enabling direct usage of SQL language without the need for additional heavyweight third-party libraries in your project.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">This resource is crucial for developers seeking a comprehensive understanding of iOS data storage options.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc5475d elementor-widget elementor-widget-image\" data-id=\"bc5475d\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1-1024x679.png\" class=\"attachment-large size-large wp-image-113210\" alt=\"How to store data in iOS UserDefaults, Keychains, and sandwiches\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-store-data-in-iOS-UserDefaults-Keychains-and-sandwiches-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c02df7 elementor-widget elementor-widget-text-editor\" data-id=\"5c02df7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">iOS Conf SG 2023<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/www.youtube.com\/playlist?list=PLED4k3CZkY9RBYTMNziVhwXGepdcUIz8B\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Youtube<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">iOS Conf SG is the largest iOS developer conference in Southeast Asia. It makes sense to find out what was discussed at the event this year! This playlist will help you with this: here are the highlights and speeches of the conference. Hundreds of developers from all over the world share their ideas, discoveries, developments &#8211; where else can you find such a source of insights useful for work, if not there?<\/span><\/p><h4><span style=\"font-weight: 400;\">Mastering canvas in SwiftUI<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/swiftwithmajid.com\/2023\/04\/11\/mastering-canvas-in-swiftui\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Swift with Majid<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">You can draw 2D graphics in SwiftUI using the Shape API, but the framework eventually converts all shapes into SwiftUI representations and renders them. This approach has its pros and cons. Luckily, you can draw rich 2D graphics without having to combine multiple shapes. This article just tells you how to use the Canvas view in SwiftUI.<\/span><\/p><h4><span style=\"font-weight: 400;\">Essential developer<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/www.youtube.com\/@EssentialDeveloper\" target=\"_blank\" rel=\"noopener nofollow\"><span style=\"font-weight: 400;\">Youtube<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This is not the article&#8217;s title, but rather the channel&#8217;s name. Caio and Mike, two developers who are a couple, manage an iOS development channel that boasts over 500 videos. This is no exaggeration. The videos are thoughtfully organized into various categories, such as:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Building iOS Apps with Swift, TDD &amp; Clean Architecture.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Live iOS Dev Mentorings.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clean iOS Architecture.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clean iOS Codebases.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Composing iOS View Controllers, and so on.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">It&#8217;s important to note that the collection comprises both recent videos on current topics and videos dating back 2-5 years. This is actually beneficial, especially for beginners, as older releases can provide a solid foundation. Nevertheless, it&#8217;s essential to consider the freshness of the information you&#8217;re consuming.<\/span><\/p><h4><span style=\"font-weight: 400;\">Identifying Core Data&#8217;s ability to perform lightweight migrations before loading the container<\/span><\/h4><p><a href=\"https:\/\/telegra.ph\/Identifying-Core-Datas-ability-to-perform-lightweight-migrations-before-loading-the-container-05-16\" target=\"_blank\" rel=\"noopener nofollow\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This is a remarkable demonstration of platform reverse engineering. When developing an application using the Core Data framework, it is common to design a data model that undergoes multiple modifications. The author discovered an alternative approach that eliminates the need to delete all the data and reload it, which can unnecessarily strain the server and drain users&#8217; device batteries. The text explores a simpler method that aims to minimize the repercussions of data structure changes and mitigate their adverse effects.<\/span><\/p><h3><span style=\"font-weight: 400;\">Android<\/span><\/h3><p><span style=\"font-weight: 400;\">We have selected three materials that offer in-depth guides on the nuances of Android development. Below, we will provide a brief description of each guide and include the respective links. You can then decide whether or not you find these lengthy reads valuable. Let&#8217;s proceed!<\/span><\/p><h4><span style=\"font-weight: 400;\">The newer the better: how we moved from GSON to Kotlinx.Serialization<\/span><\/h4><p><a href=\"https:\/\/telegra.ph\/The-newer-the-better-how-we-moved-from-GSON-to-KotlinxSerialization-05-22\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This material focuses on the experience of transitioning from GSON to Kotlinx.Serialization, narrated by an Android developer from Tinkoff Investments.<\/span><\/p><p><span style=\"font-weight: 400;\">But let&#8217;s start with a brief introduction to the star of the show: Kotlinx.Serialization. It is a serialization library developed by JetBrains specifically for Kotlin, designed to support multiple platforms and formats. The library comprises a compiler plugin, a core library, and several auxiliary libraries that facilitate various data serialization protocols.<\/span><\/p><p><span style=\"font-weight: 400;\">In this guide, you will discover:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The strengths of Kotlinx.Serialization, including its seamless compatibility with Kotlin and other advantages it offers.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The necessary steps to undertake when migrating to Kotlinx.Serialization.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Inevitable challenges you may encounter during the migration process and how to navigate them effectively.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A comprehensive performance comparison between GSON and Kotlinx.Serialization, showcasing how the application&#8217;s performance improves after the migration.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Noteworthy features introduced in the latest version of the library.<\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a92a79 elementor-widget elementor-widget-image\" data-id=\"9a92a79\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1-1024x768.png\" class=\"attachment-large size-large wp-image-113162\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1-1024x768.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1-300x225.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1-768x576.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1-1536x1152.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1-16x12.png 16w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-newer-the-better-how-we-moved-from-GSON-to-Kotlinx-Serialization-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a2d3a91 elementor-widget elementor-widget-text-editor\" data-id=\"a2d3a91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Campus map in Android app<\/span><\/h4><p><a href=\"https:\/\/telegra.ph\/Campus-Map-in-Android-App-05-16\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">An <a href=\"https:\/\/innowise.com\/services\/mobile-application-development\/android\/\">Android developer<\/a> from UMNO Digital shares insights about his personal project, which can be easily inferred from the article&#8217;s title. It revolves around a common scenario: a vast educational institution with numerous buildings, where locating the right audience, library, or department becomes a quest in itself. The author proposes a solution to this problem through an interactive map, and the guide provides a step-by-step description of how to create such a map. Interestingly, this approach could potentially be applicable to other similar structures like hospitals or large industries.<\/span><\/p><p><span style=\"font-weight: 400;\">The key requirements for the map are that it should be easily imported into the application and be updated independently of it. Otherwise, users would only receive the new map version after verifying and updating the entire application through the app store. Hence, the map must fulfill the following conditions:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Display the location of audiences, buildings, and provide route information.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Be created using a separate module to enable drawing capabilities.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Be hosted on a separate server to ensure quick updates.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">The guide then proceeds with a step-by-step explanation of how to transform the idea into reality. The instructions include:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Breaking down the map into components such as roads, buildings, and more.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Creating and drawing the map diagram (which may sound simple, but the author acknowledges the presence of pitfalls and challenges).<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Selecting a suitable library for rendering the different layers of the map.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Connecting the map to geographic coordinates.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Each step is described in detail, making it relatively easy to follow along (although the author admits the presence of certain difficulties and challenges). This guide serves as a starting point for developing a simple solution that can be continuously enhanced and refined. It allows for the addition of new elements and functions, modifications to the interface, and overall improvements. In summary, it provides valuable guidance, and we highly recommend it.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d05f77 elementor-widget elementor-widget-image\" data-id=\"3d05f77\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1-1024x679.png\" class=\"attachment-large size-large wp-image-113211\" alt=\"Campus map in Android app\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Campus-map-in-Android-app-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c40fa9d elementor-widget elementor-widget-text-editor\" data-id=\"c40fa9d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">How we reduced Android app launch time by 77%<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/medium.com\/turo-engineering\/how-we-reduced-our-android-startup-time-by-77-650cc113c3dc#:~:text=One%20easy%20way%20we%20were,in%20the%20overall%20startup%20time.\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Although the title may come across as clickbait or potentially dubious, it is actually an excellent guide to reducing application launch time. The team behind the Turo car-sharing app shares the steps they took and how they measured the results.<\/span><\/p><p><span style=\"font-weight: 400;\">Here is a summary of the article:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The initial state of the application launch and how it performed before optimization.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The improvements implemented by the team which include the introduction of a splash screen, deferring synchronous network requests, optimizing disk input\/output (I\/O), and other relevant techniques.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Measuring the improvements achieved and tracking potential issues.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">In case the guide doesn&#8217;t cover everything, the authors have also provided additional links to supplementary materials on the topic.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-99ae300 elementor-widget elementor-widget-image\" data-id=\"99ae300\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1-1024x679.png\" class=\"attachment-large size-large wp-image-113212\" alt=\"How we reduced Android app launch time by 77%\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-we-reduced-Android-app-launch-time-by-77-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c51ac7 elementor-widget elementor-widget-text-editor\" data-id=\"6c51ac7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Flutter<\/h3><p><span style=\"font-weight: 400;\">This comprehensive guide includes various topics related to <a href=\"https:\/\/innowise.com\/technologies\/flutter-development\/\">Flutter development<\/a>. It covers the latest trends in Flutter for the current year, provides a detailed case study on video streaming with Flutter, introduces a code generation tool, and offers practical tips for improving technical skills. And there&#8217;s even more valuable content that awaits you in this guide.<br \/><\/span><\/p><h4><span style=\"font-weight: 400;\">16 ideas to improve your Flutter skills (advanced roadmap)<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/medium.com\/@m-zimmermann1\/16-ideas-to-improve-your-flutter-skills-advanced-roadmap-67d468d2d0d8\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">The title itself suggests the importance of continuously honing one&#8217;s professional skills. This practical guide offers valuable tips to enhance your abilities, making it suitable for both novice and seasoned Flutter developers. The suggestions include:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">In-depth exploration of Flutter widgets.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Utilizing various animations and transitions.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Incorporating flows and reactive programming.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Leveraging Flutter&#8217;s built-in testing tools.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Exploring alternative Flutter frameworks.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Additionally, the article provides helpful recommendations and resources to stay updated with the latest advancements in the Flutter community.<\/span><\/p><h4><span style=\"font-weight: 400;\">6 takeaways from the Flutter 2023 roadmap<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/medium.com\/lost-but-coding\/6-takeaways-from-the-flutter-2023-roadmap-910fa823671a\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">If you have aspirations to advance in this field, this text is a must-read. It provides an overview of the Flutter strategy for 2023, with a specific focus on web development. The author delves into several key topics, including:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The current state of Flutter Web and the reasons why it is still not considered fully ready.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The relationship between Flutter and Web Assembly.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Exploring the landscape of games developed using Flutter and assessing their actual number.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The direction of Flutter&#8217;s focus on more intensive bug fixing.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The relationship between Flutter and Google Services.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The frequency of monthly beta releases.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">This is not a mere dry review; rather, it offers the author&#8217;s personal opinions and comments based on the official press release. It presents thought-provoking insights for readers to ponder upon.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e858d0 elementor-widget elementor-widget-image\" data-id=\"9e858d0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1-1024x679.png\" class=\"attachment-large size-large wp-image-113213\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-takeaways-from-the-Flutter-2023-roadmap-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33fe0d0 elementor-widget elementor-widget-text-editor\" data-id=\"33fe0d0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Have you heard of Shorebird?<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/www.linkedin.com\/pulse\/have-you-heard-shorebird-vilson-dauinheimer\/?trackingId=Zw0lSUWyF3lE2QWzs1XuRA%3D%3D\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Linkedin<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Presenting Eric Seidel, a Google engineer responsible for the development of Flutter, and Felix Angelov, also known as Felangel, the creator of the Bloc and Flutter_Bloc packages. Their combined expertise promises remarkable achievements. And they have indeed delivered!<\/span><\/p><p><span style=\"font-weight: 400;\">Introducing Shorebird, a new open-source project designed to simplify the creation of data-intensive web applications. Built on the Flutter framework and utilizing reactive programming techniques, Shorebird offers powerful and scalable application development.<\/span><\/p><p><span style=\"font-weight: 400;\">This article explores the key features of Shorebird, including real-time data synchronization, efficient data processing, and offline data access. The author emphasizes Shorebird&#8217;s user-friendly design and provides developers with a clear API.<\/span><\/p><p><span style=\"font-weight: 400;\">Moreover, Shorebird has the potential to revolutionize the development of data-rich web applications, particularly in critical industries like healthcare, finance, and logistics. Don&#8217;t miss the opportunity to discover more about Shorebird and its groundbreaking capabilities.<\/span><\/p><h4><span style=\"font-weight: 400;\">Save your time with CodeGpt code generation in Flutter<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/cevinways.medium.com\/save-your-time-with-codegpt-code-generation-in-flutter-e614fc071906\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Introducing CodeGPT, a new code generation tool specifically designed for Flutter applications. CodeGPT leverages AI and natural language processing techniques to automatically generate code based on simple English descriptions of the application&#8217;s features and capabilities. It&#8217;s an impressive solution, isn&#8217;t it?<\/span><\/p><p><span style=\"font-weight: 400;\">This article provides an informative overview of how CodeGPT works and highlights its key advantages. One notable benefit is the significant time savings and increased productivity achieved through automated code generation (as you might have already guessed). The article also includes a detailed example showcasing how CodeGPT can be utilized to generate code for a basic Flutter application. The author emphasizes the speed and ease of the process, resulting in well-structured and easily understandable code.<\/span><\/p><h4><span style=\"font-weight: 400;\">Unveiling the unconventional: 5 lesser-known obstacles in Flutter development<\/span><\/h4><p><a href=\"https:\/\/telegra.ph\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-05-16\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This article is based on the experience of a Surf Studio developer who was assigned to a project that required implementing video streaming functionality using Flutter. This article presents Timur&#8217;s experience, discussing how to approach developing platform features, the relationship between Flutter and native development, and providing insights into common pitfalls and effective solutions.<\/span><\/p><p><span style=\"font-weight: 400;\">In conclusion, the article offers a moral lesson and a bonus section featuring a range of complex and intriguing functionalities, some of which didn&#8217;t make it to the final release. Overall, readers will gain a better understanding of what to expect when undertaking similar tasks, as projects can be unpredictable in the world of software development.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d7b867 elementor-widget elementor-widget-image\" data-id=\"2d7b867\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1-1024x679.png\" class=\"attachment-large size-large wp-image-113214\" alt=\"Unveiling the unconventional 5 lesser-known obstacles in Flutter development\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Unveiling-the-unconventional-5-lesser-known-obstacles-in-Flutter-development-1.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e98a21c elementor-widget elementor-widget-text-editor\" data-id=\"e98a21c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">What is the difference between MVC and MVVM (for Flutter)?<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/medium.com\/@m-zimmermann1\/what-is-the-difference-between-mvc-and-mvvm-for-flutter-136cb33afc1\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">The article compares two popular design patterns &#8211; MVC (Model-View-Controller) and MVVM (Model-View-ViewModel) &#8211; for building Flutter applications. The author explains the main concepts of each pattern and highlights the differences between them. The MVC pattern divides an application into three components:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A model that represents data and logic.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The view that handles the data view.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A controller that acts as an intermediary between the model and the view.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">The rest of the article talks about MVVM, which is similar to MVC but adds a new component, the view model. It is responsible for processing the presentation logic and binding the data, separating it from the presentation.<\/span><\/p><p><span style=\"font-weight: 400;\">Once you&#8217;re a bit in the know, the author moves on to discuss the pros and cons of each approach. In particular, it is noted that MVC is simple and straightforward, while MVVM offers better separation of concerns and easier testing. We also draw our attention to the fact that Flutter provides built-in support for both patterns, which makes it easier for developers to choose the approach that best suits their needs.<\/span><\/p><h4><span style=\"font-weight: 400;\">Flutter\u2019s device preview: get a sneak peek of your app\u2019s appearance on any device<\/span><\/h4><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/blog.nonstopio.com\/flutters-device-preview-get-a-sneak-peek-of-your-app-s-appearance-on-any-device-c55526604588?gi=9ef0a602c8a3\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Medium<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">The tool described in the article proves to be highly valuable in situations where a responsive user interface is needed, but there is limited time or access to multiple devices (either physically or during ongoing development). Referred to as the Device Review tool, it offers the capability to preview applications across various devices and screen sizes, which is undeniably its most beneficial aspect.<\/span><\/p><p><span style=\"font-weight: 400;\">By utilizing Device Preview, developers can efficiently detect layout and user interface design issues at an early stage of the development process. The article provides comprehensive information on how to install, configure, and utilize Device Review, along with an explanation of its underlying principles. Readers will find this engaging text an informative guide to understanding the necessary steps and intricacies involved in leveraging this remarkable tool.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a253ff7 elementor-widget elementor-widget-image\" data-id=\"a253ff7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"509\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1-768x509.png\" class=\"attachment-medium_large size-medium_large wp-image-113215\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Flutters-device-preview-get-a-sneak-peek-of-your-apps-appearance-on-any-device-1.png 2000w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da367c2 author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"da367c2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">General<\/span><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-334f7b5 elementor-widget elementor-widget-text-editor\" data-id=\"334f7b5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>How to help your lead not to mess up<\/h3><p><a href=\"https:\/\/telegra.ph\/How-to-Help-Your-Lead-Not-to-Mess-Up-05-22\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Instead of retelling and attempting to evaluate the content, as an exception, the author herself will be given the floor:<\/span><\/p><p><span style=\"font-weight: 400;\">&#8220;Hello everyone, my name is Veronica, and I hold the position of Head of Developer Relations at Dodo Engineering. [&#8230;] Veronica acknowledges firsthand that many managerial mistakes can be prevented early on. She has witnessed teams successfully rescuing their leaders from potential disasters. In this article, she has curated nine stories from different development teams, including her own, that shed light on the imminent dangers of managerial blunders. Each story is accompanied by practical recommendations, based on real-life experiences, to help subordinates prevent project collapse and catastrophe.<\/span><\/p><p><span style=\"font-weight: 400;\">It may seem like a daunting read, but let&#8217;s settle in and start exploring these narratives. After all, each of us aims to foster a friendship with our own team lead, don&#8217;t we? \ud83d\ude42<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ace51b2 elementor-widget elementor-widget-image\" data-id=\"ace51b2\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"509\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1-768x509.png\" class=\"attachment-medium_large size-medium_large wp-image-113216\" alt=\"How to help your lead not to mess up\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/How-to-help-your-lead-not-to-mess-up-1.png 2000w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e67c78 elementor-widget elementor-widget-text-editor\" data-id=\"0e67c78\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Soft skills: sorting things out once and for all<\/h3><p><a href=\"https:\/\/telegra.ph\/Soft-Skills-Sorting-Things-Out-Once-and-for-All-05-19\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">If you are still firmly convinced that soft skills are from the evil one and recruiters \/ HRs of all stripes invented them out of boredom, we beg you: read this text. The author is greatly bombarded by the &#8220;revelations&#8221; that &#8220;experts&#8221; post all over the Internet, and he wrote his own (rather bold, I must say) text, in which he breaks it all down:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">What are soft skills (the term was coined in the US Army in the 60s, by the way)?<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">How to determine if your skill is a soft skill?<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">What can test soft skills in an interview turn into?<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">We promise a couple of insights and reasons to &#8220;think&#8221;. Have you ever thought, for example, that soft skills in one profession can be hard skills in another and vice versa? Let&#8217;s add funny examples here &#8211; and now an interesting reading is ready for a coffee break.<\/span><\/p><h3>The race against time: can humanity successfully control artificial intelligence before it leads to a worldwide catastrophe?<\/h3><p><a href=\"https:\/\/telegra.ph\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-05-17\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source link<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This is a captivating and thought-provoking long read featuring reflections on the future with artificial intelligence from a familiar author.<\/span><\/p><p><span style=\"font-weight: 400;\">In this compelling piece, the author delves into the essence of GPT models, pondering whether they embody true AI or simply serve as text generators. The text also contemplates the potential disappearance, or rather the author&#8217;s desire for certain professions to become obsolete. Additionally, the consequences of successfully creating a formidable artificial intelligence are contemplated, along with an examination of intelligence itself and the means to evaluate it.<\/span><\/p><p><span style=\"font-weight: 400;\">Moreover, the author shares their insights on diverse topics, such as the future trajectory of individual AI assistants, the true pace of technological advancements, the challenges associated with setting goals for AI, and the far-reaching implications of the competitive race among companies to attain AI supremacy. It is an engrossing read that encourages broadening horizons. While AI may currently have limited relevance in your life, it is crucial to acknowledge its inevitable integration into the lives of all individuals in the future.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f3aa234 elementor-widget elementor-widget-image\" data-id=\"f3aa234\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"509\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1-768x509.png\" class=\"attachment-medium_large size-medium_large wp-image-113217\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1-768x509.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1-300x199.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1-1024x679.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1-1536x1018.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/The-race-against-time-can-humanity-successfully-control-artificial-intelligence-before-it-leads-to-a-worldwide-catastrophe-1.png 2000w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ec8912e elementor-widget elementor-widget-text-editor\" data-id=\"ec8912e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>How Slack sends millions of messages in real time<\/h3><p><span style=\"font-weight: 400;\">Source: <\/span><a href=\"https:\/\/slack.engineering\/real-time-messaging\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Slack<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">This material presents an analysis of the flow within a client-server application, specifically focusing on the development of a real-time system capable of handling a large audience. The article explores the architectural approach employed to enable real-time message delivery on a massive scale. It also examines the services responsible for transmitting messages to chat platforms and delivering various events to online users.<\/span><\/p><p><span style=\"font-weight: 400;\">Summary:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Server overview.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Configuration of the Slack client.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Real-time message delivery to millions of clients.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Handling events.<\/span><\/li><\/ul><h3>Bonus<\/h3><p><span style=\"font-weight: 400;\">Here you will find a range of diverse requests that can help you optimize the chat experience or tailor it precisely to your requirements: <\/span><a href=\"https:\/\/www.jailbreakchat.com\/\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">https:\/\/www.jailbreakchat.com\/<\/span><\/a><\/p><h3>Comparing graphical neural networks: determining the top performer<\/h3><p><span style=\"font-weight: 400;\">After we began using Midjourney to generate images for our work requirements, we found ourselves unable to stop and started exploring other graphical neural networks. If you think they all seem similar, we suggest you continue reading.<\/span><\/p><p><span style=\"font-weight: 400;\">We conducted tests with tools like Lexica, Stabble Diffusion on Dezgo, and Leonardo (the latter is still in Beta testing), comparing them with Midjourney. Throughout the process, we highlighted their pros and cons, as well as the nuances of their usage.<\/span><\/p><p><span style=\"font-weight: 400;\">We opted for a straightforward approach: we submitted the same requests and evaluated the results. There were three specific requests:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Process a portrait of Scarlett Johansson in a specific style.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Create a representation of Warsaw in the style of three different artists.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Design a logo with accompanying text.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Let&#8217;s clarify from the outset that we understand these requests could have been more detailed and refined, which would have undoubtedly improved the results in all cases. However, we chose to begin with simple examples and limited variations. Even in these cases, we observed how neurons sometimes fixated on one aspect of the request while completely disregarding the rest.<\/span><\/p><h4><span style=\"font-weight: 400;\">Portrait<\/span><\/h4><p><span style=\"font-weight: 400;\">The request was: Matisse style painting, pink colors, many flowers. Initially, the author of these lines conducted personal experiments, but for work purposes, they eventually opted for a more prominent individual.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69e5177 elementor-widget elementor-widget-image\" data-id=\"69e5177\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-1024x683.png\" class=\"attachment-large size-large wp-image-113182\" alt=\"Portrait\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-1024x683.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-300x200.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-768x512.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-1536x1025.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-18x12.png 18w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-edc5702 elementor-widget elementor-widget-text-editor\" data-id=\"edc5702\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><i><span style=\"font-weight: 400;\">For reference: this is what Matisse&#8217;s work looked like:<\/span><\/i><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb5754a elementor-widget elementor-widget-image\" data-id=\"bb5754a\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2-1024x819.png\" class=\"attachment-large size-large wp-image-113183\" alt=\"Matisse\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-2.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b4cb4b elementor-widget elementor-widget-text-editor\" data-id=\"4b4cb4b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">And here&#8217;s what the neural networks came up with. As you can see, each network has varying knowledge about the renowned French artist, Matisse.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Lexica (1-2) appears to have no information about Matisse, and in one version, the actress inexplicably became Asian.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Dezgo (3-5), depending on the settings, offered options that were either very close to the master&#8217;s brushwork (but far from the original) or presented a lighter stylization. There were even a couple of instances where the AI suggested a still life instead of a portrait.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Midjourney (6-7), which usually produces accurate results, was a bit disappointing this time: the actress became unrecognizable, and the flowers were not rendered in the appropriate style.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Leonardo (8-9) considered the flowers and the color pink, maintaining some resemblance to the original, and creatively interpreted the composition. However, not all settings captured the artist&#8217;s drawing style accurately.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c18f51b elementor-widget elementor-widget-image\" data-id=\"c18f51b\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3-1024x819.png\" class=\"attachment-large size-large wp-image-113184\" alt=\"AI Portrait\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Portrait-3.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8aaa59 elementor-widget elementor-widget-text-editor\" data-id=\"d8aaa59\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Urban landscape<\/span><\/h4><p><span style=\"font-weight: 400;\">Let&#8217;s try to depict Warsaw. The query was: &#8220;Warsaw is painted in X style.&#8221; Various artists&#8217; styles were selected for two reasons: a) the author of the article has a passion for art, and b) the typical styles in which neural networks draw, such as graphics, anime, cartoons, and digital art, have become monotonous. Additionally, it was intriguing to observe how neural networks would respond to slightly more complex criteria and gather information about the chosen style.<\/span><\/p><p><span style=\"font-weight: 400;\">Three artists were selected for their remarkably different styles:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Gustav Klimt, known for Viennese Art Nouveau.<\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a3c200 elementor-widget elementor-widget-image\" data-id=\"1a3c200\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt-1024x819.png\" class=\"attachment-large size-large wp-image-113185\" alt=\"Urban landscape Gustav Klimt\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/1-Urban-landscape-Gustav-Klimt.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd89ed6 elementor-widget elementor-widget-text-editor\" data-id=\"dd89ed6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li><span style=\"font-weight: 400;\">Mark Rothko, renowned for abstract expressionism.<\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3838753 elementor-widget elementor-widget-image\" data-id=\"3838753\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko-1024x819.png\" class=\"attachment-large size-large wp-image-113186\" alt=\"Urban landscape Mark Rothko\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/2-Urban-landscape-Mark-Rothko.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f8100b elementor-widget elementor-widget-text-editor\" data-id=\"4f8100b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Salvador Dali, celebrated for surrealism.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Interestingly, each of these masters started with one style but gained fame for another, leading to varying results when gathering information. In the case of Klimt, this pattern held true. Midjourney (1) focused on his famous &#8220;golden&#8221; portraits, while Lexica (3) explored landscapes. Stabble Diffusion on Dezgo (2) emphasized Klimt&#8217;s unique approach of incorporating cut-out objects into his paintings, and Leonardo (4) added a touch of Klimt&#8217;s essence to realistic depictions of the old city.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-099094b elementor-widget elementor-widget-image\" data-id=\"099094b\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape-1024x819.png\" class=\"attachment-large size-large wp-image-113188\" alt=\"Urban landscape\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/4-Urban-landscape.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-68aff3e elementor-widget elementor-widget-text-editor\" data-id=\"68aff3e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">When it came to Rothko, the neural networks provided clearer interpretations: stripes remained as stripes, albeit with subtle variations. The distinctive features of Warsaw, such as spires and skyscrapers, were predominantly preserved. The attributions are as follows: Midjourney (1), SD on Dezgo (2), Lexica (3), and Leonardo (4).<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ae906e7 elementor-widget elementor-widget-image\" data-id=\"ae906e7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape-1024x819.png\" class=\"attachment-large size-large wp-image-113225\" alt=\"5 Urban landscape\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/5-Urban-landscape.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca257fd elementor-widget elementor-widget-text-editor\" data-id=\"ca257fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Once again, there was a blend of confusion and exploration. Lexica (3) captured Dali&#8217;s characteristic composition, hovering between heaven and earth. Midjourney (1) observed Dali&#8217;s penchant for vertically elongating images, while also incorporating Warsaw&#8217;s symbol\u2014the mermaid\u2014in a unique way. Dezgo (2) skillfully represented Dali&#8217;s style of incorporating cut-out objects into paintings, giving them an otherworldly quality. Lastly, Leonardo (4) suggested the idea of a mural featuring Dali&#8217;s portrait on a building wall, which resonated with the artist&#8217;s spirit.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-226f1dc elementor-widget elementor-widget-image\" data-id=\"226f1dc\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape-1024x819.png\" class=\"attachment-large size-large wp-image-113190\" alt=\"AI urban landscape\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/6-Urban-landscape.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-015b372 elementor-widget elementor-widget-text-editor\" data-id=\"015b372\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Logo<\/span><\/h4><p><span style=\"font-weight: 400;\">Designing a logo that incorporates text poses the greatest challenge on our list. Many neural networks still struggle with effectively translating text into an image. Perhaps some of them have acquired the necessary skills for this task.<\/span><\/p><p><span style=\"font-weight: 400;\">The request was as follows:<\/span><\/p><p><i><span style=\"font-weight: 400;\">text logo of the company that produces videogames, white or transparent background, orange, blue and green colours<\/span><\/i><\/p><p><span style=\"font-weight: 400;\">There is nothing particularly noteworthy to discuss in this case, as everything is quite apparent. We have chosen both the most successful and the most unconventional options. Once again, it became evident that neural networks still struggle with generating text, but even prior to that, we observed distinct differences in styles.<\/span><\/p><p><span style=\"font-weight: 400;\">The attributions are as follows:<\/span><\/p><p><span style=\"font-weight: 400;\">1 and 2: Lexica<\/span><\/p><p><span style=\"font-weight: 400;\">3 and 4: Dezgo<\/span><\/p><p><span style=\"font-weight: 400;\">5 and 6: Leonardo<\/span><\/p><p><span style=\"font-weight: 400;\">7 and 8: Midjourney<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eb0c814 elementor-widget elementor-widget-image\" data-id=\"eb0c814\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"640\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo-1024x819.png\" class=\"attachment-large size-large wp-image-113191\" alt=\"Logo\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo-1024x819.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo-300x240.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo-768x614.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo-1536x1229.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo-15x12.png 15w, https:\/\/innowise.com\/wp-content\/uploads\/2023\/05\/Logo.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43748ae elementor-widget elementor-widget-text-editor\" data-id=\"43748ae\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"font-weight: 400;\">Conclusion<\/span><\/h4><p><span style=\"font-weight: 400;\">Graphical neural networks exhibit variations in their processing methods, information gathering techniques, and visual approaches. This implies a vast realm of experimentation and creativity for users, while also necessitating adaptability, learning from failures, understanding settings, and making iterative attempts.<\/span><\/p><p><span style=\"font-weight: 400;\">Although detailed requests tend to yield more effective results than general ones, they do not always guarantee a satisfactory outcome. Moreover, they require users to possess domain knowledge and the ability to formulate prompts, which not everyone may possess.<\/span><\/p><p><span style=\"font-weight: 400;\">Neural networks also differ in terms of available settings, which is why the outcomes of our evaluations may not be entirely perfect. In some cases, we had to tweak the settings to obtain results that even remotely resembled the desired request. For instance, Midjourney allows users to create a text query and specify the desired image format, while also responding to requests for a white or transparent background, unlike other neural networks.<\/span><\/p><p><span style=\"font-weight: 400;\">Dezgo offers options to choose the format (portrait or landscape), performance accuracy, assembly model, and sampling method. Lexica follows a similar pattern with options for format and execution accuracy. Leonardo, on the other hand, allows users to select the number of images (up to 8) and offers a background removal function, although it may not work optimally with intricate details at the edges. Additionally, Leonardo features several settings, including the intriguing &#8220;Prompt Magic&#8221; button, which we have yet to explore.<\/span><\/p><p><span style=\"font-weight: 400;\">There is still much for neural networks to improve upon. Text wrapping often remains problematic, realistically rendered hands are a rarity rather than the norm, and some finished images only partially capture the request while disregarding other details. These challenges represent only a portion of the issues at hand.<\/span><\/p><p><span style=\"font-weight: 400;\">Not all neural networks are freely accessible. While experimentation on Dezgo is free (hence our frequent use of it), Midjourney offers a paid subscription after a certain number of free requests (starting from $8\/month + taxes, making it our second tool). Leonardo provides 150 daily free requests for those who join their Beta testing group, with a response time of around a week or two (a paid version with additional features is also available, starting from $10\/month). Lexica is priced similarly to Midjourney but offers greater functionality with its free requests.<\/span><\/p><p><span style=\"font-weight: 400;\">Graphical neural networks undeniably serve as powerful tools. They have aided us in illustrating various subjects (although at times we had to put in extra effort to obtain useful results), and their output has adorned our company&#8217;s monthly digest, not to mention their utility in creating images for posts and announcements. Overall, we utilize these networks ourselves and encourage others to explore and master their potential.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4eff73b4 elementor-widget elementor-widget-html\" data-id=\"4eff73b4\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"thank-rating\">\n    Thank you for rating!\n<\/div>\n<div class=\"thank-comment\">\n    Thank you for comment!\n<\/div>\n<script src=\"\/wp-content\/themes\/hello-elementor\/assets\/js\/blog\/rating-star.js\"><\/script>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4bb11db4 elementor-widget elementor-widget-html\" data-id=\"4bb11db4\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"\/wp-content\/themes\/hello-elementor\/assets\/js\/blog\/rating-star.js\"><\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-033a0fc e-flex e-con-boxed e-con e-parent\" data-id=\"033a0fc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c05ad6 elementor-widget elementor-widget-shortcode\" data-id=\"4c05ad6\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[post_share]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-aff07e7 table-content-container\" data-id=\"aff07e7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t<div class=\"elementor-element elementor-element-96bf3b7 author-wrapper e-flex e-con-boxed e-con e-parent\" data-id=\"96bf3b7\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ed9b74 elementor-widget elementor-widget-html\" data-id=\"9ed9b74\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"author-wrap\">\r\n      <div class=\"author-info\">\r\n        <img loading=\"lazy\" decoding=\"async\"\r\n        class=\"author-info__img\"\r\n          src=\"\/wp-content\/uploads\/2022\/06\/1bee896c-2dac-4cf8-8f89-f87422fe0dab.png\"\r\n          width=\"50\"\r\n          height=\"50\"\r\n          alt=\"author\"\r\n        \/>\r\n        <div class=\"author-info__personal-data\">\r\n          <a class=\"author-info__personal-data__name\" href=\"https:\/\/innowise.com\/authors\/eugene-shapovalov\/\">\r\n           Eugene Shapovalov\r\n          <\/a>\r\n          <span class=\"author-info__role\">Head of Mobile Department\r\n<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"author-gray-line\"><\/div>\r\n      <div class=\"author-date-publish\">\r\n        <span>Date:<\/span> <span>May 23, 2023<\/span>\r\n      <\/div>\r\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-section elementor-inner-section elementor-element elementor-element-48019a8 elementor-section-full_width table-of-contents__sticky-container stickyWrapper72 elementor-section-height-default elementor-section-height-default\" data-id=\"48019a8\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-2f1f65f author-block\" data-id=\"2f1f65f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4d7dec5 ddcv elementor-widget elementor-widget-html\" data-id=\"4d7dec5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n\r\n.article-description > .e-con-inner {\r\n     align-items: baseline !important;\r\n}\r\n\r\n.stickyWrapper72{\r\n    position: sticky;\r\n    top: 72px;\r\n    bottom: auto;   \r\n}  \r\n\r\n.toc-title {\r\n    margin: 0 !important;\r\n}\r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", ()=>{\r\n        \r\nconst headerElement = document.querySelector(\".new-menu\");\r\n\r\nconst stickyElement = document.querySelector(\".stickyWrapper72\");\r\n\r\nconst headerElementH = headerElement.clientHeight;\r\n\r\n\r\nstickyElement.style.top =  headerElementH + 60 + \"px\";\r\n        \r\n});\r\n<\/script>\r\n\r\n<!--NOTE Change data-id in wrapper styles for hide this block on the mobile device screen-->\r\n<div class=\"toc-wrapper\">\r\n  <h3 class=\"toc-title\">Table of contents<\/h3>\r\n  <div class=\"toc toc-2\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n  \/\/NOTE Add the value from h2 as the key and the text you want to display as the key value in LINKS variable:\r\n  \/\/   const LINKS = {\r\n  \/\/       \"The demand for retail digital transformation\": \"The demand\"\r\n  \/\/   }\r\n\r\n  const LINKS = {\r\n    \"Unleashing the power of .NET 8\": \"gggggg\",\r\n    \"Revamping legacy systems: unlocking business potential through software modernization\":\r\n      \"hello\",\r\n  };\r\n\r\n  const OFFSET = 70;\r\n   const PADDING_BOTTOM_FOR_SCROLL = 100;\r\n  let headerList = [];\r\n  let allLinks = [];\r\n  \r\n  let ticking = false;\r\n     \r\n\r\n  const createList = () => {\r\n      \r\n      console.log('create');\r\n      \r\n      \r\n    const tocTarget = document.querySelector(\".toc.toc-2\");\r\n    const toc = document.createElement(\"ul\");\r\n    \r\n    \r\n    \r\n     headerList = [...document.querySelectorAll(\"h2\")];\r\n\r\n\r\n    \r\n    headerList = headerList.slice(0, -3);\r\n    \r\n    const filteredNodes = [document.querySelector(\".related_content_blog_container h2\")]\r\n    \r\n    headerList = headerList.filter((node)=> !filteredNodes.includes(node))\r\n    \r\n    \r\n   headerList.forEach((header,index) => {\r\n      const headerId = header.getAttribute(\"id\");\r\n      const headerText =\r\n        header.dataset.title && header.dataset.title !== \"\"\r\n          ? header.dataset.title\r\n          : header.textContent;\r\n          \r\n\r\n      const headerTocText = header.dataset.title;\r\n\r\n      const idFromText =\r\n        !headerId || headerId === \"\"\r\n          ? headerText\r\n              .toLowerCase()\r\n              .replace(\/[^\\w ]+\/g, \"\")\r\n              .replace(\/ +\/g, \"-\")\r\n          : headerId;\r\n          \r\n         \r\n\r\n      const newListItem = document.createElement(\"li\");\r\n      const newLink = document.createElement(\"a\");\r\n      newLink.setAttribute(\"href\", \"#\" + idFromText);\r\n      newLink.textContent = LINKS[headerText] || headerText;\r\n\r\n      newLink.addEventListener(\"click\", (e) => {\r\n          \r\n        e.preventDefault();\r\n        const y =\r\n          header.getBoundingClientRect().top +\r\n          window.pageYOffset -\r\n          PADDING_BOTTOM_FOR_SCROLL -\r\n          OFFSET;\r\n          ticking = true; \r\n        window.scrollTo({ top: y, behavior: \"smooth\" });\r\n        \r\n        setTimeout(()=>{\r\n            ticking = false;\r\n        },500);\r\n        \r\n      });\r\n      \r\n\r\n      newListItem.appendChild(newLink);\r\n    toc.appendChild(newListItem);\r\n    \r\n    \r\n    });\r\n    tocTarget.appendChild(toc);\r\n    allLinks = Array.from(document.querySelector(\".toc.toc-2\").querySelectorAll(\"ul li\"));\r\n  };\r\n\r\n  const setContainerHeight = () => {\r\n    const windowHeight = window.innerHeight;\r\n    const tocContainer = document.querySelector(\".ddcv\");\r\n\r\n    tocContainer.style.maxHeight = \"calc(100vh - 230px)\";\r\n    tocContainer.style.minHeight = \"200px\";\r\n  };\r\n\r\n\r\n  const checkScroll = () => {\r\n      const windowHeight = window.innerHeight;\r\n      const scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n\r\n      let selectedHeaderIndex = -1;\r\n\r\n      headerList.forEach((header, index) => {\r\n        \r\n  const posTop = header.getBoundingClientRect().top;\r\n       \r\n\r\n const isInViewport = posTop + elem.clientHeight <= window.innerHeight ;\r\n \r\n\r\n \r\n if(isInViewport){\r\n      selectedHeaderIndex = index;\r\n }\r\n        \r\n\r\n\r\n        \r\n      });\r\n      \r\n\r\n\r\n        allLinks.forEach((link, i) => {\r\n            if(i === selectedHeaderIndex){\r\n              link.classList.remove(\"pre-active\");  \r\n              link.classList.add(\"active\");\r\n            }\r\n            if(i < selectedHeaderIndex){\r\n              link.classList.add(\"pre-active\"); \r\n               link.classList.remove(\"active\");\r\n            }\r\n             if(i > selectedHeaderIndex){\r\n            link.classList.remove(\"pre-active\");\r\n            link.classList.remove(\"active\");\r\n            }\r\n            \r\n            \r\n            \r\n        });\r\n        \r\n\r\n\r\n  };\r\n\r\n  const loadAllImages = () => {\r\n    const images = document.getElementsByTagName(\"img\");\r\n\r\n    for (let i = 0; i < images.length; i++) {\r\n      const img = images[i];\r\n      const src = img.getAttribute(\"data-src\") || img.src;\r\n      img.src = src;\r\n    }\r\n  };\r\n\r\n  loadAllImages();\r\n  \r\n  \r\n  \r\n\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n      \r\n      \r\n     setTimeout(()=>{\r\n           createList();\r\n    setContainerHeight();\r\n  \r\n    \r\n    document.addEventListener(\"scroll\", (event) => {\r\n  if (!ticking) {\r\n    checkScroll();\r\n  }\r\n});\r\n    \r\n    \r\n},300) \r\n\r\n    \r\n  });\r\n\r\n\r\n  \r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dfc93ef rate-article elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dfc93ef\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-b4a9343 rate-article-first-block\" data-id=\"b4a9343\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-6db50f8 rate-container\" data-id=\"6db50f8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9a22e7c rate-text elementor-widget elementor-widget-text-editor\" data-id=\"9a22e7c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Rate this article:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-ee109ce rate-article-star-block\" data-id=\"ee109ce\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4f1f3ad elementor--star-style-star_unicode elementor-star-rating--align-left elementor-star-rating-tablet--align-left elementor-widget elementor-widget-star-rating\" data-id=\"4f1f3ad\" data-element_type=\"widget\" data-widget_type=\"star-rating.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"elementor-star-rating__wrapper\">\n\t\t\t\t\t\t<div class=\"elementor-star-rating\" title=\"4\/5\" itemtype=\"http:\/\/schema.org\/Rating\" itemscope=\"\" itemprop=\"reviewRating\"><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-empty\">&#9733;<\/i> <span itemprop=\"ratingValue\" class=\"elementor-screen-only\">4\/5<\/span><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-eabf73f\" data-id=\"eabf73f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e6c178a reviews elementor-widget elementor-widget-text-editor\" data-id=\"e6c178a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>4.8\/5 (45 reviews)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c55ecdf rate-comment elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c55ecdf\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-f922cee comment-article-first-block\" data-id=\"f922cee\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-66 elementor-top-column elementor-element elementor-element-2adc2a1\" data-id=\"2adc2a1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-0ed642d e-flex e-con-boxed e-con e-parent\" data-id=\"0ed642d\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-49f884f elementor-widget elementor-widget-shortcode\" data-id=\"49f884f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f100240-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"100240\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/pl\/wp-json\/wp\/v2\/posts\/113149#wpcf7-f100240-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"100240\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f100240-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<style>\n#form-templates .contact__info {\n  background-color: #f4f4f4;\n  padding: 70px 44px 70px 50px;\n  position: relative;\n  max-width: 540px;\n  width: 100%;\nborder: 1px solid #AEB1B7;\n}\n\n#form-templates .contact__info-background {\n  z-index: -1;\n  position: absolute;\n  top: 20px;\n  left: 20px;\n  width: 100%;\n  height: 100%;\n  border: 1px dashed #ef4557;\n}\n\n\n#form-templates .new-container{\ndisplay: flex;\njustify-content: space-between;\nflex-wrap: wrap;\n}\n\n\n#form-templates{\npadding: 100px 15px 100px 15px;        \n}\n\n#form-templates .contact__info-heading {\n  font-family: 'Sora' !important;\n  font-style: normal !important;\n  font-weight: 400 !important;\n  font-size: 36px !important;\n  line-height: 46px !important;\n  color: #2E2E2E !important;\n   margin-bottom: 60px !important;\n\n}\n\n\n#form-templates .message label{\ncolor: #585858 !important;   \n}\n\n.elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n font-size: 60px !important;\n  line-height: 70px !important;\n  font-family: \"Sora\", Sans-serif;\n  font-weight: 400;\n  margin: 0;  \n  margin-bottom: 20px;\n}\n\n\n\n\n.elementor-widget-container.form-template p{\n  font-family: \"Karla\", Sans-serif;\n  font-size: 22px;\n  font-weight: 400;\n  line-height: 28px;\n  color: var( --e-global-color-primary );\n  max-width: 700px;\n  margin: 0; \n  margin-bottom: 40px;\n} \n  \n\n\n.new-container #spinner{\nwidth: 50%;\nmax-width: 700px;\n}\n\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:30px; \n    \n}\n\n\n#form-templates .contact__info-heading {\n  margin-bottom: 67px;\n  font-size: 36px;\n  font-family: karla;\n  color:  #2E2E2E;\n\n  line-height: 49px;\n}\n\n#form-templates .contact__info-steps {\n  display: flex;\n  flex-direction: column;\n  max-width: 425x;\n  row-gap: 20px;\n  border-left: 1px solid #2e2e2e;\n}\n\n#form-templates .contact__info-block {\n  position: relative;\n  padding-left: 45px;\n}\n\n#form-templates .contact__info-block:last-child {\n  box-shadow: -1px 0 0 1px #f4f4f4;\n}\n\n#form-templates .contact__info-step {\n  position: absolute;\n  border: 1px solid #2e2e2e;\n  width: 40px;\n  height: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 20px;\n  left: -20px;\n  top: -8px;\n  background-color: #F4F4F4;\n  color:  #2E2E2E;\n\nfont-family: Karla;\nfont-weight: 700;\nfont-size: 18px;\nline-height: 28px;\n\n}\n\n.elementor-widget-global .contact__info-step {\n        color:  #2E2E2E;\n}\n\n#form-templates .contact__info-text {\n  margin: 0;\n  font-size: 16px;\n  line-height: 26px;\n  color: #2E2E2E;\n  font-family: karla;\n\n  width: 100%;\n}\n\n\n#form-templates .contact-us__send{\nflex-shrink: 0;\nmargin-top:0;\n}\n\n\n\n@media screen and (max-width: 1279px) {\n    .new-container #spinner{\n        width: 100%;\n        max-width:100%;\n        margin-bottom:40px;\n    }\n    \n\n    .new-container .contact__info {\n        max-width: 700px !important;\n    }\n    \n}\n\n\n@media screen and (max-width: 1279px) {\n#form-templates{\npadding: 60px 15px 70px 15px;     \n}\n}\n\n\n\n@media screen and (max-width: 767px) {\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:20px; \n \n}\n\n\n  #form-templates .contact__info {\n    padding: 20px 20px 40px 40px;\n    margin: 0 auto;\n  }\n\n\n#form-templates{\npadding: 40px 15px 50px 15px;  \n    \n}\n\n  \n   .new-container #spinner{\n       \n    margin-bottom:30px;   \n   }\n   \n   \n   .elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n   font-size: 32px !important;\n    line-height: 42px !important;    \n   }\n   \n   \n   .elementor-widget-container.form-template p{\n       \n    font-size: 16px;\n    line-height: 20px;  \n    margin-bottom: 30px;\n \n       \n   }\n   \n   #form-templates .contact__info-heading{\n   font-size: 24px !important;\n    line-height: 49px !important;    \n       \n   }\n   \n\n.mailToContact{\nmargin-top: 10px !important;        \n}\n   \n\n  #form-templates .contact__info-heading {\n    font-size: 24px;\n    margin-bottom: 37px;\n  }\n\n  #form-templates .contact__info-background {\n    top: 10px;\n    left: 10px;\n  }\n\n  #form-templates .contact__info-text {\n    font-size: 12px;\n    line-height: 20px;\n  }\n  \n  \n  #form-templates .contact__info-heading {\n   margin-bottom: 35px !important;\n\n}\n\n}\n\n@media (max-width: 767px) {\n    .mailToContact {\n        max-width: 100%;\n    }\n}\n<\/style>\n\n<script>\nwindow.addEventListener('hashchange',function(e){if(window.history.pushState){window.history.pushState('','\/',window.location.pathname)}else{window.location.hash=''}})\n<\/script>\n\n\n<div id=\"form-templates\">\n<div class=\"elementor-widget-container form-template\">\n<a name=\"contact-form\"><\/a>\n<h2>Contact us<\/h2>\n<p><a id=\"calendlylink\" style=\"color: #c63031; border-bottom: 1px solid #c63031; padding: 0;\">Book a call<\/a> or fill out the form below and we\u2019ll get back to you once we\u2019ve processed your request.<\/p>\n<\/div>\n\n<div class=\"new-container\">\n\n\n<div class=\"contact-us__main\" id=\"spinner\" data-no-defer=\"1\">\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"name\">\n<label>Name<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"field_name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__name\" id=\"contact-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name*\" value=\"\" type=\"text\" name=\"field_name\" \/><\/span>\n<\/div>\n\n<div class=\"company\">\n<label>Company<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__company\" id=\"contact-company\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company*\" value=\"\" type=\"text\" name=\"company\" \/><\/span>\n<\/div>\n\n<\/div>\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"email\">\n<label>Email<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email contact-us__email\" id=\"contact-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Corporate email*\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n<\/div>\n\n<div class=\"phone\">\n<label>Phone<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"tel\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel contact-us__phone\" id=\"contact-phone\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Phone*\" value=\"\" type=\"tel\" name=\"tel\" \/><\/span>\n<\/div>\n\n<\/div>\n<div class=\"contact-us__wrapper subj\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-recipient\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-subj_js\" aria-invalid=\"false\" name=\"your-recipient\"><option value=\"\">Subject*<\/option><option value=\"IT staff augmentation\">IT staff augmentation<\/option><option value=\"Turnkey product development\">Turnkey product development<\/option><option value=\"Support and enhancement\">Support and enhancement<\/option><option value=\"Careers\">Careers<\/option><option value=\"Other\">Other<\/option><\/select><\/span>\n\n<span class=\"wpcf7-form-control-wrap\" data-name=\"form-field-budget_js\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-budget_js\" aria-invalid=\"false\" name=\"form-field-budget_js\"><option value=\"\">Project budget<\/option><option value=\"Under $15K\">Under $15K<\/option><option value=\"$15K-$30K\">$15K-$30K<\/option><option value=\"$30K-$100K\">$30K-$100K<\/option><option value=\"$100K-$250K\">$100K-$250K<\/option><option value=\"$250K-$500K\">$250K-$500K<\/option><option value=\"More than $500K\">More than $500K<\/option><\/select><\/span>\n\n<\/div>\n\n\n<div class=\"message\">\n<label>Message<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"message\"><textarea cols=\"40\" rows=\"1\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required contact-us__message\" id=\"contact-message\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Describe your needs in detail*\" name=\"message\"><\/textarea><\/span>\n<\/div>\n\n<div class=\"atvoice-wrap\">\n\n<div class=\"voice-wrap\">\n<span id=\"voice-mut\" class=\"voicetext\">Send us a voice message<\/span>\n         <div class=\"qc_voice_audio_wrapper\">\n            <div class=\"qc_voice_audio_container\">\n                <div class=\"qc_voice_audio_upload_main\" id=\"qc_audio_main\">\n                    <a class=\"qc_audio_record_button\" id=\"qc_audio_record\" href=\"#\" aria-label=\"Record an audio message\">\n                        <span class=\"dashicons dashicons-microphone\"><\/span> \u00a0<\/a> \n                <\/div>\n\n                <div class=\"qc_voice_audio_recorder\" id=\"qc_audio_recorder\" style=\"display:none\">\n\n                <\/div>\n                <div class=\"qc_voice_audio_display\" id=\"qc_audio_display\"  style=\"display:none\">\n                    <audio id=\"qc-audio\" controls src=\"\"><\/audio>\n                    <span title=\"Remove and back to main upload screen.\" class=\"qc_audio_remove_button dashicons dashicons-trash\"><\/span>\n                <\/div>\n            <\/div>\n            <input type=\"hidden\" value=\"\" name=\"qcwpvoicemessage\" id=\"qc_audio_url\" \/>\n        <\/div>\n        \n<\/div>\n\n\n<div class=\"attach-wrap\">\n<span class=\"voicetext\">Attach documents<\/span>\n\n<div class='attachment'>\n\n<div class=\"downloaded\">\n<span><\/span>\n<div class=\"deleteFile\"><\/div>\n<\/div>\n\n<div class=\"attachmentButton\" onclick=\"(function cl(e){if(e.target.nodeName == 'DIV'){e.target.parentNode.children[1].children[0].click(); }})(arguments[0]);\">\n\n<div class=\"innerText\">Upload file<\/div>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"att-files\"><input size=\"40\" class=\"wpcf7-form-control wpcf7-file\" accept=\".jpg,.png,.jpeg,.pdf\" aria-invalid=\"false\" type=\"file\" name=\"att-files\" \/><\/span>\n\n<div class=\"tip\" onclick=\"event.stopPropagation()\">\n<p>You can attach 1 file up to 2MB. Valid file formats: pdf, jpg, jpeg, png.<\/p>\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<\/div>\n\n<div class=\"contact-us__wrapper\"> \n<p class=\"pp\">By clicking Send, you consent to Innowise processing your personal data per our<a href=\"\/privacy-notice\/\"> Privacy Policy <\/a>to provide you with relevant information. By submitting your phone number, you agree that we may contact you via voice calls, SMS, and messaging apps. Calling, message, and data rates may apply.<\/p>\n\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"scoring_point\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmCampaign\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmContent\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmMedium\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmSource\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmTerm\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"location\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"city\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"ip\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"Summ\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"gclid\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"rating\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlCompany\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlWithParams\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"audioMessageLink\" \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner contact-us__send\" id=\"contact-send-button\" type=\"submit\" value=\"Send\" \/>\n<\/div>\n\n<div class='mailToContact'>You can also send us your request <\/br>to <a href=\"mailto:contact@innowise.com\">contact@innowise.com<\/a><\/div>\n\n<\/div>\n\n<div class=\"elementor-widget-container\" style=\"z-index:1;\">\n<div class=\"contact__info\">\n  <div class=\"contact__info-background\"><\/div>\n  <div class=\"contact__info-heading\">What happens next?<\/div>\n  <div class=\"contact__info-steps\">\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">1<\/div>\n      <p class=\"contact__info-text\">Once we\u2019ve received and processed your request, we\u2019ll get back to you to detail your\n        project needs and sign an NDA to ensure confidentiality.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">2<\/div>\n      <p class=\"contact__info-text\">After examining your wants, needs, and expectations, our team will devise a project\n        proposal with the scope of work, team size, time, and cost estimates.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">3<\/div>\n      <p class=\"contact__info-text\">We\u2019ll arrange a meeting with you to discuss the offer and nail down the details.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">4<\/div>\n      <p class=\"contact__info-text\">Finally, we\u2019ll sign a contract and start working on your project right away.<\/p>\n    <\/div>\n  <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\n<\/div>\n\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"related_content_blog_container\">[related_content_list]<\/div><script>\n            jQuery( document ).ready(function($) {\n            var parentSection = $('[data-elementor-type=\"wp-page\"]');\n            if($('[data-elementor-type=\"wp-post\"]').length){\n                var parentSection = $('[data-elementor-type=\"wp-post\"]');\n            }\n            \n                parentSection.children().last().before($('.related_content_blog_container'));\n            });\n            <\/script><div class=\"other_services_container\">[need_other_services_v2]<\/div><script>\n                    jQuery( document ).ready(function($) {\n                        var parentSection = $('[data-elementor-type=\"wp-page\"]');\n                        if($('[data-elementor-type=\"wp-post\"]').length){\n                            var parentSection = $('[data-elementor-type=\"wp-post\"]');\n                        }\n                        \n                        console.log(parentSection);\n                        parentSection.children().last().before($('.other_services_container'));\n                        var sections = parentSection.find('.net-15.dt-16');\n                        for(var i = 0; i<sections.length; i++){\n                            if($(sections[i]).hasClass( 'net-15' ) && $(sections[i]).hasClass( 'dt-16' ) && $(sections[i]).hasClass( 'elementor-hidden-desktop' )==false){\n                                $(sections[i]).before($('.other_services_container'));   \n                            }\n                        }\n                        \n                    });\n                <\/script>","protected":false},"excerpt":{"rendered":"<p>Main About us Blog 12 min read Innowise mobile app development digest [display_tags] Welcome to the Innowise mobile digest, your ultimate source for all things mobile development. Within this extensive compilation, we present you with the most recent news, thorough reviews, and invaluable guides in the ever-changing realm of mobile development. Explore real-life cases and [&hellip;]<\/p>\n","protected":false},"author":22,"featured_media":113202,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[128,1499],"class_list":["post-113149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-pavel_skamartsou_author","tag-android","tag-digest","tag-ios","tag-mobile","tag-news"],"acf":[],"_links":{"self":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/posts\/113149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/comments?post=113149"}],"version-history":[{"count":0,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/posts\/113149\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/media\/113202"}],"wp:attachment":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/media?parent=113149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/categories?post=113149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/tags?post=113149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}