}w!"#$%&'()+,-./012345<ya

Size: px
Start display at page:

Download "}w!"#$%&'()+,-./012345<ya"

Transcription

1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w!"#$%&'()+,-./012345<ya Vývoj multiplatformových aplikácií pre múdre telefóny BAKALÁRSKA PRÁCA Matúš Pietrzyk Brno, 2013

2 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj. Matúš Pietrzyk Vedúci práce: doc. RNDr. Vlastislav Dohnal, Ph.D. ii

3 Pod akovanie Na tomto mieste by som sa chcel pod akovat doc. RNDr. Vlastislavovi Dohnalovi, Ph.D. za ochotu a odborné rady poskytnuté pri vytváraní tejto práce. iii

4 Zhrnutie Ciel om práce je vytvorit prehl ad možností vývoja aplikácií pre múdre telefóny, ktoré bežia na rôznych platformách a následné vytvorenie jednoduchej ukážkovej aplikácie, ktorá bude demonštrovat možnosti zvoleného vývojového rámca. iv

5 Kl účové slová multiplatformové nástroje, natívne aplikácie, hybridné aplikácie, webové aplikácie, mobilné operačné systémy, Android, ios, Windows Phone v

6 Obsah 1 Úvod Štruktúra práce Prehl ad mobilných platforiem Android História Architektúra Vývoj aplikácií ios História Architektúra Vývoj aplikácií Windows Phone História Architektúra Vývoj aplikácií Bada BlackBerry Symbian Porovnanie Multiplatformové nástroje Fázy vývoja multiplatformových aplikácií Vývoj Integrácia Zostavenie Publikovanie Správa Technologické prístupy pri tvorbe multiplatformových aplikácií JavaScript rámce Aplikačné továrne Obal ovače webového kódu Behové prostredia Prekladače zdrojového kódu Výber architektúry Natívne aplikácie Webové aplikácie Hybridné aplikácie

7 4 Prehl ad multiplatformových nástrojov PhoneGap Marmalade Appcelerator Titanium MoSync Porovnanie a hodnotenie Ukážková aplikácia Užívatel ské rozhranie Pripojenie k sieti Ukladanie dát Geolokácia Mapy Záver A Snímky obrazovky

8 1 Úvod Múdre telefóny zaznamenali v posledných rokoch výrazný nárast používania. Najväčší podiel na tom má uvedenie mobilných operačných systémov od spoločností Apple a Google. Trh sa začal tomuto novému trendu prispôsobovat a spoločnosti zistili, že musia začat poskytovat služby a obsah používatel om múdrych telefónov, či už prostredníctvom mobilných verzií svojich internetových stránok alebo prostredníctvom samostatných mobilných aplikácií. Použitie mobilných operačných systémov ale nie je limitované len na múdre telefóny. Ich nasadenie je možné aj v iných mobilných zariadeniach, ako napríklad v PDA, či tabletoch. Kým múdre telefóny nie sú priamym konkurentom klasických stolných počítačov alebo notebookov, tak práve tablety predstavujú ideálnu náhradu pre väčšinu činností, ktoré užívatelia na počítačoch vykonávajú. Tento fakt je jednou z garancií posilňovania trhu s mobilnými aplikáciami aj do budúcnosti. V súčasnosti je na trhu vel ké množstvo mobilných operačných systémov, každý so svojou vlastnou distribučnou platformou. Technológie pre vývoj aplikácií sú tiež často odlišné. Platformová rozdrobenost trhu predstavuje významný problém pre vývojárov, ktorí sa snažia dostat svoje aplikácie, k čo najväčšiemu počtu užívatel ov. Ciel om tejto práce je porovnat možností vývoja aplikácií na jednotlivých platformách a preskúmat možnosti použitia multiplatformových nástrojov pri ich vývoji. 1.1 Štruktúra práce Práca je rozdelená na 4 časti. Prvá čast obsahuje prehl ad mobilných operačných systémov spolu s ich vzájomným porovnaním z hl adiska natívneho vývoja aplikácií. V druhej časti sa nachádza motivácia pre používanie multiplatformových nástrojov, popis častí z ktorých sa takéto nástroje skladajú a prehl ad možností pri výbere architektúry a technologických prístupov pri tvorbe aplikácií. Tretia čast obsahuje samotný popis štyroch vybraných multiplatformových nástrojov a ich vzájomné porovnanie. Posledná čast obsahuje popis vytvorenej ukážkovej aplikácie, ktorá demonštruje možnosti zvoleného vývojového rámca. 3

9 2 Prehl ad mobilných platforiem 2.1 Android Android je mobilný operačný systém založený na systéme Linux. Je určený primárne pre dotykové mobilné zariadenia, ako sú múdre telefóny a tablety. Kód systému bol zverejnený pod licenciou Apache, čo umožňuje výrobcom hardvéru si systém l ubovol ne prispôsobit podl a svojich potrieb História Android bol vyvinutý spoločnost ou Android Inc. založenej v roku 2003 ako výsledok nespokojnosti, ktorá v tom čase vládla na trhu s múdrymi telefónmi. Google túto spoločnost už od jej vzniku finančne podporoval a nakoniec ju v roku 2005 kúpil. Prvá verzia systému Android bola uvedená v roku 2007, spolu zo založením Open Handset Alliance (OHA), čo bolo konzorcium hardvérových, softvérových a telekomunikačných spoločností, ktoré mali za ciel podporovat otvorené štandardy pre mobilné zariadenia. Prvé verzie systému 1.0 a 1.1 nepodporovali softvérovú klávesnicu [1], čím vyžadovali prítomnost hardvérovej klávesnice v zariadení. Toto bolo zmenené s príchodom verzie 1.5 Cupcake v apríli Medzi d alšími pridanými funkciami boli miniaplikácie (tzv. widgety) a možnost nahrávania videa. V septembri 2009 bola vydaná verzia 1.6 Donut a o mesiac neskôr 2.0 Eclair, v ktorej bola pridaná podpora viacerých Google účtov a navigačný program Google Maps Navigation. Nasledovali verzie 2.2 Froyo a 2.3 Gingerbread. Posledná menovaná je doteraz najrozšírenejšou verziou systému Android na trhu. Obsahovala významné vylepšenia, ako možnost inštalácie programov na externú pamät ovú kartu a podporu pre OpenGL ES a NFC 2. Nasledujúca verzia 3.0 Honeycomb bola na rozdiel od svojich predchodcov určená pre tablety. Medzi hlavné vylepšenia patrili zmeny v užívatel skom rozhraní, podpora väčších obrazoviek a nahradenie potreby fyzických tlačidiel ako spät, domov a menu v zariadení ich softvérovou verziou v novej lište na spodku obrazovky. V čase jej vydania, vetva 2.x stále slúžila telefónom a vetva 3.x tabletom. 1. OpenGL ES podmnožina OpenGL 3D rozhrania určená pre zariadenia ako sú múdre telefóny. 2. NFC (Near field communication) technológia slúžiaca k bezdrôtovej komunikácií medzi elektronickými zariadeniami na krátku vzdialenost. 4

10 2. PREHL AD MOBILNÝCH PLATFORIEM Zmenilo sa to príchodom verzie 4.0 Ice Cream Sandwich, ktorá oba tieto vetvy spojila a vytvorila spoločné SDK 3. Hlavným vylepšením boli zmeny v užívatel skom rozhraní. Medzi d alšie patrili program na detailné meranie spotreby a analýzu prenášaných dát, nová verzia ového klienta a aplikácie kalendár a nová funkcia Android Beam, ktorá umožňuje dvom zariadeniam medzi sebou prenášat dáta len ich vzájomným dotykom. Poslednou verziou systému je 4.2 Jelly Bean, ktorá bola vydaná v novembri Architektúra Obr. 2.1: Architektúra systému Android. Zdroj: [2] Architektúra operačného systému Android sa skladá z piatich základných vrstiev zobrazených na obrázku 2.1 [2]. 3. SDK (Software development kit) sada nástrojov pre vývoj softvéru na určité platformy. 5

11 2. PREHL AD MOBILNÝCH PLATFORIEM Jadro systému Linux poskytuje základné služby operačného systému, ako sú napríklad hardvérové ovládače, správa procesov a pamäti, správa napájania, správa sietí a d alšie. Jadro zároveň slúži aj ako abstraktná vrstva medzi hardvérom a softvérom vo vyšších vrstvách. Knižnice Android obsahuje sadu C/C++ knižníc, ktoré sú používané viacerými komponentmi systému. Tieto funkcie sú vývojárovi prístupné cez aplikačný rámec. Patria sem napríklad: Štandardná knižnica systému C implementácia štandardnej systémovej C knižnice (libc) upravenej pre zapuzdrené zariadenia pracujúce na systéme Linux. Knižnica médií založená na OpenCORE od spoločnosti PacketVideo. Podporuje prácu so statickými obrázkami, ako aj rôznymi audio a video formátmi; medzi inými napr.: JPG, PNG, MP3, AAC, MPEG4 a H.264. LibWebCore knižnica podporujúca prácu s vloženým webovým náhl adom, ako aj s klasickým internetovým prehliadačom. SGL knižnica pre prácu s 2D grafikou. 3D knižnice implementácia založená na OpenGL ES 1.0. Ak je k dispozícii, používajú knižnice hardvérovú 3D akceleráciu, v opačnom prípade softvérovú. FreeType knižnica, ktorá slúži pre rastrové a vektorové vykresl ovanie písma. SQLite odl ahčená knižnica pre prácu s relačnou databázou, ktorá je dostupná všetkým aplikáciám. Android Runtime spolu s knižnicami tvorí základ pre aplikačný rámec. Má 2 základné komponenty: Základné knižnice poskytujú väčšinu funkcionality, ktorá je dostupná v základných Java knižniciach. Dalvik VM virtuálny stroj optimalizovaný pre mobilné zariadenia a to hlavne s dôrazom na pomer výkonu a spotreby energie. 6

12 2. PREHL AD MOBILNÝCH PLATFORIEM Aplikačný rámec poskytuje prístup k vel kému množstvu služieb, ktoré môžu byt použité pri vývoji aplikácií. Taktiež zaist uje všeobecnú abstrakciu pri prístupe k hardvéru a spravuje užívatel ské rozhranie a aplikačné zdroje. Sada pohl adov ide o prvky použitel né pri tvorbe aplikácií. Patria sem napríklad listy, textové polia, tlačidlá, zaškrtávacie boxy a iné. Poskytovatelia obsahu umožňujú aplikáciám vzájomné zdiel anie dát. Správca zdrojov poskytuje prístup k zdrojom ako sú lokalizované ret azce, grafika a súbory popisujúce grafické rozloženie aplikácie. Správca notifikácií umožňuje aplikáciám v notifikačnej lište zobrazovat vlastné upozornenia. Správca aktivít riadi životný cyklus aplikácií. Aplikácie patria sem základné aplikácie, ktoré sú predinštalované v systéme, ako aj aplikácie tretích strán. Medzi základné aplikácie patrí napríklad kalendár, ový klient, internetový prehliadač, SMS program a program na správu kontaktov. Aplikácie bežia vo vnútri Android Runtime a používajú služby prístupné z aplikačného rámca Vývoj aplikácií Vývoj aplikácii prebieha v programovacom jazyku Java spolu s Android SDK, ktoré obsahuje potrebné nástroje používané pri tvorbe Android aplikácií. Ide o knižnice, skripty, emulátor založený na QEMU 4, ladiaci nástroj, dokumentáciu, vzorové kódy a návody. Android SDK je dostupný pre nasledujúce platformy [3]: Windows XP (32-bit), Vista (32-bit alebo 64-bit), Windows 7 (32-bit alebo 64-bit); Mac OS X alebo novšia verzia (32-bit); Linux (testované na Ubuntu Linux verzie a novšej). Zároveň je potrebná knižnica GNU C Library (glibc) verzie 2.7 alebo novšia. 4. QEMU (Quick EMUlator) open-source emulátor a virtualizér. 7

13 2. PREHL AD MOBILNÝCH PLATFORIEM Oficiálne odporúčané vývojové prostredie je Eclipse spolu s ADT modulom, ktorý do Eclipse pridá nástroje nevyhnutné k tvorbe Android projektov. Podporované sú však aj iné vývojové prostredia. Na editáciu Java a XML súborov je ale možné použit l ubovol ný textový editor a následne použit nástroje príkazového riadku na zostavenie a ladenie aplikácie. Zdrojový kód Android aplikácií napísaný v jazyku Java je skompilovaný do medzikódu označovaného ako bytekód. Ten je však na rozdiel od bežných Java aplikácií spracovávaný nie v JVM 5, ale v Dalvik VM. Dalvik VM najprv vezme vygenerované Java class súbory a spojí ich do jedného alebo viacerých Dalvik Executable (.dex) súborov. Jeho hlavná úloha je optimalizovat JVM s ohl adom na vel kost potrebného priestoru a pomer výkonu k spotrebe energie. Predtým ako je možné programy publikovat na Google Play 6, je nutné vytvorenie vývojárskeho účtu a zaplatenie registračného poplatku vo výške 25 USD [4]. Vývojár tým získa možnost zverejnenia neobmedzeného množstva bezplatných aplikácií. Ak chce vývojár svoje aplikácie ponúkat za určitú finančnú čiastku, je ešte nutné vytvorenie Google Checkout Merchant účtu. 2.2 ios ios je proprietárny mobilný operačný systém, ktorý bol vyvinutý spoločnost ou Apple v roku Pôvodne bol určený pre múdre telefóny iphone, neskôr bola ale jeho podpora rozšírená aj na iné Apple zariadenia, ako ipad, ipod Touch a Apple TV. Apple neponúka licencie na inštaláciu systému iným výrobcom hardvéru pre svoje zariadenia História Prvá verzia systému iphone OS 1.0 bola uvedená v januári 2007 [5]. Systém zo začiatku nepodporoval aplikácie tretích strán. Apple argumentoval, že vývojári môžu používat webové aplikácie, ktoré sa budú správat ako natívne. Toto vyvolalo vel ký nesúhlas vývojárov a Apple sa to rozhodol zmenit s príchodom verzie iphone OS 2.0, ktorá bola uvedená v júli Obsahovala podporu vytvárania aplikácií tretích strán a ich inštaláciu z obchodu 5. JVM (Java virtual machine) virtuálny stroj, ktorý spracováva Java bytekód. 6. Google Play online dostribučná služba od spoločnosti Google. 8

14 2. PREHL AD MOBILNÝCH PLATFORIEM App Store 7. Do systému taktiež pribudla plná podpora Microsoft Exchange pre synchronizáciu ov, kalendárov a kontaktov. V júni 2009 Apple vydal verziu iphone OS 3.0, v ktorej pribudla možnost kopírovania a vkladania textu, push notifikácie pre aplikácie tretích strán, hlasové ovládanie a podpora MMS. Verzia ios 4.0 uvedená v júni 2010 obsahovala jedno z najvýznamnejších vylepšení, a to podporu behu viacerých aplikácií súčasne. Od tejto verzie prebehla aj zmena názvu z iphone OS na ios. Medzi d alšie pridané funkcie patrila napríklad možnost vytvárania zložiek na domovskej obrazovke a podpora videorozhovoru cez aplikáciu FaceTime. Vo verzii ios 5.0 vydanej v októbri 2010, bola uvedená hlasová asistentka Siri, ktorá nahradila pôvodné hlasové ovládanie. Siri umožňuje zadávat príkazy v prirodzenom jazyku, ktoré následne posiela ako požiadavky skupine webových služieb. Ďalšou pridanou funkciou je notifikačné centrum umožňujúce aplikáciám vo vyt ahovacej lište zobrazovat rôzne upozornenia. Poslednou verziou systému je ios 6.0, ktorá bola vydaná na jeseň Najvýznamnejšou zmenou bolo nahradenie pôvodnej aplikácie Mapy založenej na Google Maps novou aplikáciou s mapovými podkladmi od holandskej spoločnosti TomTom. Medzi d alšími vylepšeniami je napríklad hlbšia integrácia sociálnej siete Facebook do systému a nová aplikácia Passbook, umožňujúca užívatel ovi mat v zariadení uložené kupóny, letenky, lístky na podujatia a iné formy mobilných platidiel Architektúra ios je odl ahčenou verziou operačného systému OS X, ktorý je používaný v počítačoch spoločnosti Apple. Vzhl adom na to, že systém je určený pre mobilné zariadenia, neobsahuje všetku funkcionalitu OS X, pridáva ale niektoré funkcie, ako napríklad podpora dotykového ovládania. Architektúra systému ios sa skladá zo štyroch vrstiev zobrazených na obrázku 2.2, ktoré zaist ujú základnú funkčnost a poskytujú vývojárom rozhrania a rámce potrebné k vývoju aplikácií [7]. Vrstva jadra operačného systému poskytuje nízkoúrovňové funkcie, na ktorých je postavená väčšina iných technológii. Vývojár ich nemusí používat v aplikácií priamo, ale je pravdepodobné, že sú používané vyššími vrstvami. Patrí sem napríklad: 7. App Store oficiálna digitálna distribučná platforma pre aplikácie so systémom ios spravovaná spoločnost ou Apple. 9

