Appmenedzsment és marketing meetup

hwsw logó

2020. február 26-án este a HWSW szervezésében részt vettem az Appmenedzsment és marketing meetup-on az EPAM Rendezvényközpontban. Így hirdették meg az eseményt: „laza hangvételű délutáni rendezvény olyan szakembereknek, marketingeseknek és fejlesztőknek, akik az élesítés után is gondoznák és mérnék mobilalkalmazásukat, hiszen azok sikere elsősorban nem a fejlesztőkön, hanem a megfelelő appmenedzsmenten múlik”. Az utógondozás, karbantartás, továbbfejlesztés gyakorlatilag rövidebb-hosszabb ideig minden fejlesztő, fejlesztői csapat tevékenységeire igaz. Az eseményen négy darab 15 perces előadás hangzott el.

Az első előadó Szuhai Viktor volt, aki a Planet of the Apps-nál Mobile Product & Marketing Manager. A Letöltések bűvöletében: hogyan tereljünk forgalmat az alkalmazásunkba? című előadás annak a 3 fő oknak a kifejtésével kezdődött, amiért a cégek alkalmazásait nem használják az emberek:

  • van alkalmazás, de maga a cég sem tudja, hogy miért készült el a termék,
  • van jó alkalmazás, de elkészülését követően a cég nem követi, hogy mire és hogyan használják azt a felhasználók és a cég nem reagál a felhasználók visszajelzéseire,
  • hatástalan marketing aktivitások (úgy hirdetik a cégek az alkalmazásaikat, hogy a megtekintések számát vagy a kattintások számát mérik, pedig hasznosabb lenne a valós letöltések számát illetve a letöltést követő aktivitások számát mérni).

Elhangzott, hogy egy mobil alkalmazást használó értékesebb egy weboldal látogatójához viszonyítva, hiszen több ideig velünk marad. Ha sokáig használja az alkalmazást, követhető a tevékenysége. Ha kihasználjuk a push üzenetek lehetőségeit, akkor a termékünkből egy „sales gépezetet” készíthetünk. A legtöbb cégnél nincs mobil marketinges. Az előadó ezt követően saját külföldi – céges környezetben szerzett – tapasztalatairól számolt be. Alapvetően háromféle ügyfélszerzési csatornáról hallhattunk:

  • ingyenes csatornák: ASO, saját webes felületek,
  • fizetős tradícionális csatornák: Facebook, Google, Instagram,
  • alternatív csatornák: SearchAds, Appnetwork-ök, ösztönzött letöltések.

HWSW - Appmenedzsment és marketing meetup

A második előadást – Tervezéstől a riportolásig: mire figyelj a sikeres mobil app mérés érdekében? címmel – a Mito képviseletében Horváth Ádám és Gyöngyösi Balázs tartotta. Egy app életciklusához igazodóan áttekintették, hogy mit, mivel és hogyan érdemes mérni annak érdekében, hogy az alkalmazásunkat, illetve annak használatát megérthessük. A mobil alkalmazáspiacon lévő nagy verseny miatt szükséges, hogy a felhasználók érdeklődését folyamatosan fenntartsuk a mért adatok alapján. A webes analitika bevett gyakorlat (cookie és session alapon), a mobil appok esetén ez – még – kisebb szerepet kap (User ID alapon és itt a session azt jelenti, hogy előtérben van a telefonon a mobil app legalább 10 másodpercig és 30 másodperc után jár le a session). A főbb szempontok ezek voltak:

  • ügyfélszerzés (új és aktív user-ek száma, hogyan találják meg az appunkat),
  • elkötelezettség (tartós használat és/vagy lemorzsolódás),
  • eredmények/konverziók (mennyire sikerült elérnünk az üzleti céljainkat),
  • mérési tervezési folyamat lépései (üzleti célok egyértelmű definiálása, KPI és eszközök meghatározása, mérési stratégia kialakítása, implementáció és fenntartás).

Mindkét előadó hangsúlyosan kiemelte a különböző szoftverfejlesztéshez kötődő munkakörökben, beosztásokban, pozíciókban, szakterületeken dolgozó minden alkalmazott komplex, szerteágazó és hatékony együttműködésének fontosságát.

HWSW - Appmenedzsment és marketing meetup

