Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon. Kromesch Sándor



Hasonló dokumentumok
Mobil eszközök programozása Mivel is kezdjem?

Mobil eszközök programozása Mivel is kezdjem?

IBM WorkLight 5.0 mobil alkalmazás platform

MVC. Model View Controller

iphone és Android két jó barát...

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

SZABADKAI MŰSZAKI SZAKFŐISKOLA. E-mobil prezentáció dokumentációja SZABADKA, 2015.

Google Web Toolkit. Elek Márton. Drótposta kft.

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

Web-fejlesztés NGM_IN002_1

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

SZABADKAI MŰSZAKI SZAKFŐISKOLA. PREZENTÁCIÓ E-mobil tantárgyból Jquery Mobil Keretrendszer SZABADKA, 2015.

Az Educatio weboldalain elhelyezhető hirdetések technikai paraméterei

Hova tart a cross platform mérés?

Ustream.tv Bepillantás egy közösségi élővideo site működésébe

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

MKB. Mobil NetBANKár. Mobil eszköz és böngészı beállítások

Gyors, kényelmes, típusbiztos

RIA Rich Internet Application

Képnézeget. Gépigény: Bármilyen számítógépen m ködik, amin található böngész és Internet elérés.

Mobil SEO Kell-e külön foglalkozni a mobil jelenlétünk kereső optimalizálásával? Adam Lunczner Digital Director

Cross platform játékmotor + szerkesztő Támogatott platformok

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Android Pie újdonságai

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Mobil Informatikai Rendszerek

Fejlesztői szemmel at K

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Oracle Forms - Oracle Application Express alkalmazások migrációja a jövőbe

Mobilizálódó OSZK. A nemzeti könyvtár mobileszközöket célzó fejlesztései az elmúlt időszakban. Garamvölgyi László. Networkshop, 2013.

12.óra jquery Framework #1. Gyimesi Ákos

Java I. A Java programozási nyelv

Újdonságok a Google műhelyéből. Péter Ekler

Big data, targetálás, hatékonyság: iránytű a hirdetési trendek útvesztőjében. Kercsó Péter Mobilmédia hirdetési vezető, CM Sales Kft.

Összesítés. Látogatások száma Oldalak Találatok Adatmennyiség (11.08 Oldalak/Látogatás)

Alkalmazás boltok. Android Market, Apple AppStore, WP7 MarketPlace Cserna Bence, Paksy Patrik

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Alap számológép alkalmazás

Mobil Informatikai Rendszerek

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Informatikai Tesztek Katalógus

Számlaigazoltatás újratöltve. Lázár Péter

Mobil Informatikai Rendszerek

MOBIL PLATFORMHÁBORÚ. Török Gábor

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