15 2. PREHL AD MOBILNÝCH PLATFORIEM Obr. 2.2: Architektúra operačného systému ios. Zdroj: [6] Rámec Accelerate poskytuje rozhranie pre prácu s matematickými funkciami, vel kými číslami, výpočty DSP, výpočty digitálneho spracovania obrazu a pod. Výhodou oproti vlastnej implementácií týchto funkcií je fakt, že sú optimalizované pre všetky hardvérové konfigurácie, ktoré sú prítomne v ios zariadeniach. Rámec externého príslušenstva rozhranie pre prácu s externým príslušenstvom, ktoré môže byt pripojené bud proprietárnym Apple konektorom, prípadne pomocou technológie Bluetooth. Bezpečnostný rámec poskytuje rozhranie pre správu bezpečnostných certifikátov, súkromných a verejných kl účov, generovanie kryptografických pseudonáhodných čísel a pod. Vrstva služieb poskytovaných jadrom operačného systému obsahuje základné systémové služby, ktoré používajú aplikácie a samotný systém. Medzi inými napr.: Úložisko icloud poskytuje prístup k natívnemu dátovému úložisku od spoločnosti Apple. Dovol uje aplikáciám prehliadanie a editáciu súborov bez toho, aby museli byt najskôr stiahnuté do zariadenia. Podpora XML služba poskytujúca podporu pre spracovanie XML dokumentov. SQLite odl ahčená verzia SQL databázy, ktorá môže byt zakomponovaná do aplikácie. 10

16 2. PREHL AD MOBILNÝCH PLATFORIEM Nákupy v rámci aplikácie umožňuje kupovanie dodatočného obsahu alebo služieb priamo z aplikácie. Lokalizačné služby poskytuje informácie o polohe užívatel a. K tomuto účelu využíva nielen GPS, ale aj telefónnu siet a Wi- Fi. Sociálne siete poskytuje rozhranie pre prístup k účtom užívatel a na sociálnych siet ach. Podpora zahrňuje siete Twitter, Facebook a Sina Weibo 8. Pass Kit implementuje podporu tzv. stiahnutel ných lístkov. Ide napríklad o vstupenky na koncerty, letenky, zl avové karty a pod. Vrstva médií obsahuje podporu pre grafické, audio a video technológie použitel né pri tvorbe aplikácií. Grafické technológie Patria sem napríklad: Core Graphics zabezpečuje vykresl ovanie 2D vektorov a renderovanie obrázkov. Core Animation poskytujú pokročilú podporu pre animácie obsahu v zariadení. Core Image poskytuje rozšírenú podporu pre prácu s videom a obrázkami. OpenGL ES a GLKit poskytujú podporu pre hardvérovú akceleráciu pri vykresl ovaní 2D a 3D objektov. Core Text poskytuje engine na vykresl ovanie písma. Audio technológie technológie pre prehrávanie a nahrávanie zvuku a pre vibračnú funkciu. Medzi podporovanými formátmi je napríklad AAC, Apple Lossless (ALAC), Linear PCM a iné. Video technológie umožňujú prehrávanie a v prípade, ak je zariadenie vybavené príslušným hardvérom, tak aj nahrávanie videa a jeho použitie v aplikácií. Podporované sú video súbory s koncovkami.mov,.mp4,.m4v a.3gp s použitím H.264 alebo MPEG-4 kompresie. Vrstva Cocoa Touch obsahuje kl účové rámce používané pri tvorbe ios aplikácií. Táto vrstva poskytuje podporu pre základné techno- 8. Sina Weibo čínska mikroblogovacia sociálna siet. 11

17 2. PREHL AD MOBILNÝCH PLATFORIEM lógie, ako multitasking, dotykové ovládanie, push notifikácie a iné vysokoúrovňové systémové služby Vývoj aplikácií Pre vývoj aplikácií je potrebný počítač Macintosh založený na procesore Intel s operačným systémom Mac OS X a ios SDK. ios SDK obsahuje nástroje potrebné pri tvorbe ios aplikácií. Patria sem napríklad [8]: xcode vývojové prostredie od Apple pre vytváranie aplikácií pre operačné systémy OS X a ios. Preferovaný programovací jazyk je Objective-C, ktorého použitie je pre iphone aplikácie priamo vyžadované. xcode však podporuje aj množstvo iných jazykov; medzi inými napríklad C, C++, Java, Python alebo Ruby. Dashcode je vývojové prostredie, ktoré umožňuje vytváranie webových aplikácií pre iphone a ipad a Dashboard 9 miniaplikácií. iphone Simulator emulátor iphone a ipad zariadenia. Interface Builder je vizuálny editor používaný pri tvorbe užívatel ského rozhrania. Instruments sada nástrojov, ktoré pomáhajú analyzovat výkon aplikácie a využitie pamäte, vd aka čomu môže vývojár l ahko odhalit prípadné úniky pamäti a úzke hrdlá výkonu aplikácie. Jednou z hlavných prekážok pri vývoji aplikácií pre ios do verzie 5.0 bola absencia garbage collection. Vývojári tak museli spravovat pamät manuálne, čo bolo hlavne pre začiatočníkov vel mi zložité. Zmenilo sa to s verziou Objective-C podporovanou ios 5, ktorá pridala túto funkciu pod názvom Automatic Reference Counting (ARC). Stiahnutie ios SDK vyžaduje registráciu na stránkach Apple 10. Tým je umožnené vytvárat aplikácie a spúšt at ich lokálne na počítači prostredníctvom ios emulátora. Aby mohol vývojár aplikácie nainštalovat do fyzického zariadenia, musí patrit do ios vývojového programu, ktorý môže byt trojitého typu [9]: 9. Dashboard aplikácia pre systém OS X používaná na hostovanie miniaplikácií, tzv. widgetov

18 2. PREHL AD MOBILNÝCH PLATFORIEM ios Developer Program dovol uje distribuovat aplikácie v oficiálnom obchode App Store, ako individuálny vývojár, spoločnost, vládna organizácia alebo vzdelávacia inštitúcia. Cena za tento program je 99 USD na rok. ios Developer Enterprise Program umožňuje vývoj proprietárnych programov pre vnútornú distribúciu v rámci spoločnosti, vládnej organizácie alebo vzdelávacej inštitúcie. Táto forma programu však neumožňuje distribúciu aplikácií cez App Store. Cena za program je 299 USD na rok. ios Developer University Program umožňuje vzdelávacím inštitúciám vytvárat tímy vývojárov až do 200 členov. Tento program je bezplatný a dovol uje vyvíjané aplikácie testovat na fyzických zariadeniach, ale nedovol uje ich ad hoc distribúciu, ani zverejnenie v App Store. Dôležitým dokumentom s ktorým by sa mal každý vývojár pred začatím vytvárania prvej aplikácie pre ios oboznámit, je ios Human Interface Guideline (HIG) 11. Popisuje princípy tvorby užívatel ského rozhrania aplikácií, ktorých nedodržiavanie môže mat za následok zamietnutie zverejnenia aplikácie v App Store. 2.3 Windows Phone Windows Phone je proprietárny mobilný operačný systém vyvinutý spoločnost ou Microsoft ako nástupca populárneho systému Windows Mobile. Je však od základu prepracovaný a nie je s týmto systémom spätne kompatibilný. Na rozdiel od svojho predchodcu je primárne zameraný skôr pre bežný spotrebitel ský trh než na podnikovú klientelu História Prvá verzia systému Windows Phone 7 bola uvedená v októbri Systém si nevyslúžil príliš priaznivé hodnotenie od odbornej verejnosti. Chýbali mu niektoré funkcie, ktoré mali iné mobilné operačné systémy v tom čase už bežne implementované. Išlo napríklad o kopírovanie a vkladanie textu. Microsoft sa rozhodol na to rýchlo reagovat uvedením verzie Windows Phone 7 NoDo, ktorá tento nedostatok odstraňovala userexperience/conceptual/mobilehig/mobilehig.pdf 13

19 2. PREHL AD MOBILNÝCH PLATFORIEM Nasledujúca verzia Windows Phone 7.5 Mango bola uvedená v máji Medzi hlavné vylepšenia ktoré priniesla, patrili multitasking pre aplikácie tretích strán, hlbšia integrácia sociálnych sietí Twitter a LinkedIn do systému a nová verzia webového prehliadača Internet Explorer 9. Najnovšia verzia systému Windows Phone 8 Apollo bola uvedená v októbri Jej najväčšou zmenou je prechod na jadro Windows NT, ktoré je rovnaké ako používa Windows 8. Týmto získal Windows Phone rovnaký súborový systém, ovládače zariadení, časti bezpečnostného modelu, grafický engine a hardvérovú abstraktnú vrstvu ako Windows 8. Vývojári týmto navyše získali možnost vel mi l ahkého portovania aplikácií medzi týmito dvoma platformami. Windows NT architektúra umožnila Windows Phone podporu pre multijadrové procesory (až do 64 jadier) a vymenitel né pamät ové úložisko vo forme pamät ovej karty. Taktiež pribudla podpora NFC a viacerých rozlíšení displeja. Hardvér vyvinutý pre verzie Windows Phone 7.x nie je kvôli zmenám v jadre schopný aktualizácie na novú verziu systému Windows Phone 8. Microsoft sa však rozhodol, že tieto zariadenia dostanú začiatkom roku 2013 aktualizáciu na verziu Windows Phone 7.8, ktorá bude obsahovat niektoré funkcie prezentované vo Windows Phone 8. Ide hlavne o zmeny v užívatel skom rozhraní, ako napríklad nová štartovacia obrazovka s možnost ou zmeny vel kosti dlaždíc Architektúra Architektúra systému sa skladá zo štyroch základných komponentov zobrazených na obrázku 2.3 [10]. Základné služby operačného systému ide o základne služby poskytované jadrom systému. Samotné jadro sa skladá z dvoch vrstiev: Jadro systému Windows poskytuje základné funkcie, ako napríklad súborový systém (NTFS), NT jadro a siet ové služby. Mobilné jadro zahrňuje komponenty, ako multimédia, Core- CLR a Trident, čo je vykresl ovací engine pre prehliadač Internet Explorer. Služby platformy aplikácie síce vidia tieto služby len nepriamo, hrajú ale hlavnú úlohu v ich správnom fungovaní. Patrí sem: Správca aplikácií kontroluje všetku logiku spojenú s behom aplikácie. Vytvára proces, v ktorom aplikácia beží a zároveň vyvoláva udalosti spojené s jej štartom, vypnutím a reaktiváciou. 14

20 2. PREHL AD MOBILNÝCH PLATFORIEM Obr. 2.3: Architektúra systému Windows Phone 8. Zdroj: [10] Podobné úlohy vykonáva tiež pre aplikácie bežiace na pozadí spolu s ich správnym plánovaním. Správca balíkov je zodpovedný za inštaláciu a odinštaláciu aplikácií a správu všetkých metadát, ktoré aplikácie vytvoria počas svojho behu. Taktiež sleduje, ktoré aplikácie sú nainštalované a udržiava informácie o miestach v operačnom systéme, kde sa daná aplikácia zaregistrovala, aby sa tam mohla následne objavit. Navigačný server spravuje pohyby medzi aplikáciami pustenými na popredí a predáva pokyny správcovi aplikácií, aby s nimi mohli byt vykonané príslušné akcie. Správca zdrojov monitoruje využívanie systémových zdrojov (hlavne procesoru a pamäte) aktívnymi procesmi a vynucuje na ne určité obmedzenia. Ak aplikácia alebo nejaký proces v pozadí prekročí zdroje, ktoré mu boli alokované, je ukončený, aby bola udržaná celková rýchlost systému. Task Host a Core Application ide o 2 rozdielne aplikačné modely. Task Host reprezentuje model XAML, ktorý bol primárnym vo Windows Phone 7. Core Application reprezentuje nový aplikačný model, uvedený s verziou Windows Phone 8. Vývoj pomocou týchto modelov je podrobnejšie popísaný v sekcii

21 2. PREHL AD MOBILNÝCH PLATFORIEM Vývoj aplikácií Základ pre vývoj aplikácií pre platformu Windows Phone vo verziách 7.x tvoril.net Framework. Poskytoval základné knižnice používane pri vývoji všetkých Microsoft aplikácií. Na jeho vrchu potom samotná aplikačná platforma Windows Phone pozostávala z dvoch hlavných vývojových rámcov: Silverlight a XNA Framework. Oba rámce zdiel ajú rovnaký aplikačný model postavený na vrchu.net Common Language Runtime (CLR). To im umožňuje vzájomný prístup k svojim knižniciam. Silverlight sa používa pri vytváraní bežných aplikácií a jednoduchých 2D hier. Samotný vývoj prebieha v jazyku C# alebo Visual Basic spolu s XAML, čo je značkovací jazyk používaný k popisu grafického užívatel - ského rozhrania. Pri jeho tvorbe majú dizajnéri vel kú flexibilitu kvôli podpore rôznych populárnych nástrojov, ako Adobe Illustrator, Adobe Photoshop či Microsoft Expression Design. V nich môžu vytvárat vektorové užívatel ské rozhranie, ktoré môže byt následne jednoducho exportované do XAML. XNA rámec je primárne určený pre tvorbu hier. Poskytuje 2D a 3D herný engine a podporu práce s modelmi, textúrami, terénom, efektmi a animáciami. S prechodom na nové jadro vo Windows Phone 8 bol uvedený aj nový programovací model a kolekcia rozhraní spoločne pomenovaných ako Windows Runtime (WinRT). WinRT reprezentuje nie len nové funkcie a možnosti, ale úplne iný spôsob tvorby aplikácií. Ide o platformu postavenú na verzii Component Object Model (COM) rozšírenej o detailné metadáta, ktoré popisujú každú jednotlivú súčast. Tieto metadáta umožňujú aby boli WinRT metódy a typy namapované do rôznych programovacích prostredí. Vo Windows Phone 8 ide o verziu.net (C# alebo Visual Basic) a čistý natívny kód (C/C++). Primárny spôsob vývoja vo WP 7.x, za použitia XAML spolu s jazykmi C# alebo Visual Basic je vo Windows Phone 8 plne podporovaný. Microsoft ale rozšíril jeho možnosti tým, že umožnil použit C/C++ kód obalený vo WinRT komponente a priamo zakomponovat Direct3D grafiku do XAML aplikácie. S prechodom na novú verziu systému bolo ale upustené od možnosti vývoja hier v XNA. Existujúce verzie 7.x XNA hier, bude možné na Windows Phone 8 spustit, ale pre verziu platformy 8.0 nebudú môct vývojári vytvárat nové hry. Microsoft odporúča pre vývoj hier použit natívny C/C++ kód spolu s Direct3D. Pre vývoj aplikácií pre Windows Phone 8 je nutné nainštalovat Win- 16

