Szerző: Gálffy Csaba

2015. március 20. 10:57:00

Apptalk.ninja: hálózati diagnosztika fejlesztőknek

Egyedi megközelítést választott az apptalk.ninja, a hazai csapat SDK-ja injektálja a rendszer által kínált kommunikációs API-kat, így betekintést tud nyújtani az app hálózati és bluetoothos adatforgalmába, közvetlenül a készüléken. Az így átláthatóvá váló réteg minden fejlesztőnek nagy segítség, az okosórától az egyszerű mobilos kliensalkalmazásig.

Új kezdeményezéssel lépett porondra a díjnyertes Testjockey-t gründoló veterán fejlesztőcsapat, miután az a kezdeményezés zsákutcának bizonyult. A váltás nem meglepetés, Vidos Péter, a TestJockey alapító vezetője már a tavalyi App!mobile konferenciánk színpadán is pedzegette, hogy hamarosan pivotra (teljes "helybenfordulás") kényszerülhet a kis csapat. A nehézsúlyú szereplők (Apple - TestFlight, Twitter - Crashlytics) megjelenésével az általános mobilapp-tesztelés már nem vonzó piac egy startup számára, így érdemesebb volt valamilyen szűkebb, a nagyok által még érintetlenül hagyott területet kipécézni. Az ötlet hamar megszületett, a teljes alkalmazástesztelési csomagból érdemes egyetlen funkcióra fókuszálni, és arra készíteni egy páratlan megoldást.

A néhány hónapos bezárkózást követően a csapat a barcelonai Mobile World Congress-en be is mutatta új találmányát, amely Apptalk.ninja névre hallgat és a mobilappok kommunikációjára ad innovatív tesztelési-hibakeresési keretrendszert. A szolgáltatás erre az egy képességre fókuszál, ezt azonban olyan mélységben tudja, amit (legalábbis jelenleg) semmilyen más szolgáltatás nem tud. Miről is van szó?

Kommunikáció, a nagy falat

No app is an island - fordíthatnánk ki John Donne nagy mondását, ez pedig különösen igaz a modern mobilalkalmazásokra, amelyek funkcióikban a stabil, megbízható kommunikációtól függenek. Míg az elmúlt években a backend felé zajló, internetes kommunikáció jelentette ennek fő csapásirányát, mára ehhez csatlakozott a telefon és környezete közötti lokális kommunikáció is (például okosórák, Bluetooth beaconök, távvezérelhető eszközök). Nem ragozzuk: a lokális és internetes kommunikáció fontos, a felhasználói élmény szempontjából is rengeteg múlik ezen.

A problémát az jelenti, hogy a mobil operációs rendszerek a kommunikációt teljes egészében kiveszik a fejlesztő kezéből. Az iOS is, az Android is néhány szabványos API-t ad, ezeken keresztül küldhet-fogadhat adatokat az alkalmazás - a kommunikáció esetleges problémáiba azonban már nem lát bele, a hibákat a rendszer jórészt elfedi. Ez a probléma különösen súlyos a viszonylag kiforratlan Bluetooth-os kommunikáció esetében, a transzparencia hiányában már azt is nagyon nehéz felderíteni, hogy az appban, vagy a másik eszköz szoftverében található a probléma forrása, esetleg egy külső fejlesztőtől származó könyvtár vagy SDK nem működik megfelelően.

Mindent lát az SDK

Az Apptalk.ninja egészen egyedi megközelítést alkalmaz erre a problémára. A szolgáltatáshoz tartozó SDK használatával a fejlesztő tetszőleges mélységű betekintést nyerhet a kommunikációba. Ez úgy lehetséges, hogy az SDK injektálja a rendszerbe beépített API-kat egy saját implementációval, és ezzel teljes hozzáférést kap az adott alkalmazás teljes hálózati forgalmához, hibajelzéseihez, kapcsolódási és egyéb problémái is transzparenssé válnak. Vidos és csapata szerint erre azért van szükség, hogy tényleg tetszőleges mélységben lehessen elemezni a hálózat működését, szükség esetén nem csak a hálózati hibák, de a küldött-fogadott adatcsomagok tételes tartalma, az üzenetekben átadott hibakódok is láthatóak.

