FixFlow

Noliktavas lietotnes modernizācija

FixFlow ir AMIT noliktavas lietotne automašīnu dīleriem. Mitigate to izstrādāja no jauna kā native Android lietotni, un kopš 2026. gada 28. augusta tā ir pieejama Google Play.

KotlinJetpack ComposeClean ArchitectureRoomKtorKoin

Divi telefoni ar FixFlow ekrāniem: noliktavas darbību izvēlne un komplektēšanas saraksts

Izaicinājums

Izaicinājums

FixFlow strādā kopā ar AutoMaster. Noliktavas operatori ar to rokas skeneros izsniedz un pieņem rezerves daļas, veic inventarizāciju un drukā uzlīmes. Lietotne tika izveidota 2021. gadā, un pēc pieciem gadiem to uzturēt un attīstīt kļuva arvien grūtāk.

AMIT bija vajadzīga lietotne, kuru var ātri attīstīt un kurai operatori var uzticēties visas maiņas garumā.

  • Sarežģīta un kļūmīga izstrāde

    Kārtējo izmaiņu veikšana bija atbildīga un riskanta: lietotnē pārklājās trīs dažādi dizaina šabloni, biznesa loģika bija iestrādāta ekrānu kodā un atsevišķi koda faili pārsniedza 1000 rindiņu. Jebkura korekcija varēja negaidīti salauzt citu funkciju.

  • Trūka drošības un kontroles

    Lietotnei nebija automatizēto testu un statiskās koda analīzes. Rezultātā sistēmas kļūmes vispirms pamanīja darbinieki ikdienas darbā, nevis izstrādātāji pārbaudes posmā.

  • Nesaprotami kļūdu ziņojumi

    Problēmu gadījumos lietotājiem tika rādīti tehniski koda teksti, kurus tie nevarēja ietekmēt, savukārt atsevišķas kļūdas izraisīja pilnīgu lietotnes "asociatīvu" apstāšanos.

  • Nestabils darbs ikdienā

    Lielu dokumentu (ap 300 pozīcijām) ielāde mēdza izsaukt lietotnes avāriju, servera kļūdu dēļ dati pazuda vai dubultojās, un darba sesijas pārtrukums vidū spieda darbiniekus no jauna autorizēties.

Risinājums

Modernizācija no pamatiem

Mitigate pārbūvēja FixFlow no pašiem pamatiem, izveidojot modernu native Android lietotni Kotlin valodā ar Jetpack Compose saskarni. Biznesa loģika, dati un lietotāja saskarne ir strikti atdalīti no aparatūras integrācijām (skeneriem, printeriem, signāliem un sistēmas atjauninājumiem), ļaujot katru komponenti mainīt neatkarīgi vienai no otra.

  • Stingra "Clean Architecture" pieeja

    Katras funkcijas dati, biznesa loģika un ekrāni ir sadalīti atsevišķos slāņos. Lai nodrošinātu precīzu arhitektūras ievērošanu, katrā koda komplektēšanas reizē atbilstību automātiski pārbauda 12 pielāgoti analīzes noteikumi.

  • Drošas un ātras izmaiņas

    Lietotne sadalīta 99 atsevišķos biznesa scenārijos un 19 ekrānu kontrolieros. Jaunas funkcijas tiek pievienotas blakus esošajam kodam, nevis caurvij to - tas ļauj ieviest jauninājumus ātri un bez riska salauzt esošo funkcionalitāti.

  • Pakāpeniska un droša ieviešana

    Jaunā lietotne tika ieviesta pa funkciju blokiem, kamēr vecā versija turpināja darboties. Visi iestatījumi pirmajā palaišanas reizē pārnesās automātiski, tāpēc darbiniekiem nebija no jauna jākonfigurē savas ierīces.

No izstrādes sākuma līdz Google Play - 14 mēneši

  1. Jūn 2025

    Uzsākta funkciju izstrāde

  2. Aug 2025

    Pirmā testa versija (4.0)

  3. Mar 2026

    Pārbūvēta preču izsniegšana, ieviesti automatizētie testi

  4. Jūn 2026

    Versija 5.0 ar bezsaistes melnrakstu atbalstu

  5. Aug 2026

    Publicēta Google Play bez nevienas koda analīzes kļūdas

Darba plūsmas

Galvenās darba plūsmas

Visas darba plūsmas pārbūvētas, balstoties noliktavas darbinieku ikdienas ieradumos un ņemot vērā piecu gadu laikā saņemtās atsauksmes.

Izsniegšana, pirmsiesaiņošana un atgriešana

Visas trīs darbības sākas vienā ekrānā. Dokumentu var ātri atrast pēc uzdevuma vai pasūtījuma numura, savukārt atgriešanu var sākt, uzreiz noskenējot preci. Ja viena prece atrodas vairākās rindās, rindu izvēlas tikai vienu reizi.

FixFlow izsniegšanas dokuments ar rezerves daļu rindām un ciparu tastatūruFixFlow izvēlne ar komplektēšanu, pirmsiesaiņošanu un atgriešanu

Pieņemšana