22 2. PREHL AD MOBILNÝCH PLATFORIEM dows Phone 8 SDK, ktorý je k dispozícií zadarmo. Obsahuje Visual Studio 2012 Express, Microsoft Blend 2012 Express, emulátor zariadenia Windows Phone, knižnice a projektové šablóny. V prípade ak chce vývojár aplikácie zverejnit vo Windows Phone Application Store, je potrebná registrácia a zaplatenie ročného poplatku vo výške 99 USD. Získa za to možnost zverejnenia 100 neplatených aplikácii a neobmedzeného množstva platených aplikácii. Pri registrácii je vytvorený účet, ktorý môže byt bud firemného typu alebo môže íst o účet pre jednotlivcov. V prípade študentov s platným účtom DreamSpark nie je nutné platit registračný poplatok. 2.4 Bada Operačný systém Bada vznikol v roku 2010 z pôvodnej proprietárnej platformy SHP spoločnosti Samsung [11]. Už od začiatku nebolo jeho ciel om konkurovat múdrym telefónom najvyššej triedy, ale rozšírit ponuku lacnejších zariadení. Ide o platformu s konfigurovatel ným jadrom, ktoré môže byt bud proprietárne, alebo môže íst o jadro Linuxu. Na vrchu potom spočíva samotná Bada, ktorá poskytuje služby a vývojové rámce. Vývoj aplikácií prebieha pomocou Bada SDK, ktoré obsahuje všetky potrebné nástroje. Jeho súčast ou sú knižnice, hlavičkové súbory, IDE založené na Eclipse a rôzne doplnkové nástroje, ako emulátor, analyzátor výkonu a event injector, ktorý vytvára umelé dáta a udalosti, ako napríklad hovory a správy, ktoré sú potrebné na testovanie aplikácií v emulátore. Pri vývoji sú k dispozícií dva rozdielne typy rámcov. Rámec C++, ktorý môže byt použitý na vývoj C++ alebo flash aplikácií a webový rámec, ktorý je používaný na vývoj webových aplikácií pomocou technológií ako HTML, CSS a JavaScript. Systém Bada je od marca 2012 je k dispozícii v aktuálnej verzii BlackBerry BlackBerry OS je mobilný operačný systém, za ktorého vznikom stojí spoločnost Research In Motion (RIM). Bol vyvinutý pre ich vlastnú sériu múdrych telefónov BlackBerry. Systém je primárne vhodný pre biznis klientelu, vd aka svojej natívnej podpore podnikového u cez aplikačné rozhranie MIDP, ktoré umožňuje bezdrôtovú synchronizáciu ov, kalendára, úloh, poznámok a kontaktov cez Microsoft Exchange, IBM Lotus Domino a Novell GroupWise, pri ich použití spolu s BlackBerry Enterprise Server. 17

23 2. PREHL AD MOBILNÝCH PLATFORIEM Ide o platformu, ktorá ponúka na výber z viacerých programovacích jazykov a knižníc. Do verzie 7.1 prebiehal vývoj aplikácii pomocou Black- Berry Java SDK. 30. januára 2013 bola uvedená nová verzia systému s označením Black- Berry 10. Nejde však o vylepšenie predošlej verzie, ale o úplne nový systém založený na QNX 12, ktorý bol získaný spoločnost ou RIM v roku Spolu s jeho uvedením došlo zároveň k premenovaniu spoločnosti Research In Motion na BlackBerry. Vývoj aplikácií je možný pomocou nasledujúcich technológií [12]: C/C++ natívny spôsob, HTML5 WebWorks, Java ME, Adobe Flash. 2.6 Symbian Symbian je platforma pôvodne vyvinutá v roku 1998 spoločnost ou Symbian Ltd. 13 V roku 2008 sa Nokia, vtedy najväčší výrobca mobilných telefónov, rozhodla kúpit všetky akcie spoločnosti Symbian Ltd. a vytvorit novú neziskovú organizáciu Symbian Foundation, ktorej ciel om bolo dohliadat na vývoj systému. Nokia sa následne stala najväčším prispievatel om do jeho kódu. Išlo o najpopulárnejší operačný systém pre múdre telefóny až do konca roku 2010, kedy prvenstvo pripadlo systému Android. Popularita systému rýchlo klesala, na čo musela Nokia reagovat a vo februári 2011 bolo oznámené partnerstvo so spoločnost ou Microsoft a prechod na Windows Phone ako primárnu platformu jej múdrych telefónov. Dôsledkom tohto rozhodnutia bol rapídny odliv vývojárov od platformy Symbian. V júni 2011 bola uzavretá dohoda medzi Nokiou a spoločnost ou Accenture, ktorá zaručuje, že Accenture bude poskytovat služby, podporu a pokračovat vo vývoji softvéru pre platformu Symbian až do roku Posledná verza systému, Symbian Belle, bola vydaná v októbri Vývoj je možný pomocou nasledujúcich technológii [13]: Qt 14 spolu z jazykom C++, 12. QNX komerčný real-time operačný systém určený hlavne pre zapuzdrené systémy. 13. Symbian Ltd. spoločnost založená v roku 1998 ako partnerstvo medzi firmami Nokia, Ericsson, Motorola a Psion. 14. Qt multiplatformový aplikačný rámec a vývojové prostredie založené na jazyku C++. 18

24 2. PREHL AD MOBILNÝCH PLATFORIEM Webová platforma za použitia HTML5, JavaScript a CSS, Adobe AIR, Android Runtime. 2.7 Porovnanie Platforma Android Natívny jazyk pre vývoj Java Vývojové prostredie Eclipse + ADT plug-in Obchod Google Play ios Objective-C xcode App Store Windows Phone 7.x Windows Phone 8 BlackBerry 7 BlackBerry 10 Bada Symbian C#/Visual Basic + XAML C/C++, C# / Visual Basic + XAML Java C/C++ C++ / HTML, CSS, JavaScript C++ Visual Studio a nástroje od spoločnosti Microsoft ako Expression Blend Visual Studio a nástroje od spoločnosti Microsoft ako Expression Blend Eclipse + JDE plug-in / BlackBerry JDE QNX Momentics IDE / Visual Studio + BlackBerry native plug-in Bada IDE založené na Eclipse CDT a JSDT Qt Creator / Carbide Windows Phone Store Windows Phone Store BlackBerry App World BlackBerry App World Samsung Apps Nokia Store Tabul ka 2.1: Porovnanie mobilných operačných systémov z hl adiska natívneho vývoja. Vlastné vypracovanie. 19

25 2. PREHL AD MOBILNÝCH PLATFORIEM Obr. 2.4: Prehl ad podielu mobilných operačných systémov na trhu. Zdroj dát: Gartner.com. Vlastné vypracovanie. 20

26 3 Multiplatformové nástroje Z tabul ky 2.1 vidiet širokú rôznorodost spôsobu vývoja aplikácií pre jednotlivé platformy. Nasledujúci príklad uvažuje vývoj aplikácie len pre 3 z nich Android, ios a Windows Phone. Potrebné sú minimálne dva operačné systémy Windows a OS X. Každá z platforiem navyše vyžaduje pre vývoj iný programovací jazyk, vývojové prostredie a technológie. Taktiež je nutné mat aspoň základné skúsenosti s jednotlivými mobilnými operačnými systémami. Musia sa udržovat 3 odlišné verzie kódu a synchronizovat medzi nimi opravy chýb a budúce vylepšenia. Cenové náklady na podporu sú v tomto prípade tiež vyššie, vzhl adom na to, že dokumentácia musí byt vytvorená a udržiavaná pre každú platformu zvlášt. Na každú z platforiem je možné mat samostatnú skupinu vývojárov. Takéto riešenie však so sebou nesie isté riziká a navyše vzniká potreba koordinácie medzi jednotlivými tímami. Kvôli vyššiemu počtu vývojových tímov sa bude líšit kvalita a nemusí byt zachovaná konzistencia dizajnu medzi jednotlivými aplikáciami. A to hlavne v prípade, ak je vývoj aplikácie pre nejakú z platforiem prenechaný externej spoločnosti. Obr. 3.1: Prehl ad podielu distribúcií systému Android za apríl Zdroj dát: [14]. Vlastné vypracovanie. Ďalším významným problémom je fragmentácia v rámci jednotlivých platforiem. Tento problém sa týka hlavne systému Android. Obrázok

27 3. MULTIPLATFORMOVÉ NÁSTROJE zobrazuje aktuálny podiel jednotlivých verzií tohto systému. Ako je možné vidiet, skoro 40 % užívatel ov stále používa verziu 2.3.x Gingerbread, ktorá bola vydaná na konci roku Riešením sú multiplatformové nástroje, ktoré umožňujú vývojárom vytvárat a zverejňovat aplikácie na rôzne platformy. Ich ciel om je minimalizácia nákladov na jednu platformu a maximalizácia opätovného použitia kódu. Nie sú obmedzené len na podporu mobilných platforiem, ale umožňujú vývoj aj pre desktopové systémy ako Windows, OS X, Linux a herné konzoly (Playstation, Nintendo, Xbox). Multiplatformové nástroje dokážu značne skrátit čas potrebný na zverejnenie aplikácií do obehu a ušetrit značné množstvo finančných prostriedkov pre vývojársku spoločnost. Najväčšou prekážkou v ich väčšom rozšírení je slabý výkon v porovnaní s natívnymi riešeniami a povrchnost v podpore najnovších noviniek na jednotlivých platformách. 3.1 Fázy vývoja multiplatformových aplikácií Multiplatformové nástroje majú pät komponentov, ktoré sú zhodné s piatimi fázami vývoja aplikácií [15]: 1. vývoj, 2. integrácia, 3. zostavenie, 4. publikovanie, 5. správa Vývoj Multiplatformové nástroje ponúkajú na výber vel ké množstvo programovacích jazykov. Môže íst o jednoduché jazyky určené pre začiatočníkov, ako LiveCode alebo Lua (napríklad Corona, DragonRad, Moai a Unity), webové jazyky HTML, CSS a JavaScript (napríklad Appcelerator, Application Craft, Kony, Spot Specific), jazyky strednej úrovne, ako Java a C#/.NET (Xamarin MonoTouch), až po nízkoúrovňové jazyky, ako C++ (Qt, MoSync, Marmalade, Aqua Platform). Niektoré nástroje poskytujú vizuálne drag & drop prostredie (Games Salad, Yo Yo Games Maker, LiveCode, Appcelerator, Spot Specific), iné podporujú vývoj len prostredníctvom dopredu pripravených šablón (Wix Mo- 22

28 3. MULTIPLATFORMOVÉ NÁSTROJE bile, ibuild App). Iné nástroje sú zamerané na špecifický segment; napríklad Lime JS JavaScript a Impact JS sú určené pre herných vývojárov, kým Worklight a RhoMobile sú určené na vývoj podnikových aplikácií. Táto rôznorodost možností vývoja umožňuje použitie týchto nástrojov rôznymi skupinami vývojárov; od webových, cez softvérových vývojárov až po dizajnérov, ktorí nemajú s programovaním takmer žiadne skúsenosti. Hlavnými softvérovými prvkami tejto fázy procesu vývoja sú vývojové prostredie, emulátor a ladiaci nástroj. Vd aka podpore všetkých hlavných operačných systémov sa najpoužívanejším vývojovým prostredím stal Eclipse, ku ktorému ponúkajú vydavatelia d alšie prídavne moduly. Niektoré vývojové prostredia sú tzv. bezinštalačné a sú umiestnené v cloude. Pristupuje sa k nim pomocou webového rozhrania a sú zamerané hlavne na vývoj podnikových aplikácií. Táto fáza vývoja môže taktiež zahŕňat nástroje pre správu zdrojových kódov, správu činností, spoluprácu a tímový vývoj. Nástroje Unity, Appcelerator a RunRey poskytujú internetové obchody, kde môžu vývojári predávat rôzne komponenty aplikácií, ktoré vytvorili a ul ahčit tak ostatným ich vývojový proces. Sencha spustila v novembri 2011 podobný obchod, zatial čo Corona a Marmalade ponúkajú repozitár šablón a komponentov Integrácia V tejto fáze prebieha integrácia s natívnymi funkciami zariadenia, cloudovými rozhraniami a profesionálnymi databázami. Medzi najpopulárnejšie spôsoby integrácie s natívnymi funkciami zariadenia patrí použitie jazyku JavaScript spolu s rozhraním a knižnicami PhoneGap, ktoré sú spolu spojené v hybridnej aplikácií. Nástroje ako Worklight, AppMobi, Feedhenry alebo BKrender majú PhoneGap funkcionalitu priamo zabudovanú. MoSync a Qt používajú podobný prístup, ked sú natívne rozhrania zabalené spolu s kolekciou platformovo nezávislých rozhraní, ktoré môžu vývojári používat nezávisle na tom, pre ktorú platformu je aplikácia určená. K integrácií s natívnymi funkciami zariadenia používajú vývojári kolekcie rozhraní, ktoré sú definované jednotlivými nástrojmi a sú napísane v programovacom jazyku daného nástroja (napríklad JavaScript, Lua, LiveCode alebo C++). Podobné funkcie na rôznych platformách majú často rovnaké rozhranie, čo umožňuje opätovné použitie kódu definujúceho dátovú logiku aplikácie. Toto však neplatí pre kód definujúci užívatel ské rozhranie, alebo kód pristupujúci k niektorým špecifickým hardvérovým funkciám. Aplikácie môžu volat natívne funkcie zariadenia za behu, s volaním 23

29 3. MULTIPLATFORMOVÉ NÁSTROJE prekladaným pri kompilácií alebo posielaným cez most, ktorý poskytuje rozhranie na ciel ovú platformu. Ďalšou dôležitou čast ou tejto fázy je prepojenie s cloudovými rozhraniami, ktoré sa v poslednej dobe tešia vel kej popularite. Poskytujú prístup k sociálnym siet am a sociálnym hrám. Ide o spoločnosti a produkty ako Facebook, LinkedIn, Papaya Mobile, Skiller, Apple Game Center a iné. Taktiež poskytujú prístup k rôznym analytickým nástrojom, ako napríklad App Annie, Distimo, Flurry, Bugsense a Testflight. Nástroje zamerané na vývoj podnikových aplikácií často ponúkajú rozličné služby pre správu databázovej konektivity. RhoMobile má napríklad RhoConnect mobile app integraton server, ktorý poskytuje možnost dátovej synchronizácie posielaním nových dát do zariadení, ked sa zmenia na serveri. Medzi nástroje poskytujúcu podobnú službu patria aj Antenna, Feedhenry a Worklight Zostavenie Ide o hlavnú fázu multiplatformových nástrojov. Pri zostavovaní aplikácií existuje množstvo odlišných prístupov, ktoré sú podrobnejšie popísane v podkapitole 3.2. Medzi dve najpoužívanejšie patria: kompilácia zdrojového kódu priamo do natívnych binárnych súborov danej platformy, zabalenie kódu v natívnej schránke a následná interpretácie počas behu Publikovanie Publikovanie zahrňuje zverejnenie aplikácie na natívnom obchode s aplikáciami (napr. App Store alebo Google Play), prípadne distribúciu v rámci organizácie s možnost ou umiestnit aplikáciu na privátne obchody (napr. Feedhenry, Antenna, RhoMobile alebo Worklight). Mnohé z multiplatformových nástrojov pomáhajú proces zverejnenia spravovat, čo ul ahčuje prácu vývojárom. Niektoré spoločnosti, ako napríklad Appcelerator alebo Corona následne zverejňujú programy aj na svojich webových stránkach Správa Túto funkcionalitu poskytujú hlavne profesionálne multiplatformové nástroje určené pre vývoj podnikových aplikácií, ako napríklad Worklight, 24