Machine learning és Scrum alapozó képzések indulnak! (x) A HWSW októberben induló gyakorlatorientált, 10 alkalmas, 30 órás online képzéseire most early bird kedvezménnyel lehet regisztrálni!

A nagy hatalommal nagy felelősség is jár - hogy folytassuk az idézetek sorát, ezúttal Pókemberrel. Ez így van az Apptalk.ninja esetében is, a hálózati forgalomba történő ilyen szintű betekintés ugyanis komoly biztonsági kérdéseket is felvet. Ezért le kell szögezni, hogy az Apptalk.ninja kizárólag az SDK-t használó appok forgalmát tudja figyelni, más alkalmazásokra ez nem terjed ki. Szintén fontos biztonsági elem, hogy az Apptalkot használni szándékozó külső fejlesztőnek demonstrálnia kell, hogy a vizsgált hálózati forgalom célszerverét irányítani tudja, ehhez egy érvényesítő állományt kell a szerveren elhelyezni.

Az SDK tehát korábban sosem látott mélységben belelát az alkalmazás a hálózati kommunikációba, így rögtön felmerült a kérdés: beengedi ezt az Apple az alkalmazásboltba? A puding próbája az evés, a csapat rögtön összerakott egy tesztalkalmazást (Blattery, ha valaki szeretné letölteni) és feltöltötte azt az App Store-ba. Az ellenőrzésen a szimpla app kényelmesen átment, a koncepciót ezzel a platform tulajdonosa is validálta. Mivel a csapat először ezt, az Apple-féle szűrést szerette volna tesztelni, először az iOS-es kiadás készült el az SDK-ból, de hamarosan beindul az androidos verzió fejlesztése is.

Mit nyújt a szolgáltatás?

Az első lépés nyilván az SDK beszúrása az alkalmazás kódjába, ez a csapat állítása szerint roppant egyszerű, mindössze néhány sort kell bemásolni a megfelelő helyre - a kód jelentős átírására egyáltalán nincs szükség. A rendszerhez emellett egy teljes webes-böngészős vezérlőpult tartozik, amely eszközöket kínál az adatok elemzéséhez, illetve a telepített bázis követése-vezérlése is innen történik.

Teljes analitika a vezérlőpulton

Ahogy azt korábban említettük, az analitikai adatok gyűjtése távolról, több fokozatban állítható, függően attól, hogy a fejlesztőnek éppen mire van szüksége. Az adatgyűjtés teljesen ki is kapcsolható a vezérlőpultról, ilyenkor az SDK nem küld semmit a szerver felé - ez lehet a normál üzem a jól működő, alkalmazásboltba feltöltött alkalmazás esetén. Ha azonban valamilyen problémát tapasztalunk, akkor előbb egy széles körű statisztika-gyűjtés futtatható le, majd a valóban problémás telepítésektől több adat is bekérhető. Az adatgyűjtés értelemszerűen hálózati forgalmat generál az alkalmazás és az Apptalk.ninja backendje között, ezért érdemes ezzel csínján bánni, és valóban csak a szükséges mélységig leásni - a teljes nyers forgalom bekérése például nagyot haraphat ki a felhasználó mobilinternet-keretéből. Erre megoldás, ha beállítjuk, hogy csak Wi-Fi-n töltse fel a diagnosztikai adatokat a készülék, az SDK erre lehetőséget ad.

Már kipróbálható

Az Apptalk.ninja béta programja néhány hete indult, az SDK már letölthető és kipróbálható saját alkalmazásokban. A béta státusznak megfelelően egyelőre a szolgáltatás ingyenes, a fejlesztőknek így elsősorban visszajelzésekkel, hibajelzésekkel, fontosnak ítélt funkciók nevezésével lehet fizetni. Az üzleti modell már készül, várhatóan több csomagban lesz a szolgáltatás elérhető és elképzelhető hogy lesz egy ingyenes, korlátozott fokozat is a kínálat alján.

a címlapról