Piegādes numuru var atrast, to vienkārši noskenējot. Pauze starp skenējumiem ir samazināta līdz 0,5 sekundēm, un nesinhronizētie dati droši saglabājas ierīcē arī tad, ja pazūd tīkla savienojums.

FixFlow pieņemšanas dokuments ar preču kodiem un daudzumiemFixFlow paziņojums par nesinhronizētām precēm

Svītrkodu skenēšana

Trīs atšķirīgi skaņas un vibrācijas signāli - apstiprinājumam, brīdinājumam un kļūdai - ir viegli uztverami, neatraujot skatu no plaukta. Zebra, Newland un Honeywell skeneri darbojas ar vienu kopīgu integrāciju.

Rokas skeneris ar FixFlow svītrkoda skenēšanas ekrānuFixFlow paziņojums par pabeigtu komplektēšanuFixFlow brīdinājums par neatbilstību starp saskaitīto un rēķinā norādīto daudzumu
  • Inventarizācija

    Vienai precei daudzumus var fiksēt līdz trim lokācijām vienlaikus. Skaitījumi droši saglabājas ierīcē līdz sinhronizācijai, un viens skenējums vairs netiek ieskaitīts divreiz.

  • Rezerves daļas un uzlīmes

    Rezerves daļas var meklēt pēc teksta vai svītrkoda, un uzlīmes drukā tieši uz pārnēsājamā Zebra printera bez papildu tīkla iestatīšanas.

  • Pieteikšanās un valodas

    Licences atslēgu var nolasīt no QR koda, filiāli var ērti pārslēgt pašā lietotnē, un saskarne ir pieejama četrās valodās: latviešu, angļu, lietuviešu un bulgāru.

Tehnoloģijas

Tehnoloģijas, ko izmantojām FixFlow izveidē

Jaunā lietotne ir veidota uz vienotas, mūsdienīgas Kotlin tehnoloģiju bāzes. Vecajā versijā tika izmantoti vairāku paaudžu Android izstrādes rīki.

Lietotāja saskarne

Vecā lietotne

XML izkārtojumi un Fragments, jaukti ar Jetpack Compose

Jaunā lietotne

Visā lietotnē izmantots tikai Jetpack Compose

Arhitektūra

Vecā lietotne

Koda slāņi noteikti pēc vienošanās, bez stingras pārbaudes

Jaunā lietotne

Clean Architecture katrai funkcijai ar automātisku koda pārbaudi komplektēšanas laikā

Glabāšana ierīcē

Vecā lietotne

SQLDelight; melnraksti sajaukti ar kešatmiņas datu bāzi

Jaunā lietotne

Room 2.8: atsevišķa kešatmiņa un migrēta melnrakstu datu bāze

Automatizēti testi

Vecā lietotne

Nav

Jaunā lietotne

764 testi

Statiskā analīze

Vecā lietotne

Nav

Jaunā lietotne

Automātiska koda pārbaude (detekt) bez pieļautām kļūdām, izmantojot 12 pielāgotus arhitektūras un Compose noteikumus

Rīki

Vecā lietotne

Kotlin 2.2, AGP 8.7, Gradle 8.11, SDK 35

Jaunā lietotne

Kotlin 2.4, AGP 9.3, Gradle 9.7, SDK 37

Skenēšanai tiek izmantotas ražotāju broadcast integrācijas (Zebra DataWedge, Newland, Honeywell), bet uzlīmju drukāšanai nodrošināts tiešs Zebra PrintConnect atbalsts no ierīces.

Rezultāts

Rezultāts

Jaunā lietotne ir pieejama Google Play kopš 2026. gada 28. augusta. Būtiskākais ieguvums ir sistēmas ilgtspēja un uzturamība - izmaiņas un uzlabojumus tagad var ieviest ātri un droši, neietekmējot ikdienas darba plūsmas.

  • 764

    automatizēti testi 83 koda failos

  • 0

    koda analīzes kļūdu - versijas izlaišana tiek bloķēta pie vismazākās novirzes

  • 12

    pielāgoti arhitektūras noteikumi

  • ~28

    Compose UI noteikumi ekrānu koda kontrolei

Kopš lietotnes palaišanas nav saņemts neviens ziņojums par dubultotiem skaitījumiem, lai gan vecajā versijā darbinieki par to sūdzējās regulāri.

Problēmu novēršana tagad prasa dienas, nevis mēnešus

Līdzīgu kļūdu un uzlabojumu izpildes laiks Jira sistēmā (no ziņojuma saņemšanas līdz risinājumam):

Vecā lietotne

  • Pieņemšanas daudzuma lauks nedarbojas pie manuālas labošanas

    70 dienas
  • Pieņemšanas automātiskās ciparu tastatūras iestatījums nedarbojas

    83 dienas
  • Lietotnes avārija, ielādējot apjomīgu pieņemšanas dokumentu

    51 diena

Jaunā lietotne

  • Pieņemšanas lokācija pazūd pēc komentāra pievienošanas

    7 dienas
  • Uzlīmju drukāšanas bloķēšana, līdz datus apstiprina serveris

    5 dienas
  • Nesinhronizēto datu saglabāšana tīkla pārrāvuma gadījumā

    7 dienas