30 3. MULTIPLATFORMOVÉ NÁSTROJE RhoMobile, Antenna a Feedhenry. Podporujú funkcie, ako vzdialená inštalácia a odinštalácia aplikácií, správa politík, push správ a správu dátových tokov. Ďalšou pridanou funkciou sú analytické nástroje, ktoré môžu byt poskytnuté externými partnermi. Dokážu zistit akou skupinou užívatel ov je aplikácia využívaná a ako konkrétne ju daný užívatelia používajú. Následne zo získaných dát spracovávajú štatistiky a dokážu tak napríklad identifikovat segment užívatel ov, na ktorý by sa mal vývojár primárne zamerat. 3.2 Technologické prístupy pri tvorbe multiplatformových aplikácií Existuje pät odlišných technologických prístupov pri tvorbe multiplatformových aplikácií [15]: JavaScript rámce, aplikačné továrne, obal ovače webového kódu, behové prostredia, prekladače zdrojového kódu. Každý je určený pre inú skupinu vývojárov a pre použitie u odlišných aplikácií. Tieto technologické prístupy sa vzájomne nevylučujú, naopak, často sa vzájomne dopĺňajú JavaScript rámce Ide o knižnice, ktoré sú určené na zrýchlenie určitých komplexných úloh, ako napríklad správa interakcie s dotykovým rozhraním a vytváranie multiplatformových užívatel ských rozhraní. Primárne sú určené webovým vývojárom k vytvoreniu dotykového užívatel ského rozhrania, dosiahnutiu kompatibility medzi mobilnými prehliadačmi na rôznych platformách, dosiahnutie natívneho vzhl adu užívatel ského rozhrania, prípadne vytvorenie komplexných hier Aplikačné továrne Ide o riešenie určené pre l udí, ktorí majú isté znalosti v oblasti informačných technológií, ale nedokážu vytvorit aplikáciu pomocou nejakého prog- 25

31 3. MULTIPLATFORMOVÉ NÁSTROJE ramovacieho jazyka. Pri vytváraní aplikácie sa namiesto písania zdrojového kódu využíva vizuálny dizajnér. Pozostávajú z vývojového prostredia, ktoré môže byt nainštalované lokálne na počítači, prípadne umiestnené v cloude a ktoré umožňuje s použitím pripravených šablón a štýlu drag & drop vytvárat kód aplikácie. Niektoré prostredia umožňujú vývojárom ručne editovat vygenerovaný kód a tým prispôsobit aplikáciu svojim špecifickým požiadavkám Obal ovače webového kódu Používajú sa pri vytváraní natívnych aplikácií pomocou webových technológií, ako sú HTML5, CSS a JavaScript. Zdrojový kód je zabalený spolu s knižnicami, ktoré ho prepojujú do natívnej funkcionality zariadení. Pri vytváraní aplikácií sa využívajú aj JavaScript API rozšírenia, ktoré umožňujú pristupovat k hardvérovým funkciám zariadenia, ako sú akcelerometer, gyroskop a GPS. Zameriavajú sa na webových vývojárov, ktorý potrebujú konvertovat webové aplikácie na natívne, kvôli distribúcií cez obchody s aplikáciami, prípadne potrebujú pristupovat k natívnym funkciám zariadenia Behové prostredia Behové prostredie je exekučné prostredie a multiplatformová vrstva. Jeho hlavnou funkciou je odtienit aplikácie od rozdielov jednotlivých platforiem, na ktorých sú tieto aplikácie postavené. Jednotlivé behové prostredia sa odlišujú svojou komplexnost ou, vel kost ou a metódami vykonávania kódu na zariadení. Môže íst o virtualizáciu, interpretáciu, just-in-time kompiláciu alebo ahead-of-time kompiláciu. Dnešné multiplatformové nástroje založené na behových prostrediach prenášajú komplexnost zo softvérovej vrstvy zariadení na vývojové nástroje. Často čast multiplatformového prekladu prebieha pri vytváraní (cez preklad do bytekódu) a čast za behu (vykonávaním bytekódu). Sú určené pre vývojárov, ktorí sa chcú zamerat na čo najväčšie množstvo platforiem, prípadne aj na rôzne typy zariadení, ako múdre telefóny, počítače a herné konzoly Prekladače zdrojového kódu Princíp ich fungovania spočíva v preklade zdrojového kódu do medziúrovňového kódu, natívneho jazyka (napríklad C++, Objective-C) alebo do 26

32 3. MULTIPLATFORMOVÉ NÁSTROJE nízkoúrovňového strojového kódu. Často bývajú používané spolu s behovými prostrediami. Sú určené pre skúsených softvérových vývojárov, ktorý potrebujú vytvárat komplexné multiplatformové aplikácie s vysokým výkonom. 3.3 Výber architektúry Dôležitou otázkou pre vývojára pred začatím vytvárania mobilnej aplikácie je rozhodnutie, či pri tvorbe aplikácie použit natívny, webový alebo hybridný prístup. Webové aplikácie ponúkajú široký trh záujemcov za cenu iba webovej distribúcie a relatívne plytkého užívatel ského zážitku. Natívne aplikácie umožňujú ovel a hlbšiu integráciu so zariadením a hlbší užívatel ský zážitok, ale za cenu, ich nemožnosti rozšírenia na trhy pre iné platformy. Multiplatformové nástroje do určitej miery tieto rozdiely odstránili. Nástroje ako Appcelerator umožňujú webovým vývojárom vytvárat natívne aplikácie. Obal ovače webového kódu ako PhoneGap dovol ujú pristupovat k natívnym funkciám zariadenia a pri tom stále bežat vo vnútri prehliadača Natívne aplikácie Obr. 3.2: Architektúra natívnej aplikácie. Zdroj: [16] 27

33 3. MULTIPLATFORMOVÉ NÁSTROJE Natívne aplikácie sú vyvíjané pomocou nástrojov poskytnutých výrobcom operačného systému, prípadne samotného zariadenia. Obrázok 3.2 zobrazuje diagram spôsobu komunikácie natívnej aplikácie s operačným systémom. Ich najväčšou výhodou je plný prístup k natívnemu užívatel skému rozhraniu platformy, čím môžu plne využit jeho bohatost a špecifické znaky. Ďalšou prednost ou je možnost prístupu ku všetkým hardvérovým funkciám dostupným na danom zariadení. Ide napríklad o GPS, akcelerometer, gyroskop, kameru a pod., ktoré sú všetky prístupné cez natívne rozhranie zariadenia, resp. danej platformy. Poslednou výhodou je schopnost natívnych aplikácií fungovat aj bez pripojenia na internet. Dáta je možné uložit do pamäte zariadenia a následne k nim pristupovat. Vývoj natívnych aplikácií ale vyžaduje istú formu manažmentu zodpovedného za zverejňovanie aplikácie. Toto zahrňuje aj pridávanie podpory pre nové zariadenia, ktoré sa objavia na trhu. Je preto nutné vydávat pravidelné aktualizácie, čo obvykle zvyšuje náklady spojené so správou a ich zverejňovaním Webové aplikácie Obr. 3.3: Architektúra webovej aplikácie. Zdroj: [16] Webové aplikácie sú vyvíjané za pomocí technológií, ako HTML5, CSS 28

34 3. MULTIPLATFORMOVÉ NÁSTROJE a JavaScript a sú umiestnené na webových serveroch. Obrázok 3.3 znázorňuje princíp fungovania takejto aplikácie. Prvou výhodou použitia tohto prístupu je možnost využitia už existujúcej webovej aplikácie, ktorá v mnohých prípadoch funguje bez nejakých zmien. V prípade, ak boli aplikácie vhodne napísané a je v nich jasne oddelené užívatel ské rozhranie od dátovej časti, je možné len s minimálnym množstvom úsilia vytvorit nové užívatel ské rozhranie, ktoré bude vhodné pre menšie displeje múdrych telefónov. Navyše schopnosti webového vývoja sú vel mi rozšírené a webovým vývojárom trvá relatívne krátky čas naučit sa vytvárat mobilné aplikácie. Vývoj aplikácií týmto spôsobom je teda vel mi atraktívny. Zverejňovanie webových aplikácií je riadené centrálne, takže odpadá vytváranie stratégií pre ich zverejňovanie na jednotlivých platformách. Taktiež tým, že je aplikácia umiestnená v cloude je aj otázka správy zariadení ovel a jednoduchšia. HTML5 má jeden zásadný nedostatok a tým je rôzna implementácia jeho špecifikácií jednotlivými prehliadačmi. Výsledkom tejto fragmentácie je, že vývojári musia vynaložit vel ké množstvo času a prostriedkov na optimalizáciu svojich aplikácií pre jednotlivé webové prehliadače. Najväčšou nevýhodou webových aplikácií je ale ich nemožnost prístupu ku všetkým funkciám zariadenia. V prípade ak chce vývojár pristupovat k iným funkciám ako GPS, musí použit natívny alebo hybridný prístup. Nutnost prístupu na internet je d alšou vel kou nevýhodou takéhoto typu aplikácií. HTML5 síce umožňuje offline prístup k niektorým webovým zdrojom (napríklad obrázky, multimédia, XML dáta a pod.) ale jeho primárne určenie je konzumácia obsahu, k čomu je aj prispôsobený. HTML5 taktiež neumožňuje vytvorenie tak bohatého užívatel ského rozhrania, na ktoré sú užívatelia natívnych aplikácií zvyknutí. Stále sa objavujú nové možnosti jeho zlepšenia za použitia CSS a jazyka JavaScript, ale natívne rozhrania sa vyvíjajú tiež Hybridné aplikácie Ide o spojenie funkcionality natívneho a webového prístupu a využitia toho najlepšieho čo ponúkajú. Princíp ich fungovania je zobrazený na obrázku 3.4. Hybridné aplikácie pozostávajú z natívnej schránky (wrapper), ktorá obsahuje HTML, CSS a JavaScript kód. Ked je takáto aplikácia na zariadení spustená, wrapper spustí inštanciu webového prehliadača (WebView) a nahrá HTML, CSS a JavaScript. Komponenta WebView je zvyčajne tzv. chromeless, čo znamená, že nemá štandardné ovládacie prvky webového pre- 29

35 3. MULTIPLATFORMOVÉ NÁSTROJE Obr. 3.4: Architektúra hybridnej aplikácie. Zdroj: [16] hliadača, čo umožňuje aby aplikácia vyzerala rovnako ako natívna. Z užívatel ského pohl adu sa hybridné aplikácie úplne rovnaké ako natívne. St ahujú sa z obchodov natívnych platforiem a inštalujú rovnakým spôsobom. Navyše môžu často pracovat bez potreby internetového pripojenia. Z pohl adu vývojára ich vývoj pripomína vytváranie natívnych aplikácií s tým, že je možné použit HTML, CSS a JavaScript kód na napísanie väčšiny častí aplikácie. Hybridný model je navyše podporovaný všetkými hlavnými mobilnými platformami, čo umožňuje opätovné použitie už napísaného kódu. Ak vývojár zvolí hybridný prístup, môže čast funkcií sprístupnit pomocou webových a čast pomocou natívnych technológií, podl a toho ktorý prístup je pre danú čast aplikácie vhodnejší. Hybridné riešenie je vhodné aj v situáciách, ked je potrebné v aplikácií pracovat s dátami, ktoré vyžadujú splnenie istých prísnejších bezpečnostných politík. Tieto je možné sprístupnit iba online cez existujúce webové rozhranie, ktoré má už bezpečnostné politiky implementované a zvyšok dát, kde už bezpečnost nie je taká dôležitá, je možné doručit natívnym spôsobom. Hybridné aplikácie však často trpia zníženým výkonom oproti natívnemu alebo webovému riešeniu. Je to spôsobené nutnost ou neustáleho 30

36 3. MULTIPLATFORMOVÉ NÁSTROJE prechodu medzi natívnymi a webovými komponentmi. Je potrebná JavaScript abstrakcia kvôli zmenšovaniu rozdielov medzi natívnymi rozhraniami. V prípade, že su rýchle reakcie aplikácie kl účové, nie je teda hybridný prístup príliš vhodný. 31

37 4 Prehl ad multiplatformových nástrojov 4.1 PhoneGap PhoneGap 1 bol vyvinutý spoločnost ou Nitobi Software v roku V októbri 2011, po akvizícií Nitobi Software spoločnost ou Adobe Systems, bol projekt darovaný Apache Software Foundation pod názvom Apache Cordova 2. Názov PhoneGap však zostal nad alej zachovaný a v súčasnosti je možné sa na neho pozerat ako na vývojový rámec, založený práve na projekte Apache Cordova. Je k dispozícií zadarmo ako open source pod licenciou Apache verzie Aplikácie sa vytvárajú s použitím technológií HTML, CSS a JavaScript v štandardných vývojových prostrediach, ako napríklad Adobe Dreamweaver alebo Eclipse. Jazyk JavaScript je používaný na volanie natívnych rozhraní jednotlivých platforiem. Pri zostavovaní aplikácie je webový kód zabalený spolu s knižnicami PhoneGap do natívnej spustitel nej schránky. Výsledné aplikácie sú teda hybridné webové. Pre vývoj aplikácií boli zo začiatku potrebné SDK jednotlivých ciel ových platforiem. To sa zmenilo v septembri 2012, kedy bola uvedená služba PhoneGap Build 4. Presúva fázu zostavovania aplikačných balíčkov z lokálneho počítača do cloudu, v ktorom sa následne vykoná kompilácia a vygeneruje sa spustitel ný binárny súbor pre každú z podporovaných platforiem. Odpadá tak nutnost inštalovania dodatočných SDK potrebných pre vývoj. PhoneGap Build však neposkytuje svoj vlastný emulátor, takže ak chce vývojár využit možnost otestovania aplikácie, je nutné príslušný emulátor danej platformy doinštalovat. Projekt je možné na server umiestnit dvoma spôsobmi. Bud zabalit príslušné zdrojové súbory do archívu ZIP a následne nahrat na server, prípadne nasmerovat odkaz na Git alebo SVN repozitár. PhoneGap Build je dostupný v platenej a neplatenej verzii (tabul ka 4.2). Počet open source aplikácií je v oboch verziách neobmedzený, ich zdrojové súbory však musia byt prístupné z verejného Github repozitára. K dispozícií je niekol ko verzii balíčkov podpory, ktorých prehl ad je zobrazený v tabul ke 4.1. Všetky obsahujú online tréning, podporu cez privátne fórum a podporný rozhovor prostredníctvom IRC raz za týždeň. Vyš

38 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV šie verzie ponúkajú doplnkové služby, ako napríklad rýchle opravy chýb, kedy po nahlásení špecifickej chyby dostane zákazník novú verziu SDK ešte pred jej oficiálnym vydaním pre verejnost, či vzdialené ladenie aplikácie, kedy sa programátori zo spoločnosti PhoneGap prostredníctvom funkcie zdiel ania obrazovky pozrú na kód aplikácie a pomôžu vývojárovi s riešením problému. Balíček Basic Starter Pro Corporate Enterprise Ročný poplatok 249,99 USD 999 USD USD USD dohodou Počet vývojárov neobmedzený Počet prípadov podpory Počet konzultačných hodín Garantovaný čas na odpoved Vzdialené ladenie aplikácií Podpora zásuvných modulov bez garancie 48 hodín 24 hodín 8 hodín 4 hodiny Rýchle opravy chýb - - Tabul ka 4.1: Porovnanie balíčkov podpory PhoneGap. Zdroj dát: [18]. Vlastné vypracovanie. Typ plánu Neplatený Platený Mesačný poplatok zadarmo 9,99 USD Počet vývojárov neobmedzený neobmedzený Počet open source aplikácií neobmedzený neobmedzený Počet privátnych aplikácií 1 25 Tabul ka 4.2: Porovnanie verzií PhoneGap Build. Zdroj dát: [19]. Vlastné vypracovanie. 33

