Ez volt az egyik probléma, amire úgy 2010 óta akartam megoldást találni. Akkoriban kaptunk Symbian Nokia telefonokat melóhelyen (C5-00-t), amikben már volt kamera, és elég sokszor kellett vonalkód alapon leltároznunk. Adta volna magát, hogy a telefonnal olvasgatja az ember a cuccokat, aztán átzavarja gépre, nem kell laptopot cipelni a vezetékes Symbol olvasóval. na persze a C5 kamerája max. a méteres vonalkódokat tudta értelmezni, olyan rossz volt az optika Később lettek Windows Phone, Android céges telefonjaim, de hasonló alkalmazást ezekre sem találtam. (Spoiler, azóta van, vagy kettő (és még több), ezen kívül itt a bejegyzésben.)
Ilyenkor az a megoldás, ha ír egyet magának az ember Már évek óta akartam, és mostanra lett annyi Android programozás "gyakorlat" (meg szabadidő), hogy neki is láttam. Hatalmas feladat ám, máshol ez egy tutorial, vagy első féléves beadandó témája lenne
A végeredmény a BarcodeNote nevű izé lett, ami Zxing alapon olvassa a vonalkódokat - ez nem olyan triviális, mert a másik publikus/ingyenes megoldás Firebase alapú, ami helyből internet-kapcsolatot igényel, és küldi a cuccot a felhőbe. Na, ilyet nem akartam. A Zxing egy ingyenes library vonalkódokhoz, van C, Java, mindenféle nyelvhez, és jól is működik, már csak a supportja kérdéses.
Kamerás programom már volt, bár jól át kellett alakítani (emez Camera2-re épül). Itt egy kamera előnézetre volt szükség, aminek minden frame-ét el kellene küldeni a Zxing library-nek, hogy az feldolgozza. Igazából itt készen is volt a lényeg, mert ha a Zxing egy vonalkódot le tud olvasni, folyamatosan elkezdi hányni magából visszatérési értékként, amíg látja. Nincs más teendő, mint hozzáfűzni a szövegmező tartalmához (és várni egy kicsit, hogy ne nyomja tele a jegyzetet azzal egy egy számsorral ).
A szövegmezőn van egy eseménykezelő, ami a tartalom változása esetén file-ba írja a cuccot. Ez lustasági okokból a /sdcard0 -ba került, mert az legalább minden Android verzión ott van, és írható (10-es Android-on pl. vissza kell kapcsolni legacy-ba a tárhelykezelést). Mivel a jegyzetterület egy normál szövegmező, bármikor szerkeszthető is, és az app bezárása után sem veszik el semmi, induláskor visszatölti a file-t - ez ugyan plaintext tárolás, de így kb. mindennel olvasható marad az adat.
Ezen kívül már csak feature-k kellettek : kapcsolható "bup" hang, kapcsolható megvilágítás (a vonalkódolvasás érzékeny a kontrasztos képre), megosztás gomb, hogy könnyen el lehessen küldeni a jegyzetet valamilyen formában más eszközre, és egy "Use Links" gomb, ami a szövegben található linkeket linkké teszi, azaz kattinthatóvá (és ki is lehet őket kapcsolni vele). Ezek azért QR kódokban előfordulnak, de jegyzetként is beír néha az ember egy-egy címet..
A felület minimál lett, de elsőre örülök, hogy működik, később majd változtatok rajta (ha tudok) . Pl. muszáj lesz olyan gomb, ami kikapcsolja a kamerát, stb.
Az app ingyenes, reklámmentes, és a forráskódot is odaadom bárkinek, aki kéri (inkább nem másolom be ide, mert komoly mentális problémákat okoznának a borzalmas megoldások ) Egyenlőre független áruházakba tettem fel, de előbb-utóbb felszenvedem a Play-re is Tesztelve jelenleg pár Samsung, Huawei és LG telefonon van, de igyekszem még pár típuson kipróbálni.
Update 2020.09.20 :
A 2.0 verzióban lett
- sötét mód (ki/be/rendszerhez igazodó, a menüből kapcsolható)
- app ikon
A 3.0-ban pedig :
- a pittyenést a menüből lehet kapcsolni
- a kamera kikapcsolható lett, azaz megfagyasztható; ez került a "Sound" gomb helyére, így kevesebb akkut fogyaszt, illetve a gépelés is könnyebb, ha nem megy a kamera
- ezeket meg is jegyzi kilépéskor
A 2.0 már töltődik fel az APKpure-ra, a 3.0 meg majd utána - sajnos az APKpure átfutása 1-2 hét, és ha elindult felfele egy verzió, azt nem lehet visszavonni Ha valakinek kell, privátban odaadom addig is
Update : Google Play-en is kint van már