Přejít k navigační liště

Zdroják » Mobilní vývoj » A takový byl mDevCamp 2014

A takový byl mDevCamp 2014

V sobotu proběhl 4. ročník konference pro mobilní vývojáře mDevCamp. Program byl nabitý, dopoledne delší přednášky, odpoledne kratší a večer Lightning talky. Není v mých silách popsat úplně vše, zaměřil jsme se tedy na několik témat, která mě zaujala.

Jak efektivně pracovat s databází na Androidu

Michal Havryluk svojí přednášku zaměřil na databázi SQLite. Tuto souborovou databázi používají jako lokální úložiště dat nejen aplikace pro Android, ale i pro iPhone. Přednáška ale byla zaměřena na Android, a to zejména na to, jak ukládání dat optimalizovat na rychlost. Přestože jde o jednoduchou lehkou souborovou databázi, podporuje většinu věcí ze standardu SQL92. A věděli jste, že byla původně vytvořena na zakázku pro systém řízení raket U.S.NAVY?

Podporuje základní datové typy INT, REAL, TEXT, BLOB a NULL. S tím souvisí další zajímavost, že datový typ je daný hodnotou a nikoliv kontejnerem. Při uložení se pokusí hodnotu dynamicky přetypovat. Pokud to ale nejde, klidně uloží například STRING do sloupce INT.

Indexy jsou řešeny tak, že je daný sloupec zkopírován do B-TREE podoby. To zrychluje vyhledávání, ale pochopitelně zpomaluje INSERT/UPDATE. Pokud prohledáváme např. 50.000 řádek, trvá to bez indexu cca 50 ms, zatímco s indexem pouhých 5 ms.

SQLite podporuje základní transakce (BEGIN/COMMIT/ROLLBACK) a navíc přidává vlastní SAVEPOINT/RELEASE. Pokud transakce nepoužijete, každý příkaz proběhne automaticky v samostatné transakci. To ale přináší režii navíc, takže při více příkazech po sobě lze dosáhnout použitím transakce jistého zrychlení.

Dále Michal vysvětlil několik dalších technik, jak na Androidu práci s databází urychlit. Mezi ně patří: Content Provider Client (nebude se stále zpracovávat celé URI), již zmíněné transakce a content provider operations (nemusíte stále přepínat context), bulk insert, a pokud chcete výkon optimalizovat „na kost“, tak SqliteStatement (přímé bindování hodnot). Poslední část přednášky pak byla zaměřena na asynchronní nahrávání dat do activity nebo fragmentu pomocí Loaders.

P1030921-michal-havryluk

Michal Havryluk

Vývoj pro Google Glass pomocí Android GDK

V druhém bloku mě zaujala přednáška Davida Vávry z Inmite o GDK. Něco už jsem o tom slyšel na minulém WebExpu, ale to bylo spíš obecné představení. Pro Google Glass lze vyvíjet dvěma způsoby: Jednodušší Mirror API (přes Google servery) nebo plnohodnotnější GDK.

Aplikace napsané pomocí GDK (nativní SDK API level 19) podporují real time interakce, fungují i v offline režimu a mají plnou kontrolu nad senzory. Jedná se o plnohodnotné Android API, spíše rozšířené než zúžené. Je tam jen pár omezení vyplývajících z hardwarových možností: není podporován touch a neexistuje emulátor. Je to natolik specifické, že emulátor nedává smysl. K vývoji tedy potřebujete přímo Google Glass. Ty lze zatím koupit pouze v USA, ale již bez pozvánek. Aplikace se vyvíjí normálně v Eclipse nebo Android Studiu.

Pro předávání dat mezi aplikacemi lze použít Intents, stejně jako v normálním smartphonu. Speciálním typem aplikace jsou Live Cards, což je obdoba widgetů. Něco řeknete, Voice Manager to rozpozná a aktivuje danou kartu. Updatujete je jako widgety pomocí Remote Views.

Výhodou je jednotné rozlišení 640x360px, takže můžete pracovat na úrovni pixelů. Alespoň zatím. Základem UI jsou karty s doporučeným černým pozadím, které je v brýlích vidět jako poloprůhledné. Karty se používají během normálních činností, např. chůze. Pokud potřebujete plnou pozornost uživatele, například ve hrách, použijete tzv. Immersions. Taková aplikace má pak plnou kontrolu úplně nad celým zařízením a může přetížit libovolnou funkci, a to i swipování, i když se to nedoporučuje.

GDK je zatím stále ve verzi prototypu, takže se to každý měsíc mění a zpětná kompatibilita se neřeší. Aplikace lze již umístit na oficiální store MyGlass. API má dobrou dokumentaci a hodně příkladů na Githubu.

P1030931-david-vavra

David Vávra

Jak pečovat o hráče, aby vám rádi vydělávali peníze

Martin Krček z MADFINGER Games pojal přednášku spíše z pohledu marketingu. To je oblast, která vývojářům často uniká. Kvalita je ve vašich rukou a musíte to udělat tak, aby se hráči vraceli. Především je potřeba vše měřit (co hráč ve hře dělal, co si ve hře koupil) a na základě měření vylepšovat.

Důležitá je také komunikace. Upomínat, upomínat, upomínat. Pomocí newsletterů, sociálních sítí apod. Je to zejména o tom, jak „vracet uživatele do hry„. Zajímavá byla zmínka o tom, jakým jazykem komunikovat. Myslíte si, že celý svět mluví anglicky? V MADFINGER mají jen 40 % anglicky mluvících hráčů. Mnoho uživatelů je například z Brazílie, a tam se mluví portugalsky.

