Bez Holdingu: appka identifikující zboží Agrofertu
Mobilní aplikace Bez Holdingu navazuje na předchozí počiny různých vývojářů, které se snaží zákazníkům pomoci určit výrobky, které produkuje holdingová chobotnice Agrofert. Běžnými cestami to není zrovna snadné, neboť moloch intoxikuje stále nové firmy, a tak informace rychle zastarávají. Appka Bez Holdingu tomu čelí čerstvou a nadále aktualizovanou databází.
„Načtením čárového kódu potravin (pečivo, mléčné výrobky, sýry, maso, uzeniny, vejce) se zobrazí data o jejich původu a informace, jestli výrobce patří do holdingu Agrofert. Dokáže identifikovat i většinu výrobků prodávaných pod privátními značkami obchodních řetězců,“ uvádí appku Bez Holdingu její vývojář Midnight Code.
Appka Bez Holdingu navazuje na starší aplikaci Bez Andreje vývojáře Martin Vytrhlíka. Midnight Code to komentuje: čím dál víc mě prudilo, že aplikace Bez Andreje dává špatné výsledky a pořád jsem měl pocit, že vytvořit něco podobného musí být práce maximálně na pár dní.
Vývoj Bez Holdingu
Úplně snadný vývoj aplikace podle slov Midnight Code nebyl:
„Jednou večer jsem si sednul, začal psát a k ránu jsem měl hotový funkční základ appky, zatím ovšem pouze s elementární datovou strukturou.
Další dny jsem se ve volném čase zabýval zkoumáním logiky čárových kódů v obchodech. A tam se situace zkomplikovala. Ukázalo se, že existují dva základní druhy kódů – kratší EAN8 a delší EAN13. Každý se výrobcům a prodejcům přiděluje trochu jinak – EAN8 celý kód, z EAN13 jenom prefix a výrobce si sám doplňuje zbývající číslice unikátně pro každý výrobek.
Jenže k tomu přichází ještě další komplikace, a sice privátní značky obchodních řetězců. Každý řetězec používá trochu jiný systém. Někdo má EAN8 začínající číslem 2, který je pro tyto účely určený, jiné řetězce mají vlastní EAN13 a výrobci jim tisknou na zboží jejich kód. Jinde zase nepoužívají na privátních značkách vlastní kódy, ale kódy výrobců a bohužel některé řetězce vzájemně kombinují víc těchto způsobů najednou.
U některých kódů (typicky EAN8 začínající číslovkou 2) se dokonce může stát, že ten stejný čárový kód použije více řetězců pro různé zboží. K tomu jsou kusové a váhové EAN13, také začínající dvojkou a několik dalších, úplně nestandardních kódů. Vymýšlení vhodné datové struktury zabralo dobře dva měsíce a několikrát jsem ji musel úplně předělat. Celý vývoj první veřejné verze trval nakonec tedy dva měsíce a ten jeden, první, den.“
Funkce aplikace Bez Holdingu
Bez Holdingu funguje offline - při dostupnosti datové sítě je vhodné aktualizovat databázi čárových kódů produktů svázaných s Agrofertem. Uživatel může EAN jak jen naskenovat fotoaparátem mobilního zařízení, tak využít ručního zadání produktového kódu. Appka pak:
- identifikuje výrobce a jeho spojení s Agrofertem;
- identifikuje výrobek;
- případně vypíše výsledek Nezjištěná firma + lokalitu firmy a instruuje uživatele:
Kód výrobce není v seznamu firem holdingu. Pro jistotu se můžete pokusit jméno výrobce na obalu.
Fungování vnitřností aplikace osvětluje Midnight Code:
„Architektura je vcelku jednoduchá. Aplikace je napsaná v Javě, při aktualizaci dat se připojuje na server npoint.io, kde jsou v JSON formátu uložena data, a to zvlášť pro EAN8, EAN13 a pro každý obchodní řetězec. Tato data si víceméně jedna k jedné stáhne, uloží do svých datových seznamů a ty potom při načtení kódu podle optimalizovaného algoritmu prohledává.“
Relativní nezranitelnost přes autora
Appka Bez Holdingu je realizována tak, aby nebyla ohrožena protizásahy ze strany finančních skupin, ani vládních úřadů posluhujících Andreji Babišovi. Midnight Code zůstává v anonymitě, a to sice proto, že autor aplikace Bez Andreje Martin Vytrhlík musel čelit problémům právě kvůli své aplikaci.
Midnight Code navíc volně zpřístupnil zdrojové kódy Bez Holdingu a oddělil správu dat, se kterými appka pracuje:
„Jedním z cílů, které jsem si během vývoje dal, bylo, aby se aplikace dala spravovat i beze mě – kdybych v ní nemohl, ať už z jakéhokoliv důvodu, pokračovat. Oddělil jsem proto pořizování dat, ta sbírají a spravují mí přátelé, kteří si pro to založili na Facebooku skupinu Sorry Yako (technické informace pro vývojáře). Do ní může kdokoliv napsat chybu nebo poslat nově objevený kód. Data jsou volně přístupná všem vývojářům a kdyby chtěl někdo napsat konkurenční aplikaci, může se k npoint serveru připojit a data využívat.
Zdrojové kódy vývojové verze aplikace jsem nahrál na GitHub, takže pokud by Bez Holdingu příliš zastarala, může si je kdokoliv stáhnout, upravit, zkompilovat a vytvořit tak snadno úplně novou appku.“
Appka Bez Holdingu je aktuálně dostupná pouze pro Android, a to sice kvůli schopnostem programátora. Midnight Code se ovšem rozšířením na ostatní platformy nebrání. Verzi pro iOS nechystám. A to z jednoduchého důvodu – programuji v Javě a psát aplikaci v prostředí, které neznám by mi zabralo příliš mnoho času. Kromě toho se mi zdá, že Bez Andreje v Apple verzi funguje docela dobře. Kdyby se ale našel někdo, kdo by chtěl a uměl udělat iOS klon, jsou mu k dispozici data, stávající zdrojové soubory i moje podpora.
Uživatelé appky tvrdí, že někdy ani není třeba složitě zjišťovat, kdo je výrobcem konkrétního výrobku. Kupř. diskutující Kelley na Lupě.cz říká: Piškoty Mondeléz (dříve Opavia) jsou hnusný už na pohled, tam není potřeba načítat EAN kód.
Odkazy, co se šiknou
Zdroje
Daniel Beránek, 04.01.2021 16:08
| Francouzský vývojář AI Mistral AI přichází s multimodálním modelem Pixtral Large, aktualizuje vlajkový jazykový model Mistral Large na verzi 24.11 a ve zdarma přístupné betě nabízí pokročilé funkce, jako jsou Web Search, Canvas a... |
| OpenAI představilo SearchGPT, novou funkci v rámci ChatGPT, která kombinuje sílu umělé inteligence a schopnosti přímého vyhledávání na internetu. Jde o krok směrem k plně integrovaným systémům, které mohou na základě uživatelských... |
| Neustálý vývoj jazykových modelů přináší nové možnosti, jakým způsobem umělá inteligence ovlivňuje nejen interakci mezi uživateli a počítači, ale práci s daty jako takovou. Společnost Anthropic nyní představuje 2 nové modely –... |
| Spotify stále rozšiřuje svou nabídku funkcí, aby uživatelům poskytlo co nejkomplexnější hudební zážitek. Nově se snaží zintenzivnit posluchačský zážitek přidáním videí, díky čemuž mohou uživatelé sledovat videoklipy... |