39 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV 4.2 Marmalade Marmalade SDK 5 je multiplatformový nástroj vyvinutý spoločnost ou Ideaworks3D. Obsahuje knižnice, návody, dokumentáciu a nástroje potrebné na testovanie a vývoj aplikácií pre mobilné zariadenia. Vývoj je možný na operačných systémoch Windows a OS X a prebieha v jazyku C++ za pomoci multiplatformových rozhraní Marmalade. Podporovaná je väčšina C a C++ štandardných knižníc, vrátane STL. Taktiež je možný priamy prístup k OpenGL ES. Nástroj nemá vlastné IDE, pri vývoji sa používa Microsoft Visual Studio prípadne xcode. Pri kompilácií nie sú vyžadované žiadne d alšie SDK. Ak chce vývojár využit možnost nahratia aplikácie priamo do zariadenia, prípadne využit niektoré pokročilé možnosti vývoja, niektoré platformy vyžadujú dodatočné nástroje a certifikáty. Spoločnost Ideaworks3D sa historicky zameriavala na herných vývojárov, čoho výsledkom je prítomnost nástrojov pre prácu s 3D grafikou a animáciami priamo v SDK. Neskôr bola pridaná podpora aj pre natívne prvky užívatel ských rozhraní jednotlivých platforiem, čím sa rozšírila skupina ciel ových zákazníkov aj o neherných vývojárov. Z prieskumu uskutočneného v roku 2012 medzi užívatel mi Marmalade však vyplynulo, že stále 81 % z nich ho využíva na tvorbu hier. SDK poskytuje podporu vytvárania hybridných aplikácií za použitia HTML5, CSS a JavaScript pod názvom Web Marmalade, ktorá plne implementuje špecifikácie Adobe PhoneGap. Podpora zahŕňa systémy ios a Android a do budúcnosti sa plánuje s jej rozšírením. Súčast ou uvedeného nástroja je aj emulátor implementujúci prehliadač Chrome a v ňom obsiahnuté doplnky, ako napríklad ladiace nástroje pre JavaScript a Chrome Web Inspector. Od verzie SDK 6.1 je možné oba vyššie uvedené spôsoby vývoja kombinovat do podoby hybridnej aplikácie. Vývojárom je tak umožnené použit webové technológie na tvorbu užívatel ského rozhrania a jazyk C++ na vytvorenie dátovej logiky aplikácie a pokročilej funkcionality, ako napríklad 3D grafiky. Pri tvorbe užívatel ského rozhrania si môže vývojár vybrat medzi natívnym užívatel ským rozhraním jednotlivých platforiem a užívatel ským rozhraním Marmalade pomenovaným Skinned UI, ktoré poskytuje vlastný ale konzistentný vzhl ad naprieč všetkými platformami. Vývojárom je k dispozícií Apps Program 6, ktorý poskytuje mechaniz

40 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV Verzia Community Indie Plus Professional Ročný poplatok za osobu Podporované platformy pre vývoj Podpora cez verejné fórum Podpora cez Helpdesk Reklama na Marmalade v rámci aplikácie Prístup k beta funkciám Ostatné obmedzenia 149 USD 499 USD USD dohodou ios, Android ios, Android, BlackBerry, Windows Phone 8 ios, Android, BlackBerry, Windows Phone 8, OS X, Windows OS ios, Android, BlackBerry, Windows Phone 8, OS X, Windows OS lístky udalostí s garantovanou odpoved ou do 72 hodín Neobmedzený počet lístkov udalostí s garantovanou odpoved ou do 24 hodín ročný limit tržieb do USD, maximálne 3 osoby v organizácií ročný limit tržieb do USD limitovaný prístup plný prístup - - Tabul ka 4.3: Porovnanie verzií Marmalade SDK. Zdroj dát: [17]. Vlastné vypracovanie. mus na distribúciu aplikácií do rôznych obchodov s aplikáciami. Proces prebieha tak, že odovzdaná aplikácia najskôr prejde hodnotiacim procesom. Ak spĺňa kritéria a nebola vytvorená s použitím Marmalade, musí byt do tohto SDK prevedená. Podl a jej kvality, môžu byt náklady na prevod preplatené, prípadne celý proces zabezpečí Ideaworks3D sama. Spoločnost sa následne postará aj o samotnú distribúciu aplikácie. Členstvo v tomto programe je bezplatné. Užívatel dostane 80 % zo zisku, ktorý aplikácia vy- 35

41 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV tvorí a navyše po zverejnení prvej aplikácie dostane zadarmo licenciu na Marmalade SDK spolu s rozšírenou podporou. Ďalšou ponúkanou službou je Code Community 7 založená na technológií GitHub, kde môžu vývojári zdiel at svoj vytvorený kód. V blízkej budúcnosti sa pripravuje vernostný program, v ktorom budú užívatelia za aktivity, ako napríklad pridávanie kódu do Code Community dostávat body, ktoré budú môct byt použité na vrátenie určitého podielu z čiastky licencie, ktorú zaplatili. Pod názvom Marmalade Juice 8 bola v marci 2013 pridaná technológia umožňujúca použit zdrojový kód aplikácie napísanej v jazyku Objective-C a previezt ju na platformy Android a BlackBerry 10. Zoznam platforiem by sa mal v budúcnosti d alej rozširovat. Technológia podporuje všetky rozhrania ios bežne používané pri tvorbe hier. Ako je vidiet z tabul ky 4.3, Marmalade je dostupný v štyroch rôznych verziách. Navzájom sa okrem ceny líšia počtom podporovaných platforiem a rozdielnou úrovňou podpory. Najnižšia verzia Community, podporuje napríklad vývoj len pre platformy ios a Android. 4.3 Appcelerator Titanium Appcelerator Titanium 9 bol vyvinutý v roku 2008 spoločnost ou Appcelerator Inc. Vývoj je možný na operačných systémoch Windows, Linux a OS X. Hlavné jazyky v ktorých prebieha sú HTML, CSS a JavaScript, pričom podpora zahŕňa aj PHP, Ruby a Python. Titanium prepojí JavaScript kód s natívnymi knižnicami a vykoná kompiláciu do bytekódu. Následne kompilátor danej platformy vytvorí inštalovatel ný balíček. Pre vývoj aplikácií pre systém ios je nutný počítač Macintosh s operačným systémom OS X spolu s ios SDK. Vývoj pre Android a BlackBerry vyžaduje Android SDK, resp. BlackBerry SDK a môže byt vykonávaný na operačných systémoch Windows, Linux a OS X. Výsledné aplikácie obsahujú natívny kód spolu s interpreterom jazyka JavaScript a vykresl ovacím enginom Webkit. Appcelerator ponúka možnost výberu výstupného formátu, medzi plne natívnou, hybridnou a webovou aplikáciou. Nástroj bol zo začiatku poskytovaný zadarmo spolu s volitel nými platenými balíčkami prémiových služieb. V marci 2013 bolo oznámené výrazné

42 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV rozdelenie ponúkaných služieb na bezplatnú čast pod názvom Titanium a platenú pod názvom Appcelerator Platform. Nástroje obsiahnuté v Titanium sú k dispozícií pod licenciou Apache verzie 2.0. Okrem Titanium SDK ide o: Titanium Studio rozšírená verzia Aptana Studio 10, čo je profesionálne opensource vývojové prostredie používané pre webový vývoj. Titanium Alloy vývojový rámec založený na modely MVC (Model view controller). Dovol uje oddelit užívatel ské rozhranie, logiku aplikácie a dátový model. Použitím takéhoto štruktúrovaného prístupu sa značne zvyšuje čitatel nost, udržovatel nost a znovupoužitel nost kódu a tým je dosiahnuté urýchlenie vývoja. Titanium Cloud Services ide o MBaSS 11. Umožňuje si vybrat z 20 vopred pripravených služieb, ako sú push notifikácie, albumy fotografií, či aktualizácie statusov na sociálnych siet ach. Zároveň poskytuje možnost vytvorenia vlastných cloudových služieb. Klientske rozhranie je dostupné pre všetky podporované platformy (ios, Android). Jeho použitie tak nie je viazané iba na Titanium. Appcelerator Platform 12 poskytuje riešenia pre celý životný cyklus aplikácie, vrátane komerčnej podpory a technického tréningu. Vzhl adom na to, že ide o platformu založenú na Titanium, obsahuje všetky jej súčasti a niektoré z nich d alej rozširuje. Súčast ou tejto platformy sú nasledovné nástroje: Appcelerator Studio IDE založené na Titanium Studio. Pridáva k nemu niektoré pokročilé funkcie, ako profiler 13 a analyzátor kódu. Integruje aj Appcelerator Test. Appcelerator Test poskytuje možnost integrovaného testovania aplikácií. Umožňuje nahrat komplexné dotykové gestá a následne ich opätovne automaticky opakovat MBaSS (Mobile backend as a service) model poskytujúci vývojárom možnost prepojenia aplikácií s cloudovým úložiskom Profiler nástroj, ktorý za behu programu vyhl adáva miesta vhodné na optimalizáciu. Sledovanie zahrňuje využitie pamäte, systémové volania, dobu vykonávania rôznych častí programu a iné. 37

43 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV Verzia Mesačný poplatok za osobu Predpripravené cloudové služby Titanium Appcelerator Platform (Verejný cloud) Appcelerator Platform (Virtuálny privátny cloud) zadarmo 999 USD USD 5 miliónov push notifikácií, 5 miliónov volaní API, 20 GB úložného priestoru, ov za mesiac Podpora komunitné fórum Garantovaná dostupnost služby Zabezpečenie Multiregionálna podpora Dedikovaná infraštruktúra 10 miliónov push notifikácií, 10 miliónov volaní API, 100 GB úložného priestoru, ov za mesiac štandardná (8 5) / prémiová (24 7) škálovatel né podl a požiadaviek štandardná (8 5) / prémiová (24 7) najlepšia snaha 99,0 % 99,9 % a 99,95 % klientske SSL klientske SSL, serverové SSL klientske SSL, serverové SSL, šifrovanie súborov a databáz, VPN Tabul ka 4.4: Porovnanie verzií Appcelerator Titanium. Zdroj dát: [22]. Vlastné vypracovanie. Appcelerator Analytics sprístupňuje rôzne štatistiky používania aplikácie jednotlivými užívatel mi, ako napríklad ktoré jej časti sú využívane najčastejšie. Toto môže byt následne využité na jej budúce zlepšenie. Appcelerator Performance Management poskytuje real-time informácie o problémoch v aplikácií. Umožňuje zobrazit detailné dáta o jej prípadnom páde, vrátane presného riadku kódu, ktorý pád spôsobil, hardvérovú konfiguráciu zariadenia, či postupnost krokov vykonaných užívatel om, ktoré k pádu aplikácie viedli. Appcelerator Cloud Services oproti základnej verzii nachádzajú- 38

44 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV cej sa v Titanium, táto poskytuje navyše možnost integrácie s podnikovými dátami, ako napríklad SAP, Oracle či Salesforce. Vývojárom je v oboch verziách k dispozícií Open Mobile Marketplace 14, kde je možné zakúpit a stiahnut doplnky a moduly, ktoré je možné zakomponovat priamo do aplikácií. Ide o sady ikon, komponenty užívatel ského rozhrania a rôzne reklamné, komunikačné, šifrovacie a platobné moduly. Okrem vyššie uvedených rozdielov, je Appcelerator Platform rozdelený na verejný a privátny cloud s rozdielnymi poskytovanými službami. Ich prehl ad je uvedený v tabul ke MoSync MoSync 15 bol vyvinutý švédskou softvérovou spoločnost ou MoSync AB. Prvá verzia bola uvol nená v roku 2005 a jej podpora zahŕňala iba Java ME. Postupne bola pridávaná podpora pre d alšie rozličné platformy. Vývoj prebieha pomocou jazykov C a C++. Súčast ou MoSync SDK je aj IDE založené na Eclipse, pričom v budúcnosti je plánovaná podpora aj pre Microsoft Visual Studio. Vývojári môžu pristupovat k natívnym rozhraniam cez abstraktné knižnice. MoSync používa upravený gcc kompilátor, ktorý vytvára MoSync Intermediate Language [20]. Ten je následne poslaný do tzv. pipe-tool spolu s príslušnými knižnicami. Pipe-tool spojí MoSync Intermediate Language spolu s knižnicami do viacerých formátov, ako napríklad MoSync bytekód, Java bytekód alebo C/C++ zdrojový kód. Počas tohto procesu je vykonávaná aj verifikácia a optimalizácia kódu a eliminácia tzv. mŕtveho kódu. Výsledný kód je následne zabalený s príslušným behovým prostredím a výsledkom je inštalovatel ný balíček pripravený na použitie. IDE, ktoré je súčast ou SDK má v sebe priamo zakomponovaný predvolený emulátor MoRE, schopný emulovat väčšinu zariadení, pre ktoré nástroj vývoj podporuje. Obsiahnutá je taktiež podpora emulácie multidotykových gest. Taktiež ale existuje možnost použit natívne emulátory troch hlavných podporovaných platforiem Android, ios a Windows Phone. MoSync poskytuje možnost priamej tvorby balíčkov pripravených na inštaláciu pre platformy Android, Jave ME, Symbian a Windows Mobile. Na vytvorenie balíčkov pre platformy Windows Phone a ios je nutná inštalácia Windows Phone SDK resp. ios SDK

45 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV Do SDK bol nedávno pridaný nástroj menom MoSync Reload 16, ktorého prostredníctvom je možné, pomocou webových technológií, vyvíjat mobilné aplikácie pre platformy ios, Android a Windows Phone. Tento nástroj, na rozdiel od klasického MoSync podporuje aj vývoj v systéme Linux. Oba prístupy k vývoju je možné skombinovat a vytvorit tak hybridnú aplikáciu. Verzia Free Basic Pro Gold Pro Platinum Ročný poplatok za osobu Podpora cez verejné fórum ová podpora Telefonická podpora Garantovaný čas na odpoved Osobný kontakt na podporu Podpora na mieste Rýchle opravy chýb Testovanie aplikácie na fyzických zariadeniach zadarmo 199 EUR EUR dohodou - maximálne 5-krát za rok - - maximálne 5-krát za rok maximálne 4 hodiny za rok hodín nepretržite nepretržite prioritné požiadavky Tabul ka 4.5: Porovnanie komerčných licencií MoSync. Zdroj dát: [21]. Vlastné vypracovanie. Pre osobné použitie je MoSync k dispozícií zadarmo. Ak chce vývojár vytvorené aplikácie predávat, prípadne distribuovat vo vnútri svojej organizácie, má 2 možnosti. Bud zverejní kód ako open source pod licenciou GPL2, alebo si môže zakúpit komerčnú licenciu, ktorá je k dispozícií v štyroch verziách, ktoré sa líšia cenou a rozsahom poskytovanej podpory. Ich prehl ad je uvedený v tabul ke 4.5. Najvyššia verzia licencie poskytuje niektoré nadštandardné služby ako napríklad zrušenie povinnosti priradit ku licencii konkrétne meno vývojára či testovanie aplikácií na vel kom množ