A harmadik előadást Álmos Balázs tartotta a Planet of the Apps-tól Adatokból valóság, avagy hogyan hoznak nekem üzleti előnyt az adatok, hol térül meg az app-analitika? címmel. Kérdések felvetésével indult az előadás. Hogyan tartsuk meg azokat a felhasználókat, akik már letöltötték az appot? Mi az adatvagyon és az adathalom közötti markáns különbség? Miért szükségesek üzleti döntéseket támogató üzleti intelligencia alkalmazások? Vannak kérdéseink, amikre választ várunk az adatok elemzésekor? Mire lehet célozni az analitikát? Lehet termékfejlesztési indikátor, alkalmas marketing optimalizálásra, UX-es viselkedés optimalizálásra, stabilitás vizsgálatára, marketing kommunikáció hatékonyságának növelésére. Az egésznek csak akkor van értelme, ha mindenkinek érthető és átlátható a teljes folyamat/rendszer. Mitől függhet az app sikeressége? Alapvető cél az aktív felhasználók megszerzése, számuk növelése és megkötése/megtartása. Hasznos tippeket kaptunk az analitika felkészültségétől függően a felhasználói élmény fokozására, és az automatizálási stratégia (push kommunikációs stratégia) kialakítására.

HWSW - Appmenedzsment és marketing meetup

A negyedik előadó Dombi Soma volt a Product Factory képviseletében, aki Analitika sokoldalú felhasználása hiba detektálásra, rollout tervezésre, ux javításra, bevétel becslésre címmel gyakorlati megközelítésű prezentációt tartott. Egy esettanulmányt ismertetett, amiből kiderült, hogyan javítottak az egyik alkalmazásuk felhasználói élményén az általuk mért adatok alapján. A korábbi elméleti és összefoglaló jellegű előadás zárásaként kifejezetten hasznos volt látni a konkrét mérési eredményeket, illetve hallani a megvalósítások technológiai trükkjeit (például PDF fájlok oldalainak képként való kezelése, pufferelése, sebesség optimalizálása…).

HWSW - Appmenedzsment és marketing meetup

A szervezők utólag publikálták a rendezvény prezentációit, fényképgalériát és két előadásról videót.

Szeptemberi dupla – Android/Kotlin és full-stack JavaScript fejlesztői meetup

2018. szeptember 11-én és 12-én délután a HWSW szervezésében a Szeptemberi dupla: Android/Kotlin és full-stack JavaScript fejlesztői meetup-okon vettem részt az AnKERT-ben.

Szeptemberi dupla - Android/Kotlin és full-stack JavaScript fejlesztői meetup

Kedd – Android/Kotlin fejlesztői meetup

Kedden az első előadó Ekler Péter volt, Android Pie újdonságai fejlesztői szemszögből című előadásával. Az általános újdonságokat követte néhány példa az energiafogyasztáshoz és testreszabáshoz kötődően: az Android rendszer:

  • úgy működjön, ahogyan a felhasználók jobban szeretnék használni – és persze ezáltal a Google még jobban megismerjen bennünket ;-),
  • alkalmazkodik a rendszer a mi életstílusunkhoz,
  • adaptívan korlátozni tudja a ritkán használt appoknál az akkumulátor-használatot (digitális jólét néven eladva),
  • adaptívan képes a fényerő beállítására (szürkeárnyalatos esti megjelenítés),
  • támogat új notification-öket (ez örökösen átalakul).

Elhangzó körkérdések voltak:

  • Mennyi ideig használunk egy-egy mobil alkalmazást?
  • Hány darab mobil alkalmazást használ a felhasználók többsége?
  • Ki találja hasznosnak a digitális jólét szolgáltatásokat?
  • Vajon mennyi változott (hány százalékot) az API 25-26-ra, 26-27-re, illetve 27-28-ra?

A válaszok érdekesnek, néha meglepőnek hatottak. Hasznos ötleteket kaptunk appok fejlesztéséhez, alkalmazkodva a felhasználói szokásokhoz.