Důležité je mít rovněž připravenou infrastrukturu – co když ti lidé opravdu přijdou? Odezva 200-300 ms je strašně moc. Když vystřelíte, tak aby ten hráč mezitím neodešel.

Nakonec Martin zmínil otázku monetizace, tedy jak na tom vlastně vydělávat. Původně zkoušeli normální placené hry, ale moc to nefunguje. Doporučuje základ zdarma a potom prodávat různé itemy ve hře nebo přidat reklamu. A co z toho zvolit, závisí na státu, odkud hráč je. Někde lépe funguje reklama a někde to dokupování.

Martin Krček

Martin Krček

Endpoints – výchozí bod vašeho API

Přednáška Tomáše Zvěřiny, byla celá stylizovaná do Starwars, ale nesmí se to říkat ;-) Mluvil o škálování backendu mobilních aplikací pomocí Google Cloud. Tomáš ho dnes používá i tam, kde by dříve použil PHP/MySQL. Google Cloud zahrnuje několik služeb: App Engine (platoform as a serice), Compute Engine (linuxový virtuální stroj) a množství různých API.

Novinkou je potom Managed Virtual Machine. Ten přináší pohodlí App Enginu, ale máte vše pod kontrolou a můžete používat různé knihovny (zmiňoval např. Image Magick, který z normálního App Enginu prostě nezavoláte). Obsahuje množství API pro storování dat, nejlépe z toho vycházel DataStore. Další novinkou jsou Endpoints, které vám vygenerují klientské API pro Javu, OS, JavaScript a nově také pro Dart.

Z této přednášky jsem měl trochu rozporuplné pocity. Na jednu stranu to byla smršť informací, šel hodně do detailů, byl prostor na otázky (a že jich bylo). Ale upřimně, jestli je použití této technologie takhle komplikované, tak nevím, jestli bych ji chtěl použít.

P1030953-tomas-zverina

Tomáš Zvěřina

GoodData a mobilní zařízení

Jiří Tobolka z GoodData mluvil o otevřené Business Inteligence platformě, kterou vytvořili a provozují. Zpracovávají i TB dat, GB úplně běžně. Použivají Apiary. S pomocí REST API lze snadno vytvořit mobilní aplikaci, která bude prezentovat zpracovávaná data. Ve výsledku je to o tom, aby třeba CEO věděl, kolik mu včera obchodníci udělali tržeb. Agregované informace pak lze zobrazit na mobilních zařízeních – nejen na smartphonech, ale také například na Google Glass, chytrých hodinkách a různých jiných gadgetech, které teprve přijdou.

Celá přednáška byla vlastně lákadlo pro spolupráci s mobilními vývojáři, kteří by chtěli jejich otevřené API využívat.

Andy Indie na volné noze

Tomáš Hubálek vyprávěl příběh, jak se stal z korporátního zaměstnance indie vývojářem. Tím je myšlen vývojář, který dělá vlastní produkty, nikoliv tedy práci na zakázku. Sice to nezmiňoval, ale tomuto stylu podnikání se dnes také říká micropreneur. Takový podnikatel musí být samozřejmě trochu renesanční typ, protože není jen vývojářem, ale také markeťákem, UXákem…

Soustředil se vlastně jen na několik, poměrně malých, mobilních aplikací nebo dokonce widgetů, které různě „recykloval“ a zkoušel portovat na různé platformy (Nokia, BlackBerry…). Dnes se soustředí na Android, ale do budoucna uvažuje i o „indie“ stylu třeba i v úplně jiném, nesoftwarovém, oboru.

Celé to pro mě bylo velmi inspirativní a nepopírám, že mu to trochu závidím. Obdivuhodné na tom bylo zejména to, že se mu tento zlom povedlo udělat v době, kdy už měl rodinu, kterou musel živit. Rodina se musela naučit chápat, že když sedí u počítače, je to jako kdyby byl skutečně v práci a nemůžou ho rušit. Pokud jste zatím svobodní a bezdětní, máte to mnohem jednodušší.

P1040017-tomas-hubalek

Tomáš Hubálek

Mobilní telefon, Bluetooth a Arduino

Štěpán Bechynský je sice z Microsoftu, ale tvrdí, že software už je dnes o ničem a zajímá se o hardware, zejména jednočipové počítače Arduino, Raspberry Pi nebo nové hybridní počítače, které kombinují jednočip, který sbírá data a linuxový počítač, který je pak zpracovává a prezentuje. Zmiňoval také malý počítač Intel Galileo, na kterém klidně mohou běžet Windows nebo Linux.

Všechen hardware ukazoval přes projektor, který si sám vyrobil z webové kamery a prkénka na maso. Závěr: HW + SW = Internet of thinks. Myslete tedy i na HW.

Závěr

Na mDevCampu jsem byl poprvé, takže nemám srovnání s minulými ročníky, ale celkově musím říct, že mě akce nadchla. Zaslechl jsem nějakou kritiku, že ty odpolední přednášky byly příliš krátké a že se během 20 minut nedá pořádně nic vysvětlit. Já jsem spíš ten typ, který potřebuje nasměrovat a detaily si už pak najde sám, takže mi tenhle formát naopak vyhovuje.

Komentáře

Subscribe
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Vojta

Přesně tak, krátké přednášky mají něco do sebe, mě se dokonce hodně líbily i ty 5. minutové, tam se totiž poznal skutečně dobrý speaker.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.