46 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV stve fyzických zariadení dedikovaným tímom testerov. V prípade záujmu poskytuje MoSync AB jednodňový tréningový program v cene 800 EUR za osobu, pričom sú poskytované skupinové zl avy. 4.5 Porovnanie a hodnotenie Hlavným ciel om multiplatformových nástrojov je minimalizovat náklady pri tvorbe aplikácie na viacero platforiem. Problémom je skutočnost, že tieto nástroje sa vel mi t ažko porovnávajú. Rýchlost vývoja aplikácie alebo doba potrebná na zaučenie vývojárov sú veličiny, ktoré je t ažké odhadnút bez toho, aby si vývojári najskôr skúsili nejakú aplikáciu na danom nástroji vytvorit. To má za následok, že trh s multiplatformovými nástrojmi je vel mi volatilný a vývojári často prechádzajú od jedného k nástroja k druhému. Z prieskumov navyše vyplýva [23], že väčšina vývojárov používa pri tvorbe aplikácií priemerne dva multiplatformové nástroje, čo signalizuje, že na trhu neexistuje komplexný nástroj so všetkými požadovanými funkciami. Najdôležitejším kritériom pri výbere je podpora vývoja pre jednotlivé platformy. Z tabul ky 4.7 vidiet, že najlepšie je na tom v tomto ohl ade PhoneGap. Treba však dodat, že u jednotlivých platforiem nie je vždy implementovaná plná funkcionalita. Väčšina z nástrojov podporuje platformy Android a ios ako prvé a sústredí na ne väčšinu svojho úsilia. Problém nastáva hlavne s Windows Phone, čo sa ukázalo pri vytváraní ukážkovej aplikácie (viac v kapitole 5). Spoločnosti začali s nástupom Windows Phone 7 podporu pre tento systém pridávat, ale skôr než boli implementované všetky požadované funkcie, bola vydaná nová verzia systému (Windows Phone 8) s radikálne odlišnou architektúrou. Spoločnosti sú preto teraz vel mi opatrné a čakajú na zvýšenie podielu Windows Phone na trhu predtým, než začnú podporu pre túto platformu do nástrojov pridávat. Dôležitým hl adiskom je aj náročnost vývoja s čím je spojený čas potrebný na zvládnutie jednotlivých nástrojov vývojármi a využitie už existujúcich schopností ktorými disponujú. V tomto smere sú na tom lepšie nástroje, ako PhoneGap, Titanium, Web Marmalade a MoSync Reload, v ktorých vývoj prebieha pomocou webových technológií. Tieto schopnosti sú totiž značne rozšírené a ich zvládnutie je oproti jazykom, ako napríklad C/C++ jednoduchšie. Odráža sa to aj na súčasnom trhu s multiplatformovými nástrojmi, kde sa v poslednom období výrazne presadzuje technológia HTML5 [23]. To má za následok, že aj do nástrojov, ktoré sa zameriavali na inú ciel ovú skupinu (napr. MoSync) boli v poslednej dobe pridané roz- 41

47 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV šírenia umožňujúce vývoj práve pomocou webových technológií. Kvalita dokumentácie je u všetkých skúmaných nástrojov na vysokej úrovni. U PhoneGap, Titanium a MoSync je dostupná aj pre každú zo starších verzii. Ku všetkým nástrojom sú zároveň dostupné ukážkové aplikácie. V tomto smere treba vyzdvihnút hlavne MoSync, v ktorom sú ich spolu s inštaláciou obsiahnuté desiatky a pokrývajú všetky aspekty vývoja a dostupné technológie. Jediným problémom je prehl ad implementovaných funkcií jednotlivých platforiem. Jediný zo skúmaných nástrojov MoSync poskytuje prehl adnú tabul ku zobrazujúcu takéto porovnanie, u ostatných je takáto informácia dostupná až pri prezeraní dokumentácie jednotlivých funkcií. Dôležitou súčast ou pri vývoji aplikácií sa v poslednej dobe stávajú rozličné doplnkové služby. Ide napríklad o analytické služby, sledovače výkonu a v poslednej dobe prudko rozširujúci sa segment cloudových služieb. Je možné ich implementovat aj pomocou externých nástrojov, ale výrobcovia si uvedomili ich dôležitost a začínajú ich do svojich nástrojov pridávat. Najlepšie je na tom v tomto smere platená verzia Appcelerator Platform, ktorá poskytuje všetky typy služieb, ktoré sú dostupné na súčasnom trhu. Tabul ka 4.6 zobrazuje prehl ad jednotlivých porovnávaných multiplatformových nástrojov z hl adiska typu nástroja, jazykov ktoré je možné pri vývoji používat a typu výslednej aplikácie. Produkt Typ nástroja Jazyk Typ aplikácie PhoneGap Titanium Marmalade MoSync obal ovač webového kódu behové prostredie + IDE prekladač zdrojového kódu behové prostredie + IDE HTML, CSS, JavaScript HTML, CSS, JavaScript C++, HTML, CSS, JavaScript C/C++, HTML5, CSS, JavaScript hybridné webové aplikácie natívne, hybridné, webové natívne, hybridné, webové natívne, hybridné, webové Tabul ka 4.6: Porovnanie multiplatformových nástrojov. Vlastné vypracovanie. 42

48 4. PREHL AD MULTIPLATFORMOVÝCH NÁSTROJOV Android ios WP 7 WP 8 BB 7 BB 10 Bada Symbian PhoneGap Titanium - - beta Marmalade - - beta Web Marmalade - - beta MoSync MoSync Reload Tabul ka 4.7: Podpora vývoja na jednotlivé mobilné operačné systémy v multiplatformových nástrojoch. Vlastné vypracovanie. 43

49 5 Ukážková aplikácia Ďalším ciel om tejto práce je vytvorenie jednoduchej ukážkovej aplikácie pracujúcej s GPS a pripojením k sieti, ktorá demonštruje možnosti zvoleného vývojového rámca. Výstupom je jednoduchý tracker, čiže aplikácia, ktorá prostredníctvom GPS v určitých časových intervaloch zist uje aktuálnu polohu užívatel a a následne vypočíta celkovú prejdenú vzdialenost a čas. Následne sa táto trasa uloží do pamäte zariadenia, takže je možné jej opätovné vyvolanie. Aplikácia bola vytvorená pomocou nástroja MoSync. Zo skúmaných nástrojov totiž poskytuje najbohatšie možnosti pri vývoji a zároveň má najkvalitnejšiu dokumentáciu s množstvom vzorových aplikácií. Z dôvodu rastúcej popularity webových technológií pri vývoji multiplatformových aplikácií boli na vývoj použité jazyky HTML a JavaScript. Funkcionalita aplikácie je rozdelená na dve časti. Prvou je overenie siet ového pripojenia a pravidelné zist ovanie aktuálnej polohy užívatel a a jej dynamické zobrazovanie na mape. Táto čast je implementovaná pre všetky tri podporované platformy Android, ios a Windows Phone 7. Druhou čast ou je ukladanie týchto informácií a následné vypočítanie celkovej prejdenej vzdialenosti a času. Táto súčast je dostupná len pre platformy Android a ios. Dôvody vedúce k tomuto riešeniu sú uvedené v časti Užívatel ské rozhranie Pri tvorbe užívatel ského rozhrania poskytuje MoSync na výber z niekol - kých možností: Vanilla HTML/HTML5 využíva HTML kód spolu s CSS. Taktiež je ale možné do aplikácie zakomponovat externé JavaScript užívatel ské rozhrania, ako napríklad JQuery mobile 1 a Sencha Touch 2. JavaScript rozhranie Wormhole NativeUI dostupné pre Android, ios a Windows Phone. Dovol uje vytvorit natívne užívatel ské rozhranie za pomoci HTML, prípadne JavaScript kódu. Zároveň je možné obe možnosti kombinovat. Rozhranie Widget C vytvára natívne užívatel ské rozhranie v jazyku C pre platformy Android, ios a Windows Phone

50 5. UKÁŽKOVÁ APLIKÁCIA Knižnica NativeUI C++ vysokoúrovňový C++ obal ovač rozhrania Widget C. MAUI poskytuje vlastný konzistentný vzhl ad naprieč všetkými platformami, pre ktoré MoSync vývoj podporuje. Vytvorené užívatel ské rozhranie aplikácie je implementované pomocou rozhrania Wormhole NativeUI. Väčšina je vytvorená použitím deklaratívneho prístupu (HTML), okrem zoznamu uložených trás, ktorý sa vytvára dynamicky za behu aplikácie prostredníctvom JavaScript kódu. Kód užívatel ského rozhrania sa nachádza v súbore index.html. 5.2 Pripojenie k sieti Aplikácia po štarte zistí typ aktívneho siet ového pripojenia a túto informáciu vypíše na obrazovku zariadenia. Implementácia je vykonaná s použitím knižnice Wormhole a objektu connection, ktorý poskytuje prístup k informáciám o mobilnom a Wi-Fi pripojení na danom zariadení. Objekt je prístupný cez rozhranie navigator.network. Má jednu vlastnost connection.type, ktorá zistí typ aktívneho siet ového pripojenia, ktoré je práve používané. Podpora zahŕňa všetky mobilné operačné systémy na trhu. U ios a Windows Phone však nie je možné rozlíšit medzi typmi mobilnej siete (2G, 3G, 4G) a connection.type je nastavený na Connection.CELL_2G (pre ios), resp. Connection.CELL (pre Windows Phone). Príslušná overovacia funkcia sa nachádza v súbore infoscripts.js. function checknetworkconnection() { var network = document.getnativeelementbyid("networkdynamiclabel"); var networkstate = navigator.network.connection.type; var states = {}; states[connection.unknown] = Unknown connection ; states[connection.ethernet] = Ethernet connection ; states[connection.wifi] = WiFi connection ; states[connection.cell_2g] = Cell 2G connection ; states[connection.cell_3g] = Cell 3G connection ; states[connection.cell_4g] = Cell 4G connection ; states[connection.cell] = Cell generic connection ; 45

51 5. UKÁŽKOVÁ APLIKÁCIA states[connection.none] = No network connection ; network.setproperty("text", states[networkstate]); if(navigator.network.connection.type == Connection.NONE) { alert("no NETWORK CONNECTION"); } } } 5.3 Ukladanie dát Pri výbere spôsobu ukladania dát je k dispozícií niekol ko možností. Vzhl adom na to, že knižnica Wormhole implementuje časti PhoneGap špecifikácie, je priamo prístupná databáza Web SQL 3 a úložisko Web Storage 4. Mo- Sync poskytuje aj vlastné rozhranie pre prístup k databázy SQLite za pomoci jazyka C. Ani jedna z týchto možností však v súčasnosti nepodporuje systém Windows Phone. K dispozícií je aj prístup k súborovému systému, či už prostredníctvom Wormhole knižnice alebo jazykov C/C++. Pre tento typ aplikácie však takéto riešenie nie je príliš vhodné a navyše podpora systému Windows Phone je do značnej miery oklieštená. Z dôvodu zmienených problémov nebola pre platformu Windows Phone táto funkcionalita do aplikácie zahrnutá. Zároveň je tu jasne viditel ný jeden z nedostatkov multiplatformových nástrojov, ktorým je neúplná implementácia funkcií podporovaných platforiem. Ukladanie dát je riešené pomocou úložiska Web Storage, ktoré umožňuje uložit dáta ako dvojicu (kl úč, hodnota), pričom musí íst o textové ret azce. Cez knižnicu Wormhole je k dispozícií objekt localstorage, ktorý toto úložisko sprístupňuje. Pri každom zistení polohy sú nové dáta pridané do pol a gpsdata a po ukončení sledovania trasy sú následne uložené do úložiska pomocou metódy setitem. Vzhl adom na to, že je možné ukladat len textové ret azce, sú dáta prevedené do ret azca JSON prostredníctvom funkcie JSON.stringify(data). Pre ich následné sprístupnenie je využitá metóda getitem, pričom pred ich použitím je potrebný prevod naspät na JavaScript objekt pomocou funkcie JSON.parse(data). Uložené dáta je možné odstránit prostredníctvom metódy clear

52 5. UKÁŽKOVÁ APLIKÁCIA 5.4 Geolokácia Na zistenie aktuálnej polohy užívatel a je k dispozícií objekt geolocation. Rozhranie je založené na špecifikácií W3C Geolocation. Pri zariadeniach, ktoré túto špecifikáciu implementujú je využívaná práve táto vstavaná podpora. U ostatných je použitá implementácia MoSync. Prístupná je metóda getcurrentposition, ktorá jednorázovo vráti aktuálnu polohu užívatel a a watchposition, ktorá vracia polohu v pravidelných intervaloch, až kým nie je zavolaná metóda clearwatch. Vo vytvorenej aplikácií je zist ovanie polohy implementované pomocou metódy watchposition. watchid = navigator.geolocation.watchposition( onlocationsuccess, onlocationerror, geolocationoptions); onlocationsuccess je spätné volanie (callback) volané s aktuálnou pozíciou, onlocationerror je zavolané v prípade výskytu chyby a geolocationoptions predstavuje možnosti umožňujúce prispôsobit získavanie polohy. Jednou z nich je aj nastavenie frekvencie ako často bude poloha posielaná. Tu nastáva problém, pretože implementácie pre platformy Android a ios obsahujú chybu spôsobujúcu, že tieto systémy túto hodnotu ignorujú a získavajú polohu každú sekundu, čo by pri vývoji profesionálnej aplikácie predstavovalo značný problém. Súčast ou zdrojového kódu je aj funkcia na výpočet vzdialenosti dvoch bodov zadaných svojimi zemepisnými súradnicami [24]. function distancebetweentwopoints(lat1, lon1, lat2, lon2) { var R = 6371; var dlat = (lat2-lat1) * (Math.PI / 180); var dlon = (lon2-lon1) * (Math.PI / 180); var lat1 = lat1 * (Math.PI / 180); var lat2 = lat2 * (Math.PI / 180); var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); var d = R * c; } return d; 47

53 5. UKÁŽKOVÁ APLIKÁCIA 5.5 Mapy Knižnica Wormhole zatial neposkytuje natívnu komponentu pre zobrazenie mapy v aplikácií. Koncom roku 2012 bola sprístupnená prostredníctvom rozhrania Widget C, súčasná podpora však zahrňuje iba systémy Windows Phone 7 a ios. V nástroji sa nachádza aj knižnica MAP dostupná pre všetky platformy. Je kompatibilná s užívatel ským rozhraním MAUI, ktoré však nie je možné kombinovat s NativeUI na jednej obrazovke. Kým bude do rozhrania Widget C pridaná podpora aj pre systém Android, MoSync odporúča vytvorit v aplikácií komponentu WebView používanú na vykresl ovanie webových stránok a následne nahrat mapu od l ubovol ného poskytovatel a (napr. Google, Bing) s použitím ich JavaScript rozhraní. Do aplikácie je zakomponovaná mapová služba Google Maps s použitím Google Maps JavaScript API v3 5. Zdrojový kód sa nachádza v súbore mapscripts.js a obsahuje tri funkcie. mapinitialization(rawdata) je zavolaná po získaní prvej polohy zariadenia a má za ciel vytvorit novú mapu so stredom na zadanej pozícií. Následne vytvorí tzv. terč, nastaví jeho polohu na danú pozíciu a umiestni do vytvorenej mapy. Od tohto momentu je pri získaní nových informácií o polohe volaná funkcia mapupdate(rawdata), ktorá posunie stred mapy a terč vytvorený vo funkcii mapinitialization(rawdata) na novú pozícu. Funkcia drawpathmap(rawdata) je volaná pri vyvolaní informácií o uloženej trase. Jej úlohou je vykreslenie prejdenej trasy na mapu. Medzi komponentmi WebView je možná komunikácia len prostredníctvom textových ret azcov. Ako vhodné riešenie sa teda javí použitie ret azcov JSON. Problém však nastáva u platformy Windows Phone, kde implementácia WebView nepodporuje ich spracovanie. V časti aplikácie, ktorá je implementovaná aj pre tento systém je to vyriešené spojením zemepisnej šírky a dĺžky do nového ret azca, pričom jednotlivé hodnoty sú oddelené špeciálnym znakom. Na zaistenie komunikácie medzi rôznymi komponentmi WebView slúži funkcia mosync.nativeui.calljs, prístupná cez knižnicu Wormhole, ktorá dovol uje vyhodnotit kód JavaScript vo zvolenej komponente WebView. mosync.nativeui.calljs( mosync.nativeui.getnativehandlebyid("screenermap"), "mapinitialization( " + data + " )");

