{"id":29840,"date":"2026-03-19T15:05:45","date_gmt":"2026-03-19T14:05:45","guid":{"rendered":"https:\/\/www.purplesoft.io\/ds-group\/"},"modified":"2026-03-19T15:05:46","modified_gmt":"2026-03-19T14:05:46","slug":"ds-group","status":"publish","type":"page","link":"https:\/\/www.purplesoft.io\/en\/ds-group\/","title":{"rendered":"DS GROUP"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29840\" class=\"elementor elementor-29840 elementor-23329\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-72bc8a8 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"72bc8a8\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-e1b3136\" data-id=\"e1b3136\" data-element_type=\"column\" data-e-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-bffb30d elementor-widget elementor-widget-image\" data-id=\"bffb30d\" data-element_type=\"widget\" data-e-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=\"2560\" height=\"1886\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-scaled.webp\" class=\"attachment-full size-full wp-image-25286\" alt=\"Smart Horeca\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-scaled.webp 2560w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-300x221.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-1024x755.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-768x566.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-1536x1132.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/Horeca_hero-2048x1509.webp 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" title=\"\">\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\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-cf2328e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cf2328e\" data-element_type=\"section\" data-e-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-6eaed9c\" data-id=\"6eaed9c\" data-element_type=\"column\" data-e-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-0e6b17d elementor-widget elementor-widget-heading\" data-id=\"0e6b17d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">DS Group S.p.A.<\/h2>\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-4e4502e\" data-id=\"4e4502e\" data-element_type=\"column\" data-e-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-4a5eebf elementor-widget elementor-widget-text-editor\" data-id=\"4a5eebf\" data-element_type=\"widget\" data-e-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>We developed the<strong> B2B mobile app \u201cSmart Horeca\u201d<\/strong> for the Ho.Re.Ca. sector, commissioned by DS Group S.p.A. for CDA \u2013 Food Distributors Consortium. <\/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-b922378 elementor-widget elementor-widget-text-editor\" data-id=\"b922378\" data-element_type=\"widget\" data-e-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>Services:<\/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-f3a4dd1 elementor-widget elementor-widget-text-editor\" data-id=\"f3a4dd1\" data-element_type=\"widget\" data-e-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>UX\/UI Design; App Development; System Integration; Offline-First &amp; Sync; Performance Optimization<\/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-ca56469 elementor-widget elementor-widget-text-editor\" data-id=\"ca56469\" data-element_type=\"widget\" data-e-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>Technologies:<\/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-3eaf2ab elementor-widget elementor-widget-text-editor\" data-id=\"3eaf2ab\" data-element_type=\"widget\" data-e-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>Flutter, Dart<\/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-4668555 elementor-widget elementor-widget-text-editor\" data-id=\"4668555\" data-element_type=\"widget\" data-e-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>2023 &#8211; 2025<\/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-f2e097b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f2e097b\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-007d1b5\" data-id=\"007d1b5\" data-element_type=\"column\" data-e-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-86915f1 elementor-widget elementor-widget-image\" data-id=\"86915f1\" data-element_type=\"widget\" data-e-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=\"2500\" height=\"2500\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1.webp\" class=\"elementor-animation-bob attachment-full size-full wp-image-26883\" alt=\"\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1.webp 2500w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1-300x300.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1-1024x1024.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1-150x150.webp 150w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1-768x768.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1-1536x1536.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/horeca-secondmock-1-1-2048x2048.webp 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" title=\"\">\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\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-b9ab7f9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b9ab7f9\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-b53943f\" data-id=\"b53943f\" data-element_type=\"column\" data-e-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-e1fa58c elementor-widget elementor-widget-heading\" data-id=\"e1fa58c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Project Overview<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-add9f50 elementor-widget elementor-widget-text-editor\" data-id=\"add9f50\" data-element_type=\"widget\" data-e-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><strong>The Food Distributors Consortium<\/strong> operates in a sector where commercial relationships have traditionally been \u201con the field,\u201d but are increasingly driven by <strong>data, <\/strong><strong>content, <\/strong>and<strong> operational speed.<\/strong> The goal was to bring a<strong> truly useful ordering experience<\/strong> to smartphones and tablets: extensive catalogs, complex promotional rules, consistent pricing and availability, as well as a clear document section for invoices and communications. <\/p><p><strong>The Smart Horeca B2B<\/strong> app was designed to become a practical, everyday digital channel, capable of reducing friction and downtime: <strong>fast search,<\/strong> advanced filters, a <strong>robust cart, <\/strong><strong>correctly applied promotions,<\/strong> and order flows consistent with business processes. A key requirement was also to ensure<strong> operational continuity<\/strong> in unreliable network conditions through <strong>offline mode<\/strong> and <strong>incremental synchronization.<\/strong> <\/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-72ed184 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"72ed184\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-95c3032\" data-id=\"95c3032\" data-element_type=\"column\" data-e-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-35c1bf7 elementor-widget elementor-widget-image\" data-id=\"35c1bf7\" data-element_type=\"widget\" data-e-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=\"2560\" height=\"1093\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-scaled.webp\" class=\"attachment-full size-full wp-image-26879\" alt=\"Smart Horeca App\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-scaled.webp 2560w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-300x128.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-1024x437.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-768x328.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-1536x656.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/07\/Horeca-2048x874.webp 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" title=\"\">\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\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-99c50b4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"99c50b4\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-cd434c4\" data-id=\"cd434c4\" data-element_type=\"column\" data-e-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-ceb45ac elementor-widget elementor-widget-heading\" data-id=\"ceb45ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">UX\/UI Design<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd7a000 elementor-widget elementor-widget-text-editor\" data-id=\"fd7a000\" data-element_type=\"widget\" data-e-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>The <strong>UX\/UI <\/strong>work started from the retailer\u2019s real workflows: quickly finding a product, immediately seeing if it\u2019s on promotion, filling the cart without errors in <strong>units of measure<\/strong> or <strong>rounding,<\/strong> and submitting the order with all necessary parameters\u2014<strong>delivery date,<\/strong> <strong>notes, <\/strong><strong>discounts\/free items.<\/strong> The interface was optimized for fast, repetitive consultation, with clear components, immediate feedback, and visual priorities on the most important data: <strong>prices,<\/strong> promotions, <strong>quantities,<\/strong> <strong>expiration dates,<\/strong> and <strong>statuses.<\/strong> <br><br><\/p><p>Special attention was given to the <strong>document and information<\/strong> section: <strong>invoices<\/strong> with summary indicators, sorting, due dates, and quick access to <strong>media\/documents, <\/strong>while maintaining a consistent experience across the <strong>catalog,<\/strong> <strong>news, <\/strong>and content.<\/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-8ac3bf0 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"8ac3bf0\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-d65aed5\" data-id=\"d65aed5\" data-element_type=\"column\" data-e-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-b3a70ac elementor-widget elementor-widget-image\" data-id=\"b3a70ac\" data-element_type=\"widget\" data-e-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=\"2560\" height=\"1136\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3.webp\" class=\"elementor-animation-bob attachment-full size-full wp-image-29170\" alt=\"\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3.webp 2560w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3-300x133.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3-1024x454.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3-768x341.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3-1536x682.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/01\/Wireframe-horeca-3-2048x909.webp 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" title=\"\">\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\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-e783a43 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e783a43\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-6c112b7\" data-id=\"6c112b7\" data-element_type=\"column\" data-e-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-287e594 elementor-widget elementor-widget-heading\" data-id=\"287e594\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Mobile App Development<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a43472 elementor-widget elementor-widget-text-editor\" data-id=\"4a43472\" data-element_type=\"widget\" data-e-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>The development of the Smart Horeca B2B app was carried out with a focus on <strong>scalability, reliability, and performance<\/strong> for extensive catalogs and complex B2B order flows. The architecture was designed to maintain consistency between the interface, business logic, and integrations, and to support continuous releases over time.  <\/p>\n<p>The frontend was developed in <strong>Flutter<\/strong> using the<strong> Dart<\/strong> programming language, enabling a single, high-performance codebase across mobile devices. The UI was designed to remain responsive even in the presence of: <\/p>\n<p><strong>Catalogs<\/strong> with thousands or tens of thousands of items.<\/p>\n<p><strong>Advanced filters<\/strong> and search functions<\/p>\n<p><strong>Dynamic calculation<\/strong>s on the cart and promotions<\/p>\n<p>At a functional level, PurpleSoft implemented:<\/p>\n<ul>\n<li>Product catalog with search, categories, and advanced filters<\/li>\n<li>Cart with management of units of measure, quantities, rounding, and real-time UI updates<\/li>\n<li><strong>Promotion engine<\/strong> applied to cart and order (target1\/target2, x+y, min\/max, minimum quantity, multi-promo), with strict handling of all operational scenarios.<\/li>\n<li>Direct\/indirect order flows (order data, delivery date, discounts\/free items, writing to services\/DB)<\/li>\n<li>Robust persistence and management of <strong>order notes<\/strong> (including special characters)<\/li>\n<li><strong>Invoices,<strong> News,<\/strong><strong> Media\/Documents<\/strong><\/strong> sections (PDF viewer, \u201cnew\u201d indicators) and <strong>Settings\/Profile<\/strong>\n<p><\/p>\n<\/li>\n<\/ul>\n<p><strong>System integration (DS Group services + CDA management systems)<\/strong><\/p>\n<p>To keep data and content synchronized, the app integrates with:<\/p>\n<ul>\n<li><strong>DS Group systems, <\/strong>used to feed and update content and operational data (catalog, news\/media, and related data)<\/li>\n<li><strong>CDA management systems,<\/strong> for core B2B flows (customer data, orders, and documents\/invoices), with data synchronization at the database and service level<\/li>\n<\/ul>\n<p>Access is managed through<strong> token-based authentication,<\/strong> with roles and a <strong>multi-company context,<\/strong> ensuring that each user operates with data and configurations consistent with their associated company.<\/p>\n<p><strong>Offline-first (local database + incremental sync)<\/strong><\/p>\n<p>A key requirement was to ensure operational continuity even with variable connectivity. For this reason, an <strong>offline<\/strong> mode was introduced with: <\/p>\n<ul>\n<li>A <strong>local database<\/strong> on the device<\/li>\n<li><strong>Incremental synchronization<\/strong><\/li>\n<li><strong>Selective table refresh<\/strong> (without full wipe) to reduce time and impact on users<\/li>\n<\/ul>\n<p><br><\/p><p>The project has continued to evolve with ongoing releases, including upgrades of Flutter up to version<strong> 3.27,<\/strong> with targeted interventions on performance and stability.<\/p>\n<p><\/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-db5649a elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"db5649a\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-ec8959d\" data-id=\"ec8959d\" data-element_type=\"column\" data-e-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-bf25036 elementor-widget elementor-widget-image\" data-id=\"bf25036\" data-element_type=\"widget\" data-e-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=\"2560\" height=\"1860\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-scaled.webp\" class=\"attachment-full size-full wp-image-25292\" alt=\"Sviluppo app\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-scaled.webp 2560w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-300x218.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-1024x744.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-768x558.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-1536x1116.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2024\/06\/sviluppo_app-2048x1488.webp 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" title=\"\">\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\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-f190fe6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f190fe6\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-349bf73\" data-id=\"349bf73\" data-element_type=\"column\" data-e-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-966964a elementor-widget elementor-widget-heading\" data-id=\"966964a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Results<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7157aa1 elementor-widget elementor-widget-text-editor\" data-id=\"7157aa1\" data-element_type=\"widget\" data-e-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>Smart Horeca B2B has transformed a traditionally \u201con-the-field\u201d process into a <strong>solid, fast, and reliable<\/strong> mobile experience. The app seamlessly handles <strong>extensive catalogs<\/strong> and<strong> complex commercial rules,<\/strong> allowing retailers to quickly search for products, build the <strong>cart <\/strong>with <strong>correct units of measure <\/strong>(pieces, cartons, cases, kg, etc.), apply consistent <strong>promotions,<\/strong> and submit orders without discrepancies. <br><br>The system proves its value especially in real-world operations: <strong>offline<\/strong> mode and <strong>incremental synchronization<\/strong> ensure continuity even under unstable network conditions, while optimizations make the most critical parts of the experience\u2014such as <strong>search and filters,<\/strong> <strong>the cart,<\/strong> the promotion engine, and <strong>data synchronization<\/strong>\u2014smooth and immediate.<br><br>In a project commissioned by a <strong>software house<\/strong> like DS Group, success is measured by <strong>operational reliability:<\/strong> <strong>correct calculations, <\/strong><strong>consistent data across systems,<\/strong> and processes that require no corrective interventions. An app built to withstand daily use at scale. <\/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-c86f896 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c86f896\" data-element_type=\"section\" data-e-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-100 elementor-top-column elementor-element elementor-element-8224418\" data-id=\"8224418\" data-element_type=\"column\" data-e-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-cc4ae1d elementor-widget elementor-widget-heading\" data-id=\"cc4ae1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Other projects<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-32518e2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"32518e2\" data-element_type=\"section\" data-e-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-inner-column elementor-element elementor-element-5d2861f\" data-id=\"5d2861f\" data-element_type=\"column\" data-e-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-c242b0d elementor-widget elementor-widget-image\" data-id=\"c242b0d\" data-element_type=\"widget\" data-e-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\t<a href=\"https:\/\/www.purplesoft.io\/migrazione-sap-ecc-a-sap-s4hana-specialists\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1713\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-scaled.webp\" class=\"attachment-full size-full wp-image-26543\" alt=\"\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-scaled.webp 2560w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-300x201.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-1024x685.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-768x514.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-1536x1028.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2025\/06\/fimap_project_image-2048x1371.webp 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" title=\"\">\t\t\t\t\t\t\t\t<\/a>\n\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-838f3ac elementor-widget elementor-widget-button\" data-id=\"838f3ac\" data-element_type=\"widget\" data-e-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 elementor-animation-shrink\" href=\"https:\/\/www.purplesoft.io\/en\/fimap-case-study\/\">\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\">Fimap<\/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\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-f6c7c79\" data-id=\"f6c7c79\" data-element_type=\"column\" data-e-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-e9a3f52 elementor-widget elementor-widget-image\" data-id=\"e9a3f52\" data-element_type=\"widget\" data-e-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\t<a href=\"https:\/\/www.purplesoft.io\/distance-sales\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"2500\" height=\"1667\" src=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover.webp\" class=\"attachment-full size-full wp-image-29480\" alt=\"\" srcset=\"https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover.webp 2500w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover-300x200.webp 300w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover-1024x683.webp 1024w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover-768x512.webp 768w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover-1536x1024.webp 1536w, https:\/\/www.purplesoft.io\/wp-content\/uploads\/2026\/02\/distancesales_cover-2048x1366.webp 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" title=\"\">\t\t\t\t\t\t\t\t<\/a>\n\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-f4299df elementor-widget elementor-widget-button\" data-id=\"f4299df\" data-element_type=\"widget\" data-e-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 elementor-animation-shrink\" href=\"https:\/\/www.purplesoft.io\/en\/distance-sales\/\">\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\">DS Group <\/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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\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<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>DS Group S.p.A. We developed the B2B mobile app \u201cSmart Horeca\u201d for the Ho.Re.Ca. sector, commissioned by DS Group S.p.A. for CDA \u2013 Food Distributors Consortium. Services: UX\/UI Design; App Development; System Integration; Offline-First &amp; Sync; Performance Optimization Technologies: Flutter, Dart 2023 &#8211; 2025 Project Overview The Food Distributors Consortium operates in a sector where [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-29840","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/pages\/29840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/comments?post=29840"}],"version-history":[{"count":1,"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/pages\/29840\/revisions"}],"predecessor-version":[{"id":29841,"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/pages\/29840\/revisions\/29841"}],"wp:attachment":[{"href":"https:\/\/www.purplesoft.io\/en\/wp-json\/wp\/v2\/media?parent=29840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}