A készülék fő egységei X1 X1 (kizárólag vezeték nélküli kamera esetében X1 X1 X1 X1 X1

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Adatbázis rendszerek 7. előadás State of the art

Általános médiaajánlat. Érvényes: január 2-től visszavonásig.

Java és web programozás

Mobil Informatikai Rendszerek

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

ÁLTALÁNOS MÉDIAAJÁNLAT. Érvényes: január 7-től

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

Kő, Papír, Olló. Felhasználói dokumentáció

Web programozás. 3. előadás

JAVA webes alkalmazások

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Webes és mobil-alapú megoldások... hatékonyan és gyorsan a közigazgatásban

GOOGLE ANALITYCS VS. SPSS CLEMENTINE

KROMESCH SÁNDOR APP FELHŐ. API-k és Webszolgáltatások a Cloudban. Magyarországi Web Konferencia November 8.

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Mobil Üzleti Intelligencia

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

ANDROID ALKALMAZÁSFEJLESZTÉS

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Jquery. Konstantinusz Kft.

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Nokia N9 - MeeGo Harmattan bemutatkozik

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

GISopen, Székesfehérvár,

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok

Több app. Egy kódbázis

eseményvezérelt megoldások Vizuális programozás 5. előadás

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

CEMP SALES HOUSE ÁRLISTA Érvényes: március 1-től visszavonásig

Mobil eszközök programozása Java

JavaServer Pages (JSP) (folytatás)

Web design. Accessibility

Videotorium: videómegosztás felsőfokon

A Java EE 5 plattform

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

Súlya: 66g Színes, grafikus kijelző GPRS WAP WAP, MMS. Mp3 lejátszó Infravörös port, Bluetooth. Diktafon, Kihangosítás. Súlya: 81g GPRS WAP, WAP, MMS

Webes alkalmazások fejlesztése

Statisztikai alap tihanyipercek.hu (201

Bevezetés Működési elv AJAX keretrendszerek AJAX

ONLINE PORTFÓLIÓ 2016 // PIACVEZETŐ ELÉRÉS MEGHATÁROZÓ MÁRKÁK DINAMIKUSAN NÖVEKVŐ PORTFÓLIÓ FOLYAMATOS TERMÉKFEJLESZTÉSEK PONTOS CÉLOZHATÓSÁG

AJAX Framework építés. Nagy Attila Gábor Wildom Kft.

ANDROID ALKALMAZÁSFEJLESZTÉS

Java I. A Java programozási nyelv

UI megismerése, különböző felbontások támogatása, használati jogok kérése

Memória játék. Felhasználói dokumentáció

READy Suite: mobil és fix kiolvasó hálózat fogyasztásmérőkhöz

SZAKKÉPZÉSI KERETTANTERV a(z) MULTIMÉDIA-ALMAZÁSFEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

Átírás:

Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon Kromesch Sándor

CROSS PLATFORM VS NATIVE 2/32

Sebesség 3/32 native webview String text="1234567890"; long start = System.currentTimeMillis(); for (int i = 1; i<100000; i++) { text.indexof("0"); } long end = System.currentTimeMillis(); var text = "1234567890"; var start = new Date().getTime(); for ( var i = 0; i < 100000; i++) { text.indexof("0"); } var end = new Date().getTime(); Átlag 2.3.6: ~ 30 ms Átlag 4.1: ~ 25 ms Átlag 2.3.6: ~ 75 ms Átlag 4.1: ~ 42 ms Átlagos mérési idő 100 mérésenként, android-on mérve

Fejlesztési idő 4/32 native webview......

Karbantartás 5/32 native webview platformonkénti kódbázis bug lista platformonként (bug szegmentáció) minden feature-t plarformonként releasek platformonként (release egy kódbázis egy hibalista egy feautre lista egy release minden platformra szegmentáció)

User interface 6/32 native webview

CROSS PLATFORM FEJLESZTÉS 7/32

Lehetőségek 8/32 Unity 3 IwGames MoSync Kivy stb... - JavaScript, c#, Boo - c++ - c/c++, HTML5 - python

Hogy működik HTML5 alapokon? 9/32 Native Android Összekötés a Webview JS motorral public class JsIf{ Context mcontext; JsIf(Context c){ mcontext = c; } public void showtoast(string toast){ Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } } WebView webview = (WebView) findviewbyid(r.id.webview); webview.getsettings().setjavascriptenabled(true); final JsIf myjsif = new JsIf(this); webview.addjavascriptinterface(myjsif, "AndroidFunction"); webview.loadurl( "file:///android_asset/www/index.html"); HTML <button onclick="androidfunction.showtoast('toast message');">toast</button>

HTML5 alapú rendszerek 10/32 PhoneGap (Adobe) RhoMobile Suite (Motorola) Appcelerator MoSync Trigger.io - HMTL5, JavaScript - HTML5, Ruby - HMTL5, JavaScript - HTML5, JavaScript - HTML5, JavaScript

PHONEGAP 11/32

Történet 12/32 2008. 08. - Kezdet csak ios 2008. 10. - Android + BlackBerry támogatás 2009. 02. - Első stabil változat (0.6.0) 2009. 08. - Windows Mobile támogatás 2009. 09. - Nokia (S60) támogatás 2009. 10. - AppStore elfogadja a 0.8.0+ verziókat 2011. 07. - 1.0.0 2011. 10. - Adobe megvásárolja -> Apache Cordova 2012. 07. - 2.0.0 ~ 2013. 07. - 3.0.0

Architektúra 13/32 UI Layer (HTML + CSS + JS) BL Layer (JS) PhoneGap Native impl Native impl Native impl Native impl Native impl

API-k 14/32 Gyorsulás mérő (Accelerometer) Kamera (Camera) Audio, Video (Capture) Iránytű (Compass) Hálózati kapcsolatok (Connection) Névjegyek (Contacts) Eszköz információk (Device) Események (Events) File (File) Helymeghatározás (Geolocation) Média (Media) Értesítések (Notification) Tároló (Storage) http://phonegap.com/about/feature

ESZKÖZÖK A FEJLESZTÉSHEZ 15/32

jquery, jquery mobile 16/32 Előnyök Desktop világban elterjedt Sok plugin Gyorsan lehet működő alkalmazást fejleszteni Hátrányok Sebesség 1.1-ben page transition-nél flickering probléma volt Felesleges design elemek vannak benne

Sebesség 17/32 jquery Méret: 32 K IE6+, FF10+, Safari 5+, Opera, Chrome Zepto Méret: 8,3 K ios 4+, Android 2.2+, webos 1.4.5+, Opera 10+, Safari 5+, Chrome 5+, FF 4+ Kompatibilitás (kb: ~90%) function($){ $.extend($.fn,{ foo: function(){ } }) })(Zepto)

Alkalmazás layout 18/32 Backbone.js Model - Kulcs - Érték alapon View Router Collections RESTful JSON interface

Több felbontás kezelése 19/32 less.js Dinamikus tulajdonságokkal bővíti a CSS-t button { @p: picturepath('get-taxi-button.png'); background: url("@{p}") no-repeat 50% 50%; } picturepath: function(file){ var dp = window.devicepixelratio; if( dp < 1 ) return new(tree.anonymous)('../img/drawable-ldpi/'+file.value); if( dp == 1 ) return new(tree.anonymous)('../img/drawable-mdpi/'+file.value); if( dp > 1 ) return new(tree.anonymous)('../img/drawable-hdpi/'+file.value); if( dp > 2 ) return new(tree.anonymous)('../img/drawable-xhdpi/'+file.value); return new(tree.anonymous)('../img/drawable-amdpi/'+file.value); },

DEBUG-OLÁS 20/32

Console log 21/32 JavaScript kódban console.log("this is log"); Logcat

jsconsole 22/32 jsconsole.com HTML kódban <div id="test">test data</div> <button onclick="console.log(document.getelementbyid('test'));">test</button> jsconsole.com

Weinre - Web Inspector Remote 23/32 Böngészőbe: http://debug.phonegap.com/client/#erise-webkonf Kódba: <script src="http://debug.phonegap.com/target/target-script-min.js#erise-webkonf"></script>

Ripple - HTML5 mobile emulator 24/32

TAPASZTALATOK 25/32

Alkalmazás layout 26/32 Fixed elemek balra rendezettek legyenek Hosszú listák helyett lapozható listák Felesleges HTML elemek használatának mellőzése: <li> <a href="#"> <span class="icon"></span> <span class="boldtext">text</span> </a> </li> <li> <a href="#" class="icon boldtext">text</a> </li>

Rögzített fejlés és lábléc 27/32 Android 2.3+, ios 5+ Android 2.3+, ios 4+ Android 2.3+, ios 4+

Design 28/32 Vezérlő méretek Animált gif-ek Különböző css propertyk renderelési sebessége: text-shadow: ~9% box-shadow: ~14% background (gradient): ~300% Mérések Android 4.1 alatt történtek

Css trükkök 29/32 -webkit-tap-highlight-color: rgba(0,0,0,0); outline: none; -webkit-user-modify: read-write-plaintext-only; -webkit-animate translatex line-height

Events 30/32 Eszközfüggetlen események: touchstart - mousedown touchmove - mousemove touchend - mouseup touchcancel Javascript library függő események (Zepto.js) Tap o singletap, doubletap longtap swipe o swipeleft, swiperight, swipeup, swipedown

Összefoglalás 31/32 Native HTML5 Erősen sebesség függő alkalmazás Komplex alkalmazások (Office) Játékok Egy, max két platformos appok Appra fordítható erőforrások mennyisége nem szempont (Facebook) Cél az egységes kinézet minél több platformon Minél több platformon működő app Erősen API orientált app Startup, pilot appok Szűkösek az appra szánt erőforrások Szoros a határidő

Köszönöm a figyelmet! Kromesch Sándor sandor.kromesch@erise.hu