54 6 Záver Táto práca mala za ciel porovnat možnosti vývoja aplikácií na jednotlivé mobilné platformy a preskúmat alternatívu použitia multiplatformových nástrojov pri ich vytváraní. Je v nej obsiahnutý popis troch najpoužívanejších mobilných operačných systémov na trhu Android, ios a Windows, spolu s ich architektúrou a spôsobom vytvárania aplikácií na tieto platformy. Ďalej bola načrtnutá potreba pre použitie multiplatformových nástrojov a predstavené jednotlivé časti z ktorých sa takéto nástroje skladajú, rôzne technologické prístupy, ktoré je možné pri tvorbe využit a možnosti a odporúčania pri výbere architektúry. Následne bol poskytnutý podrobný popis štyroch vybraných multiplatformových nástrojov a ich vzájomné porovnanie. V praktickej časti bola za pomoci nástroja MoSync implementovaná jednoduchá ukážková aplikácia, ktorá demonštruje možnosti tohto vývojového rámca. Pri jej vyváraní bolo narazené na niekol ko problémov, ktoré do značnej miery komplikovali vývoj. Väčšina z nich vychádza z podstaty multiplatformových nástrojov a poukazuje na nedostatky, ktoré sú v nich obsiahnuté. Ich nasadenie je tak možné odporučit pri vývoji jednoduchých nenáročných aplikácií, ale pre profesionálne použitie zatial nie sú vhodné. 49

55 Literatúra [1] ZIEGLER, Chris. Android: A visual history. The Verge [online]. December 7, 2011 [cit ]. Dostupné z: theverge.com/2011/12/7/ /android-history. [2] App Framework. Android Developers [online] [cit ]. Dostupné z: versions/index.html. [3] Get the Android SDK. Android Developers [online] [cit ]. Dostupné z: html. [4] Get Started with Publishing. Android Developers [online] [cit ]. Dostupné z: distribute/googleplay/publish/register.html. [5] BOHN, Dieter. IOS: A visual history. The Verge [online]. December 13, 2011 [cit ]. Dostupné z: /12/13/ /ios-history-iphone-ipad. [6] The Dark Depths of ios. Subsequently & Furthermore [online] [cit ]. Dostupné z: blog/2011/01/10/the-dark-depths-of-ios/. [7] IOS Technology Overview [online]. Apple, [cit ]. Dostupné z: library/ios/documentation/miscellaneous/conceptual/ iphoneostechoverview/iphoneostechoverview.pdf. [8] MCWHERTER, Jeff a Scott GOWELL. Professional Mobile Application Development. Indianapolis: Wiley, ISBN [9] Choosing an ios Developer Program. Apple Developer [online]. c 2013 [cit ]. Dostupné z: com/programs/start/ios/. [10] WHITECHAPEL, Andrew a Sean MCKENNA. Windows Phone 8 Development Internals. Microsoft Press, ISBN [11] Overview of bada. Bada Developers [online]. c 2011 [cit ]. Dostupné z: 50

56 6. ZÁVER jsp?topic=/com.osp.documentation.help/html/bada_ overview/bada_overview.htm. [12] Platform Choice. BlackBerry Developer [online]. c 2013 [cit ]. Dostupné z: develop/platform_choice/index.html. [13] RISCHPATER, Ray a Daniel ZUCKER. Beginning Nokia Apps Development: Qt and HTML5 for Symbian and MeeGo. New York: Apress, ISBN [14] Dashboards: Platform Versions. Android Developers [online] [cit ]. Dostupné z: about/dashboards/index.html. [15] Cross-platform developer tools 2012: Bridging the worlds of mobile apps and the web [online]. VisionMobile, c 2012 [cit ]. Dostupné z: cross-platform-developer-tools-2012/. [16] OLSON, Scott, John HUNTER, Ben HORGEN a Kenny GOERS. Professional Cross-Platform Mobile Development in C#. Indianapolis: Wiley, ISBN [17] Purchase Marmalade SDK. Marmalade: Mobile Applications Development, iphone & Android App Development [online]. c 2013 [cit ]. Dostupné z: [18] PhoneGap Support. PhoneGap [online]. c 2013 [cit ]. Dostupné z: [19] Choose your plan. Adobe PhoneGap Build [online]. c 2012 [cit ]. Dostupné z: [20] The MoSync Toolchain. MoSync: Create native mobile apps for multiple platforms [online]. c [cit ]. Dostupné z: toolchain. [21] Licensing and Subscriptions. MoSync: Create native mobile apps for multiple platforms [online]. c [cit ]. Dostupné z: 51

57 6. ZÁVER [22] Plans & Pricing. Appcelerator Inc.: The Mobile First Platform [online]. c [cit ]. Dostupné z: appcelerator.com/plans-pricing/. [23] Developer Economics 2013: The tools report [online]. VisionMobile, c 2013 [cit ]. Dostupné z: developer-economics-2013-the-tools-report/. [24] VENESS, Chris. Calculate distance, bearing and more between Latitude/Longitude points. Movable Type: Information Design & Management [online]. c [cit ]. Dostupné z: http: // 52

58 A Snímky obrazovky Obr. A.1: Snímka obrazovky so zobrazením aktuálnej polohy na platforme Windows Phone. 53

59 A. SNÍMKY OBRAZOVKY Obr. A.2: Snímka obrazovky so zobrazením aktuálnej polohy na platforme Android. 54

Obsah. SOA REST REST princípy REST výhody prest. Otázky

Obsah. SOA REST REST princípy REST výhody prest. Otázky REST Peter Rybár Obsah SOA REST REST princípy REST výhody prest Otázky SOA implementácie WEB (1990) CORBA (1991) XML-RPC (1998) WS-* (1998) SOAP RPC/literal SOAP Document/literal (2001) REST (2000) SOA

More information

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY w!"#$%&'()+,-./012345

More information

Copyright 2016 by Martin Krug. All rights reserved.

Copyright 2016 by Martin Krug. All rights reserved. MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without

More information

Registrácia účtu Hik-Connect

Registrácia účtu Hik-Connect Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document

More information

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je

More information

Aplikačný dizajn manuál

Aplikačný dizajn manuál Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,

More information

Riešenia a technológie pre jednotnú správu používateľov

Riešenia a technológie pre jednotnú správu používateľov Riešenia a technológie pre jednotnú správu používateľov Radovan Semančík Agenda Úvod: Identity Crisis Technológie správy používateľov Postup nasadenia Záver Súčasný stav IT Security Nekonzistentné bezpečnostné

More information

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia mar.18 feb.18 jan.18 dec.17 nov.17 okt.17 sep.17 aug.17 júl.17 jún.17 máj.17 apr.17 mar.17 Internetová populácia SR 12+ 3 904 509 3 802 048 3 870 654 3 830

More information

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material Mobile Programming 1 Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material Web Services/Sites, like Foursquare where location, device camera, etc and local processing make

More information

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky

More information

Spôsoby zistenia ID KEP

Spôsoby zistenia ID KEP Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK A REVIEW ON THE ARCHITECTURE OF ANDROID IN SMART PHONES RAVNEET KAUR T. BAGGA 1,

More information

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

More information

HTML5 Mobile App Development

HTML5 Mobile App Development HTML5 Mobile App Development Carl Stehle Appception, Inc. carl@appception.com 650.938.8046 April, 2013 Market Mobile App Market August 2010: Research2guidance: 1.7B (2009), 2.2B (1 st half 2010) April

More information

VZDÁLENÝ PŘÍSTUP K MOBILNÍM ZAŘÍZENÍM REMOTE ACCESS TO MOBILE DEVICES

VZDÁLENÝ PŘÍSTUP K MOBILNÍM ZAŘÍZENÍM REMOTE ACCESS TO MOBILE DEVICES VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS VZDÁLENÝ PŘÍSTUP

More information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange

More information

SIP v malých telekomunikačných systémoch. Convergence. A matter of lifestyle.

SIP v malých telekomunikačných systémoch. Convergence. A matter of lifestyle. SIP v malých telekomunikačných systémoch Convergence. A matter of lifestyle. Obsah Prehľad portfólia malých komunikačných systémov Aastra BusinessPhone - Úvod - Prehľad koncových telefónnych aparátov -

More information

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu Inštalačná príručka Obsah 1 Predpoklady pre inštaláciu D.Signer... 3 1.1 Inštalácia.NET Framework... 3 1.1.1 Windows 8, 8.1... 4 1.1.2

More information

Supported Devices, OS, and Browsers

Supported Devices, OS, and Browsers Kony Visualizer Supported Devices, OS, and Browsers Release V8 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and the document version stated

More information

Nový Office. Pre stredné a veľké podniky. Služba. Ovládanie dotykom. zariadenie

Nový Office. Pre stredné a veľké podniky. Služba. Ovládanie dotykom. zariadenie Nový Office Pre stredné a veľké podniky. Na každé zariadenie Roaming Ovládanie dotykom Služba Hlavné zásady Porovnanie balíkov Office 365 a Office 2013 Office 365 Multilicencia Office 2013 Nový Office

More information

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia Microsoft Azure platforma pre Cloud Computing Juraj Šitina, Microsoft Slovakia m Agenda Cloud Computing Pohľad Microsoftu Predstavujeme platformu Microsoft Azure Benefity Cloud Computingu Microsoft je

More information

Tvorba webových interaktívnych aplikácií pomocou nástroja Silverlight Interactive web applications using the Silverlight

Tvorba webových interaktívnych aplikácií pomocou nástroja Silverlight Interactive web applications using the Silverlight Bankovní institut vysoká škola Praha Zahraničná vysoká škola Banská Bystrica Katedra kvantitatívnych metód a informatiky Tvorba webových interaktívnych aplikácií pomocou nástroja Silverlight Interactive

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia dec.16 nov.16 okt.16 sep.16 aug.16 júl.16 jún.16 máj.16 apr.16 mar.16 feb.16 jan.16 Internetová populácia SR 12+ 3 728 988 3 718 495 3 718 802 3 711 581 3 700

More information

UNIT:2 Introduction to Android

UNIT:2 Introduction to Android UNIT:2 Introduction to Android 1 Syllabus 2.1 Overview of Android 2.2 What does Android run On Android Internals? 2.3 Android for mobile apps development 2.5 Environment setup for Android apps Development

More information

Introduction To Android

Introduction To Android Introduction To Android Mobile Technologies Symbian OS ios BlackBerry OS Windows Android Introduction to Android Android is an operating system for mobile devices such as smart phones and tablet computers.

More information

Databázové systémy. SQL Window functions

Databázové systémy. SQL Window functions Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score

More information

Android Overview. Francesco Mercaldo, PhD

Android Overview. Francesco Mercaldo, PhD Android Overview Francesco Mercaldo, PhD Post-Doctoral researcher Corso di Sicurezza delle Reti e dei Sistemi Software Università degli Studi del Sannio (fmercaldo@unisannio.it) Things are not always what

More information

Programové vybavenie - softvér. Funkcie operačného systému

Programové vybavenie - softvér. Funkcie operačného systému Programové vybavenie - softvér Funkcie operačného systému Softvér Softvér (software) programové vybavenie počítača. Vzniká programovaním, pričom každý počítačový program obsahuje postupnosť inštrukcií,

More information

PODPORNÉ PROSTRIEDKY PRE VERZIOVANIE: VHODNÝ VÝBER PRE NÁŠ TÍM?

PODPORNÉ PROSTRIEDKY PRE VERZIOVANIE: VHODNÝ VÝBER PRE NÁŠ TÍM? PODPORNÉ PROSTRIEDKY PRE VERZIOVANIE: VHODNÝ VÝBER PRE NÁŠ TÍM? Budúcnosť je jasná, budúcnosť sú distribuované verziovacie systémy... alebo centralizované??? Balázs Nagy Slovenská technická univerzita

More information

Windows NT, Windows 2000, Windows 2003 Základné vlastnosti

Windows NT, Windows 2000, Windows 2003 Základné vlastnosti Gymnázium Ľudovíta Štúra Hronská 1467/3 Zvolen Windows NT, Windows 2000, Windows 2003 Základné vlastnosti Školský rok 2016/2017 Ľuboslav Halama III.A Obsah Windows NT... 2 Windows 2000... 3 Windows 2003...

More information

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18 Why Android? Android Overview Dr. Siddharth Kaza Dr. Josh Dehlinger A lot of students have them 2010 survey by University of CO 1 : 22% of college students have Android phone (26% Blackberry, 40% iphone)

More information

kucharka exportu pro 9FFFIMU

kucharka exportu pro 9FFFIMU požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,

More information

Overené riešenia.

Overené riešenia. www.eset.sk Overené riešenia. Ultra-silná autentifikácia pre ochranu prístupu do siete a vašich dát ESET Secure Authentication poskytuje efektívnu autentifikáciu, ktorá ochráni vzdialený prístup do vašej

More information

Mobile Cross Platform Development. Igor Markov

Mobile Cross Platform Development. Igor Markov Mobile Cross Platform Development Igor Markov How many smartphone platforms are there? 2 Some popular ones: Android Bada Blackberry ios RIM Symbian Windows Mobile WP7 J2ME (not smartphone in fact) Maemo/MeeGo

More information

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga.

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga. Ochrana koncových staníc pomocou Cisco Security Agent 6.0 Ľubomír Varga lubomir.varga@lynx.sk Agenda CSA 6.0 refresh Vybrané vlastnosti CSA 6.0 Application Trust levels Notify User Rule Actions User Justifications

More information

Mobile Application Development Concept

Mobile Application Development Concept Mobile Application Development Concept Aryo Pinandito, ST, M.MT Delivering Mobile Content It isn't just about choosing native apps or choosing the mobile web it's also about looking at who your customers

More information

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém Crestron Mercury Univerzálny Videokonferenčný a Kolaboračný systém Tradičná malá zasadacia miestnosť CRESTRON Mercury Videokonferenčná miestnosť Možnosť rezervácie miestnosti: Prostredníctvom MS Outlook

More information

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE MATERIÁLOVOTECHNOLOGICKÁ FAKULTA V TRNAVE

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE MATERIÁLOVOTECHNOLOGICKÁ FAKULTA V TRNAVE SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE MATERIÁLOVOTECHNOLOGICKÁ FAKULTA V TRNAVE APLIKÁCIA PRE SYNCHRONIZÁCIU SUGARCRM S MOBILNÝMI ZARIADENIAMI SO SYSTÉMOM ANDROID BAKALÁRSKA PRÁCA MTF-5262-47785

More information

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠOVANIE KONCEPTU TRIEDY VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie

More information

Chapter 1 Hello, Android

Chapter 1 Hello, Android Chapter 1 Hello, Android OPEN HANDSET ALLIANCE OPEN HANDSET ALLIANCE OPEN HANDSET ALLIANCE A commitment to openness, a shared vision for the future, and concrete plans to make the vision a reality. To

More information

International Journal of Multidisciplinary Consortium Volume 2 Issue

International Journal of Multidisciplinary Consortium Volume 2 Issue ARCHITECTURAL COMPARISON A CASE STUDY BETWEEN ANDROID & IOS by Ankit Gupta Research Scholar Tecnia Institute of Advance Studies Delhi & Nisha Research Scholar Tecnia Institute of Advance Studies Delhi

More information

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU Introduction to Android Application Development Mike Kvintus Principal Engineer JDSU Agenda Android Background What is Android? Android Fundamentals Getting Started with App Development Demo Tips/Links

More information

1 Komplexný príklad využitia OOP

1 Komplexný príklad využitia OOP 1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou

More information

Carfriend webová aplikácia pre hlásenie nežiadúcich situácií vzťahujúcich sa k vozidlám

Carfriend webová aplikácia pre hlásenie nežiadúcich situácií vzťahujúcich sa k vozidlám Mendelova univerzita v Brně Provozně ekonomická fakulta Carfriend webová aplikácia pre hlásenie nežiadúcich situácií vzťahujúcich sa k vozidlám Bakalárska práca Vedúci práce: Ing. Pavel Turčínek, Ph.D.

More information

Android In Industrial Applications. A Field Report

Android In Industrial Applications. A Field Report Garz & Fricke Android In Industrial Applications A Field Report Android In Industrial Applications A Field Report Contents What we will talk about Garz & Fricke Company Overview Introduction to Android

More information

Application Development for Mobile and Ubiquitous Computing