A második előadás címe Kotlin 1.3 újdonságok volt, Balogh Tamás tartotta. Hasznos tippeket kaptunk a Kotlin konfigurációhoz, illetve függőségeinek megoldásához többféle fejlesztői eszközt érintve a gyakorló fejlesztő tapasztalataira építve. Újdonságok:

  • coroutine-ok experimental megjegyzéssel (működik, stabil, de egy későbbi új API verzióban fenntartott a jog, hogy megváltozhatnak és így törődni kell még velük),
  • előjel nélküli adattípusok példákkal (nem mintha ez lenne a legfontosabb, de néha kifejezetten hasznos lehet),
  • inline class-ok, intelligens bájtkód-beillesztésként magyarázható analógiával, mintegy kibővítve a korábbi inline function-ök lehetőségeit (nagyon tanulságos és eltalált volt a példaként bemutatott forráskód),
  • contract-ok (szerződés a fejlesztő és a fordító között).

A harmadik előadó Polacsek Attila volt és A pontonhíd az RxJava és a Data Binding között című bemutatójában körüljárta a reaktív UI-ban rendelkezésre álló adatkötés lehetőségeit, korlátjait, mindezt sok apró részletet is tartalmazó forráskód-részletekkel ismertetve.

Szeptemberi dupla - Android/Kotlin és full-stack JavaScript fejlesztői meetup

Szerda – Full stack JavaScript fejlesztői meetup

Szerdán négy előadást hallgattam meg a JavaScript nyelvhez kapcsolódóan. Az első előadó Szabolcsi-Tóth Szabolcs volt, aki a nyelv eredetét, fejlődését ismertette. A JavaScript nyelv az Európai Számítógépgyártók Szövetsége (ECMA) által felügyelt, ECMA-262 számon és ECMA Script néven gondozott szabvány (http://www.ecma-international.org/publications/standards/Ecma-262.htm) egyik implementációja. Elsősorban webes alkalmazások számára készült. Az ECMA évente jelentet meg új változatot a szabványból. A nyelv fejlesztése teljesen nyitott, bárki küldhet be ajánlást egy-egy új funkció beépítésére. A koordináció github-on (https://tc39.github.io/ecma262) keresztül zajlik. Az ECMA-262 tagok döntésén múlik, hogy az egyes ajánlások közül mi kerül be ténylegesen a nyelvbe – szigorúan szabályozott lépések sorozatát követően.

A második előadó Czibik Péter volt, aki 4 év full stack fejlesztői tapasztalatait osztotta meg velünk. Elmondta, hogy mi a különbség egy specialista és a full stack fejlesztő között, milyen előnyökkel illetve hátrányokkal járnak az egyes szerepek. Megerősített minket abban a hitünkben, hogy bár mindenhez nem lehet egyszerre érteni, ennek ellenére lehetséges olyan szerteágazó tudásra szert tenni (itt az adatbázis-backend-frontend hármasra gondolok) ami hatékonyan használható a munkában. Tapasztalata szerint náluk a RisingStack nevű cégnél először specialistákat képeznek, és onnan indulhatnak el a munkatársak a full stack irányba. Ismeretes náluk, hogy a full stack-es kollégák közül ki melyik szakterülethez ért a leginkább és ezen információ birtokában hatékonyabban tudnak együtt dolgozni az egyes projektek kivitelezése közben.

A harmadik előadóként Séra Bálint következett. Ő egy saját tapasztalatát mutatta be: hogyan lehet egy frontend-es számára optimális sorrendben betölteni a weboldalon az egyes JavaScript modulokat a lehető leggyorsabban úgy, hogy ne kelljen a felhasználónak egy üresnek látszó weboldal előtt várakoznia. Saját kódpéldákon keresztül mutatta be azt a folyamatot, ahogyan a JavaScript nyelv fejlődésével párhuzamosan bővültek a programozó lehetőségei. Először csak statikusan lehetett felsorolni a modulokat az oldal kódjában, ezzel rögtön egy sorrendiséget is meghatározva. Később erre a feladatra különböző keretrendszerek készültek. Az ES6-os JavaScript verziótól kezdve pedig szabványos eszköz áll a fejlesztő rendelkezésére, az import formájában.

Utolsó előadóként Miklós Bertalant hallgattuk meg. Ő is a nyelv fejlődésére épített, de sokkal inkább a felhasználó által tapasztalt élmény szemszögéből megközelítve a fejlesztő lehetőségeit. A JavaScript nyelv irányába is régebb óta megvolt az az igény, hogy gazdag animációs lehetőségeket tudjon biztosítani, mint a mára már elavult Flash vagy Silverlight technológiák. Ahogy ezek a lehetőségek elkezdtek megjelenni a nyelvben, úgy kezdtek megszületni a különböző keretrendszerek is, mint például a React, az Angular vagy a Single-page alkalmazások. Szerinte a mai weboldalak a progresszív megközelítést kell, hogy használják, ami egy-egy keretrendszerrel való megoldások készítése helyett inkább sok-sok kicsi ötletre épít, figyelembe véve az adott projekt szükségleteit, és ennek megfelelően alkalmazva néhány – a tarsolyban lapuló – eszköz keverékét.

Néhány előadás prezentációja letölthető.

Nyári napfordulós Android/Kotlin meetup

2018. június 19-én délután a HWSW szervezésében a Kotlin programozási nyelvet bemutató meetup-on vettem részt az AnKERT-ben. Az előadások elsősorban a nyelvvel még csak ismerkedők számára szóltak, amolyan kedvcsinálóként lehet rájuk tekinteni.

HWSW : Nyári napfordulós Android/Kotlin meetup

Az első előadó Ekler Péter volt, aki összehasonlította a Java és a Kotlin nyelvet. Miben más az utóbbi, mivel ad többet, mint a Java? Azonnal feltűnő volt a forráskód tömörsége, egyszerűsége. Több esetben is előfordult, hogy nem kellett kiírni egy metódus visszatérési típusát, mert a fordító képes azt kitalálni. Új képességekről is szó esett, például a null érték elleni védekezésről, amelyet a Kotlin nyelv nullable és nem nullable típusokkal old meg. Ez a képesség például a C# nyelvben régóta jelen van. A null értékhez kapcsolódóan új operátorok is bekerültek a nyelvbe, amelyekkel így nagyon tömören és egyszerűen lehet elágazást megvalósítani null esetén. Megjelentek az extension method-ok a nyelvben, amivel egy meglévő osztályt úgy lehet további metódusokkal bővíteni, hogy nem kell azt leszármaztatni. Végül hasznos tippeket kaptunk a Kotlinban való programozás elkezdéséhez, illetve bevezetéséhez. Fontos megjegyezni, hogy egy Kotlin nyelvű program Java bájtkódra (is) fordul le, ezért teljesen illeszkedni tud egy már meglévő Java kódú projektbe. Ezért a tanulás elkezdhető kis modulok megírásán keresztül is.

A második előadó Varga Balázs volt, aki Kotlinos multiplatformos teszteléssel kapcsolatos tapasztalatait osztotta meg. Tőle megtudtuk, hogy a Kotlin számukra többek között azért hasznos, mert közös üzleti logika kódbázissal tudnak dolgozni akár a szerver oldalon, akár a kliens oldali mobilalkalmazásokon vagy JavaScript-et futtató böngészőben. Balázs mutatott egy esettanulmányt, ahol nehézséget okozott számukra, hogy hol válasszák szét a közös kódbázist a platformspecifikus részektől, mert a megvalósítás az Androidos kliensen működött, de az iOS-es kliensen viszont nem.

A harmadik előadó Braun Márton volt. Ő az Android KTX framework-öt mutatta be, ami egy kifejezetten Kotlin nyelven íródott, a nyelv képességeire támaszkodó eljárásgyűjtemény. Feladata, hogy az Androidban körülményesen használható API-kat könnyen kezelhetővé, kevesebb kóddal leírhatóvá tegye. Bár léteznek ehhez hasonló, mások által készített könyvtárak, de a KTX erejét az adja, hogy a Google cég 2017 óta hivatalosan támogatja a Kotlin nyelvet, és ezen belül a KTX könyvtárat is. Láthattunk néhány kódpéldát, ahol szemléletesen mutatta be Márton, mennyivel rövidebben lehet KTX framework-kel elérni ugyanazt az eredményt, mint nélküle.

Az utolsó előadó, Fuszenecker Zsolt egy hibás programsort hozott példaként, amely saját termékükbe került bele, és emiatt az Androidos felhasználóik egy elég kicsi, de mégis jelentős hányadánál nem tudott működni az új funkció, amit a kiadott frissítéssel építettek a programba. Elmondta, hogy nem volt könnyű megtalálni a hibát, mert csak az Android 6.01 verziónál és alatta jelentkezett. A kérdéses hiba egy lambda kifejezés bal oldalán álló két paraméter zárójelezésével oldódott meg, mert a kérdéses kódsort a fordító olyan API rendszerhívásra fordította le, ami csak Android 7.0-tól vált elérhetővé.

Két előadás megtekinthető, illetve a négy előadás prezentációja letölthető.

Merre tart a Java? Nyár végi Java fejlesztői meetup

hwsw logó2017. augusztus 29-én délután a HWSW szervezésében a Merre tart a Java? Nyár végi Java fejlesztői meetup-on vettem részt az AnKERT-ben. Az előadások a szeptember 21-re időzített Java SE 9 várható újdonságai köré épültek.

Simon Géza (DPC Consulting) A Java 9 újdonságaiból szemezgetett. Egy kérdéssel indított: eltöri-e a Jigsaw a meglévő rendszereinket? (Spoiler: lehet.) A Jigsaw projekt a Java 9-től végre elérhető. Kitért a modulok definiálására. Mutatott példát adatbázis drivertől való függőség kezelésére szerviz definícióval. Kitért az rt.jar átalakításának koncepciójára – egyben a JDK és a JRE összefésülésére –, valamint az egységbezárás finomhangolására.

Gergely Pál Dávid (Doctusoft) Java alkalmazások a felhőben előadását a kontroll vs. munka egyensúlya, arányaival kezdte a privát felhő, IaaS, PaaS, FaaS, SaaS konfigurációs alkotóelemeinek (Functions, Data, Application, Runtime, Backend Code, OS, Virtualization, Server Machine, Storage, Networking) felelősségi körét áttekintve. Rendszerek kialakításának folyamatával folytatta, tág testre szabási lehetőségeket ismertetve. Mindent eldöntő kérdésnek szánta: de hát akkor miért nem FaaS még minden? Kaptunk rá hivatalos és gyakorlatias válaszokat is. A legacy rendszerek frissítéséhez kötődően megosztotta legfontosabb tapasztalatát: a technológiai előnyhöz célszerű üzleti előnyt is párosítani.

Faragó János (designhumanist) A Java jövője… nem is a Java? című előadása alatt nagyon kellett ügyféllel egyeztetnem telefonon, így ezt kihagytam. A kulcsszó a Kotlin volt. A prezentációkat a szervezők publikálták, így megtekinthető.

Pákozdi György (Green Fox Academy) JShell: a Java 9 REPL csodája című előadásában demózta a read-eval-print-loop technikát. A megközelítés inkább hibakezeléshez kötődött, de ez a „parancssor” végre beépült az ökoszisztémába, így rendelkezésre áll az azonnali végrehajtás és kiértékelés (eredmény visszaadás) a futtatókörnyezetben. Rövid áttekintést kaptunk arról is, hogyan működik, mit jelent a REPL más programozási nyelvekben.

Balogh Zsolt (Liferay) Patchelés Enterprise Java környezetben címmel összefoglalta az inkrementális javítási folyamatot és áttekintést adott arról, hogy egy elosztott rendszerben mindez miket érinthet, például alkalmazás-szerver, adatbázis, operációs rendszer, böngésző (asztali és mobil), DK, felhőszolgáltatás. Persze mindegyikből többféle is választható. Felsorolta egy patching toollal szemben megfogalmazható általános és egyben minimum követelményeket/elvárásokat. Megosztott néhány gyakorlati tapasztalatot is, főként az egyszerűsítést és az automatizálást érintve. Néhány tipikus rejtett problémát is megismerhettünk.

Fodor Bertalan (EPAM) Reaktív microservice-ek – a jövő Javával című előadásában hangsúlyozta, hogy az üzleti igények változásában beállt jelenlegi trend nem az, hogy a nagyobb hal megeszi a kisebbet, hanem az, hogy a gyorsabb hal eszi meg a lassabbat. Az architektúra fejlődése során a nyújtott/biztosított szolgáltatások egyre komplexebbek, állandóan növekszik a felhasználók száma, amihez természetesen folyamatosan növekvő erőforrásigény társul. Az alapvető elvárások kulcsszava a reaktivitás, 4 szempontban gondolkodva: reszponzív, reziliens, elasztikus, üzenetalapú.