Application Development for Mobile and Ubiquitous Computing Department of Computer Science Institute for System Architecture, Chair for Computer Networks lication Development for Mobile and Ubiquitous Computing 9. Cross-Platform Development Dr. Ing. Thomas Springer

More information

Nové komunikačné trendy v dátových centrách

Nové komunikačné trendy v dátových centrách Nové komunikačné trendy v dátových centrách Martin Vozár Roman Benko 25. november 2009 Cisco Expo, Bratislava Agenda 1. Konvergovaná architektúra 2. Komponenty architektúry 3. AVNET demo LAB 2 / 17 Konvergovaná

More information

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

DROID. By S.Gokulakrishnan AP/CSE SCSVMV Mobile Applicatio on Development with AND DROID By S.Gokulakrishnan AP/CSE SCSVMV The Players Android Open source mobile OS developed ny the Open Handset Alliance led by Google. Based on Linux 2.6 kernel

More information

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit.

Rýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit. Fiber 5 Mbit ** 5 Mbit / Mbit 5,90 Fiber 50 Mbit * 50 Mbit / 8 Mbit 9,90 Fiber 80 Mbit * 80 Mbit / Mbit 5,90 Mini Mbit* Mbit / Mbit 9,90 Klasik 2 Mbit* 2 Mbit / 2 Mbit Standard 8 Mbit* 8 Mbit / 3Mbit Expert

More information

OPERAČNÝ SYSTÉM WINDOWS NT

OPERAČNÝ SYSTÉM WINDOWS NT OS 1 prednáška 9 OPERAČNÝ SYSTÉM WINDOWS NT Existuje mnoho rôznych verzií systémov Microsoft Windows, pričom operačný systém Microsoft Windows NT/2000/XP je rodinou úplne odlišnou od Windows 95/98/Me (skrátene

More information

IJRDTM Kailash ISBN No Vol.17 Issue

IJRDTM Kailash ISBN No Vol.17 Issue ABSTRACT ANDROID OPERATING SYSTEM : A CASE STUDY by Pankaj Research Associate, GGSIP University Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

More information

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation mlearning: Tips and Techniques for Development and Implementation November 14 & 15, 2013 201 Exploring Cross-platform Tools For Mobile Development: Lessons Learned Perry Bennett Exploring Cross-platform

More information

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<< Ios Sdk Documentation For Windows 7 32 Bit Latest Version Download Latest ios SDK & Sample Project Got the SDK? v5.3.0 (May 7, 2015) Native ios SDK now sends the version of the Unity wrapper SDK along

More information

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w!"#$%&'()+,-./012345

More information

Xamarin písanie Android a ios aplikácií v C#

Xamarin písanie Android a ios aplikácií v C# www.dotnetcollege.cz Xamarin písanie Android a ios aplikácií v C# Roman Jašek Software Architect, Riganti s.r.o. MSP, MCP roman.jasek@riganti.cz Xamarin vs. Xamarin Forms ios C# UI Android C# UI Windows

More information

SMARTPHONE FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS

SMARTPHONE FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS ZABEZPEČENÁ KOMUNIKACE

More information

UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE

UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE FAKULTA PRÍRODNÝCH VIED BEZPEČNOSŤ MOBILNÝCH ZARIADENÍ DIPLOMOVÁ PRÁCA 2017 Bc. JAN FRANCISTI UNIVERZITA KONŠTANTÍNA FILOZOFA V NITRE FAKULTA PRÍRODNÝCH VIED BEZPEČNOSŤ

More information

Tvorba webových stránok pre mobilné platformy

Tvorba webových stránok pre mobilné platformy Bankovní institut vysoká škola Praha zahraničná vysoká škola Banská Bystrica Tvorba webových stránok pre mobilné platformy Diplomová práca Bc. Andrej Ševčík Apríl 2014 Bankovní institut vysoká škola Praha

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU.

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU. UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU Diplomová práca 2017 Bc. Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA

More information

Android. Operating System and Architecture. Android. Screens. Main features

Android. Operating System and Architecture. Android. Screens. Main features Android Android Operating System and Architecture Operating System and development system from Google and Open Handset Alliance since 2008 At the lower level is based on the Linux kernel and in a higher

More information

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky BGP - duálne prepojenie AS (primary + backup spoj), s IBGP, cez virtuální L2 linky Peter Jašica Abstrakt: Cieľom tohto projektu je zhotoviť a otestovať funkčnosť BGP s dvojitým prepojením Autonómnych systémov.

More information

CROSS PLATFORM APPLICATION DEVELOPMENT WITH COMPATIBLE GUI SOLUTIONS

CROSS PLATFORM APPLICATION DEVELOPMENT WITH COMPATIBLE GUI SOLUTIONS wwwijecsin International Journal Of Engineering And Computer Science ISSN:2319-7242 Volume 2 Issue 6 June, 2013 Page No 1961-1966 CROSS PLATFORM APPLICATION DEVELOPMENT WITH COMPATIBLE GUI SOLUTIONS NithiyananthamC,

More information

Problém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec

Problém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec Problém Big Data a ako ho riešiť pomocou NoSQL Ján Zázrivec Softec Dáta dnešného sveta Oblasti kde sa spracováva veľké množstvo dát: Internet Web vyhľadávače, Sociálne siete Veda Large Hadron Collider,

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY FYZIKY A INFORMATIKY. Moderné trendy pri tvorbe webových aplikácií

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY FYZIKY A INFORMATIKY. Moderné trendy pri tvorbe webových aplikácií UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY FYZIKY A INFORMATIKY Moderné trendy pri tvorbe webových aplikácií Bratislava 2007 Miloš Homola Moderné trendy pri tvorbe webových aplikácií DIPLOMOVÁ

More information

Android Overview. Most of the material in this section comes from

Android Overview. Most of the material in this section comes from Android Overview Most of the material in this section comes from http://developer.android.com/guide/ Android Overview A software stack for mobile devices Developed and managed by Open Handset Alliance

More information

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový

More information

Vzory, rámce a webové aplikácie

Vzory, rámce a webové aplikácie Vzory, rámce a webové aplikácie Jakub Šimko jakub.simko@stuba.sk Návrhové vzory (načo slúžia?) 1. Dobré zvyky v programovaní 2. Riešia často sa opakujúce problémy praxou overeným spôsobom 3. Pomôžu nám

More information

prest framework pre webové aplikácie a služby

prest framework pre webové aplikácie a služby prest framework pre webové aplikácie a služby Peter Rybár Centaur s.r.o. Situácia v korporátnej sfére Dominuje technológia a nie architektúra Situácia na Webe Dominuje architektúra ROA REST štýl softvérovej

More information

Competence. e-learning. Patrick Krekelberg, Allen Interactions.

Competence. e-learning. Patrick Krekelberg, Allen Interactions. 710 711 The Apple Training iphone Excellence Practical Uses Starts with in Corporate Training Competence e-learning Patrick Krekelberg, Allen Interactions www.elearningguild.com iphone and elearning Patrick

More information

JEDNODUCHÝ IS PRO MOBILNÍ TELEFONY PRO EVIDENCI HOVORŮ SIMPLE MOBILE PHONE IS FOR CALL EVIDENCE

JEDNODUCHÝ IS PRO MOBILNÍ TELEFONY PRO EVIDENCI HOVORŮ SIMPLE MOBILE PHONE IS FOR CALL EVIDENCE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS JEDNODUCHÝ IS

More information

Mobile Development June 2015, TEIATH, Greece

Mobile Development June 2015, TEIATH, Greece Mobile Development June 2015, TEIATH, Greece Presentation Overview 1. Introduction 2. Mobile Application Development 3. Cordova / Phonegap 4. Development Framework 5. Examples 1. INTRODUCTION Introduction

More information

MONITOROVÁNÍ NEELEKTRICKÝCH VELIČIN S VY- UŽITÍM BLUETOOTH LOW ENERGY

MONITOROVÁNÍ NEELEKTRICKÝCH VELIČIN S VY- UŽITÍM BLUETOOTH LOW ENERGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS MONITOROVÁNÍ NEELEKTRICKÝCH

More information

Aplikácia na prezentovanie multimediálneho obsahu na TV

Aplikácia na prezentovanie multimediálneho obsahu na TV Masarykova univerzita Fakulta informatiky Aplikácia na prezentovanie multimediálneho obsahu na TV Diplomová práca Bc. Marián Varaga Brno, jar 2017 Namiesto tejto stránky vložte kópiu oficiálneho podpísaného

More information

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya Masarykova univerzita Fakulta informatiky }w!"#$%&'()+,-./012345

More information

Aplikácia k určovaniu rastlín pre platformu ios

Aplikácia k určovaniu rastlín pre platformu ios Mendelova univerzita v Brně Provozně ekonomická fakulta Aplikácia k určovaniu rastlín pre platformu ios Bakalárska práca Vedúci práce: Ing. Dita Dlabolová Jakub Kozák Brno 2014 Na tomto mieste by som

More information

Manuál k programu FileZilla

Manuál k programu FileZilla Manuál k programu FileZilla EXO TECHNOLOGIES spol. s.r.o. Garbiarska 3 Stará Ľubovňa 064 01 IČO: 36 485 161 IČ DPH: SK2020004503 support@exohosting.sk www.exohosting.sk 1 Úvod EXO HOSTING tím pre Vás pripravil

More information

Virtualizační platformy, kontejnerové technologie a Cloud služby Virtualization Platform, Container Technology and Cloud Services

Virtualizační platformy, kontejnerové technologie a Cloud služby Virtualization Platform, Container Technology and Cloud Services VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Virtualizační platformy, kontejnerové technologie a Cloud služby Virtualization Platform, Container Technology

More information

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 851(01(Bra@slava Titl.: Ján(Hrčka Bohrova(11 851(01(Bra@slava V(Bra@slave(21.11.2013 Vec:(Odpoveď(na(informácie(ohľadom(mandátnej(zmluvy(na(základe(Zákona(č.(211/2000(Zb.

More information

Úvod do C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 1

Úvod do C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 1 Úvod do C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 1 Vyššie programovacie jazyky vo výpočtovej inteligencii C# Programovací jazyk C# 5-6 týždňov Moderný objektovo orientovaný jazyk Použiteľný

More information

Absolvování individuální odborné praxe Individual Professional Practice in the Company

Absolvování individuální odborné praxe Individual Professional Practice in the Company VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Absolvování individuální odborné praxe Individual Professional Practice in the Company 2014 Peter Slivoš Prehlasujem,

More information

Cross-Platform Mobile Application Development

Cross-Platform Mobile Application Development Cross-Platform Mobile Application Development Anirudh Nagesh, MS Student School of Information Studies, Syracuse University anagesh@syr.edu Carlos E. Caicedo, Assistant Professor School of Information

More information

WEBOVÁ PLATFORMA PRE TVORBU HIER WEB PLATFORM FOR GAME DEVELOPMENT

WEBOVÁ PLATFORMA PRE TVORBU HIER WEB PLATFORM FOR GAME DEVELOPMENT VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS WEBOVÁ PLATFORMA

More information

Android - open source mobile platform

Android - open source mobile platform Android - open source mobile platform Alexander Schreiber http://www.thangorodrim.de/ Chemnitzer Linux-Tage 2009 Alexander Schreiber Android - open source mobile

More information

Využití technologie Angular2 při vývoji webových aplikací. Bc. Juraj Štefan

Využití technologie Angular2 při vývoji webových aplikací. Bc. Juraj Štefan Využití technologie Angular2 při vývoji webových aplikací Bc. Juraj Štefan Diplomová práce 2017 ABSTRAKT Táto diplomová práca sa zaoberá návrhom a vývojom webovej aplikácie použitím prístupu MEAN stack.

More information

Prvky inovácie nových jazykov HTML5 a CSS3

Prvky inovácie nových jazykov HTML5 a CSS3 Bankovní institut vysoká škola Praha zahraničná vysoká škola Banská Bystrica Katedra kvantitatívnych metód a informatiky Prvky inovácie nových jazykov HTML5 a CSS3 The HTML5 and CSS3 innovations concepts

More information

Grid Computing Implementácia služby v Globus Toolkite (Diplomová práca)

Grid Computing Implementácia služby v Globus Toolkite (Diplomová práca) Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Grid Computing Implementácia služby v Globus Toolkite (Diplomová práca) Bc. Peter Bajči Školiteľ: RNDr. Andrej

More information

Android Development Tutorial. Yi Huang

Android Development Tutorial. Yi Huang Android Development Tutorial Yi Huang Contents What s Android Android architecture Android software development Hello World on Android More 2 3 What s Android Android Phones Sony X10 HTC G1 Samsung i7500

More information

POKROČILÉ C++ Marian Vittek

POKROČILÉ C++ Marian Vittek POKROČILÉ C++ Marian Vittek vittek@fmph.uniba.sk O predmete Pôvodne seminár Teraz normálna prednáška so skúškou/testom Predmetom kurzu je detailnejší pohľad na jazyk C++ a občasné porovnanie s inými programovacími

More information

Mobile Middleware Course. Mobile Platforms Sasu Tarkoma

Mobile Middleware Course. Mobile Platforms Sasu Tarkoma Mobile Middleware Course Mobile Platforms Sasu Tarkoma MAEMO The Maemo platform from Nokia includes the Internet Tablet OS, which is based on Debian GNU/ Linux and draws much of its GUI, frameworks, and

More information

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Dalvik Java

More information

Košice. Riešenia pre malé a stredné podniky

Košice. Riešenia pre malé a stredné podniky 28.09.2016 Košice Riešenia pre malé a stredné podniky Partnerský program Hewlett Packard Enterprise Partner Ready Výhody - Špeciálne ceny - Partner ready portál - Bezplatné školenia - Registrácia obchodného

More information

1. ELASTIX inštalácia 2 2. Elastix konfigurácia Nastavenie užívateľských kont Pridanie nových užívateľských kont 10 2.

1. ELASTIX inštalácia 2 2. Elastix konfigurácia Nastavenie užívateľských kont Pridanie nových užívateľských kont 10 2. 1. ELASTIX inštalácia 2 2. Elastix konfigurácia 8 2.1 Nastavenie užívateľských kont 9 2.2 Pridanie nových užívateľských kont 10 2.3 InstantMessaging and presence 12 2.4 TLS 12 2.5 Conference 12 3. Záver

More information

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Dalvik Java

More information

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma Mobile Middleware Course Mobile Platforms and Middleware Sasu Tarkoma Applications Middleware provides various Middleware transparencies (HW, OS, location, fault,..) for apps. Transport Layer APIs (TCP/UDP)

More information

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps WebSphere Puts Business In Motion Put People In Motion With Mobile Apps Use Mobile Apps To Create New Revenue Opportunities A clothing store increases sales through personalized offers Customers can scan

More information

Android is a software stack for mobile devices and comprises middleware, operating system and core

Android is a software stack for mobile devices and comprises middleware, operating system and core http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:hyb3.5:hrte:sdk Android Outline Android is a software stack for mobile devices and comprises middleware, operating system and core applications.

More information

Paraben s DS 7.5 Release Notes

Paraben s DS 7.5 Release Notes Paraben s DS 7.5 Release Notes Welcome to Paraben s DS Mobile Forensic Solution! DS is designed to allow investigators to acquire the data contained on mobile phones, smartphones, tablets, GPS, and PDA

More information

MS Exchange 2010 Prechod Ing. Peter Záhradník

MS Exchange 2010 Prechod Ing. Peter Záhradník MS Exchange 2010 Prechod Ing. Peter Záhradník Gratex Support Center support@gratex.com Exchange 2010 o com to bude? Tato prezentacia bude pre ludi co uvazuju nad prechodom na novy Exchange zopar otazok

More information

Knižnica (framework) pre kreslenie grafov

Knižnica (framework) pre kreslenie grafov Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Katedra informatiky Knižnica (framework) pre kreslenie grafov Diplomová práca Bc. Tomáš DRIMAL Študijný odbor: 9.2.1 Informatika

More information