SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Hibridne aplikacije -
Upogonite Java web aplikaciju
na Androidu da radi offline
Matija TomaškovićMatija Tomašković
Daniel Strmečki
POSLOVNE WEB APLIKACIJE13.05.2014.
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Java web aplikacije - arhitektura
Web browser Web application server Database
SQL
Java
Servlet
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr2 | 13.05.2014.
SQL
DB
Java
web app
WAR
Servlet
server
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
KORAK 1 - prilagodba dizajna
Desktop Mobile
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr3 | 13.05.2014.
Ne zaboraviti: responsive design / CSS
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
APK
KORAK 2 – pakiranje linka
WebView
Icon Name URL
Web application server
Servlet
server
Java
web app
WAR
SQL
DB
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr4 | 13.05.2014.
WebView server
WAR
DB
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
KORAK 2 – pakiranje linka
Android SDK Tools
android update project
Apache Ant
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr5 | 13.05.2014.
Android Base Wrapper
Apache Ant
ant clean ant release
DEMO
Pakiranje linka
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr
Pakiranje linka
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
APK
KORAK 3 – izlaganje native funkcionalnosti
WebView
Icon Name URL
Web application
Servlet
server
Java
web app
WAR
SQL
DB
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr7 | 13.05.2014.
WebView
JavaScript proxy
Native features
server
WAR
DB
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
KORAK 3 – izlaganje native funkcionalnosti
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr8 | 13.05.2014.
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
APK
KORAK 4 – offline deployment
WebView
Icon Name URL
Web application
Servlet
server
Java
web app
WAR
SQL
DB
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr9 | 13.05.2014.
WebView
JavaScript proxy
Native features
server
WAR
DB
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
APK
KORAK 4 – offline deployment
WebView
Icon Name URL
Servlet
server
Java
web app
WAR
SQL
DB
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr10 | 13.05.2014.
WebView
JavaScript proxy
Native features
server
WAR
DB
SYNC sa online
sustavom
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
KORAK 4 – offline deployment
implements
/
extends
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr11 | 13.05.2014.
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
KORAK 4 – offline deployment
Instancira EF
AppServlet
Binda listening
socket
Context path
"/evolution_framework"
Webapp dir
Započinje
listening loop
Instancira
ServletConfig
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr12 | 13.05.2014.
Create ServletContext
instance
listening loop
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
KORAK 4 – offline deployment
Starta thread
Referenca na
input/output
Instanca
HttpServletRequest
Instanca
HttpServletResponse
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr13 | 13.05.2014.
Čita HTTP request:
GET/POST line, HTTP
header, content
input/output
socket streams
a) šalje
resource file
b) poziva servlet
doGet/doPost
Servlet piše u
ServletOutputStream
Šalje HTTP header i
content
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Offline webapp wrapper – on desktop
Priprema Java web aplikacije
compile & create JAR
Java classes & EF modules
zip EF java web app
copy app package
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr14 | 13.05.2014.
EF Offline Wrapper Builder
android update project
SDK Tools & Ant
add to base wrapper
ant clean, ant release
zip EF java web app
Android Base Wrapper
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
JARs
APK
build
create
copy
classpath
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr15 | 13.05.2014.
APK
Assets
copy
build
deploy
zip
copy
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Offline webapp wrapper – on Android device
Kopiranje APK na Android Web app funkcionira offline
Samo
Ako nije
pokrenut
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr16 | 13.05.2014.
Instalacija APK
Poketanje EF mobile wrapper app Unzip EF web app
Start servlet server
Samo
inicijalno
DEMO
Offline Java web aplikacija
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr
Offline Java web aplikacija
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Zaključak
bazirani na istom engine, Chromium od Android 4.4., HTML 5 support
WebView je po defaultu ograničen, potrebno ga je podesiti prema potrebama
za rad sa učitavanjem stranica, formama – koristiti WebViewClient
za napredniji rad sa JS i eventima – koristiti WebChromeClient
pure Java baza: HSQLDB
WebView vs Chrome
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr18 | 13.05.2014.
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Zaključak
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr19 | 13.05.2014.
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Zaključak
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr20 | 13.05.2014.
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Zaključak
<button type="button" value="someValue"
JS -> Java
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr21 | 13.05.2014.
<button type="button" value="someValue"
onclick="window.ok.performClick(this.value);">OK</button>
Java -> JS
HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE
Zaključak
bolja ergonomija pokretanja
prisutnost na marketu
izbjegava se dupli razvoj istih funkcionalnosti u web i native mobile obliku
(barem duplo) manji troškovi razvoja
manji potrebni know-how
moguće je napraviti native wrappere za više platformi, iskoristive za više web aplikacija
mogu se iskoristiti native funkcionalnosti uređaja
može se iskoristiti snagu HTMLa(5), JavaScripta, CSSa
ZA HIBRIDNE APLIKACIJE:
POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr22 | 13.05.2014.
može se iskoristiti snagu HTMLa(5), JavaScripta, CSSa
mogući offline deployment Java web aplikacija na Androidu
PROTIV:
performanse
ergonomske prilagodbe / responsive design
drag'n'drop
doubleclick
treba napisati native wrapper
za offline aplikacije staviti u pogon (svoj/3rd party) Android servlet server
Hvala na pažnji
www.evolva.hr
info@evolva.hr
POSLOVNE WEB APLIKACIJE

Más contenido relacionado

La actualidad más candente

Java Technology
Java TechnologyJava Technology
Java Technology
ifnu bima
 
Alexander Zeng
Alexander ZengAlexander Zeng
Alexander Zeng
Alex Zeng
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorized
roialdaag
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev Tricks
Gabriel Walt
 

La actualidad más candente (20)

Java Technology
Java TechnologyJava Technology
Java Technology
 
Alexander Zeng
Alexander ZengAlexander Zeng
Alexander Zeng
 
CQ 5.4 Deep-Dive
CQ 5.4 Deep-DiveCQ 5.4 Deep-Dive
CQ 5.4 Deep-Dive
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorized
 
Building RIA Applications with JavaFX
Building RIA Applications with JavaFXBuilding RIA Applications with JavaFX
Building RIA Applications with JavaFX
 
SD Forum Java SIG - Service Oriented UI Architecture
SD Forum Java SIG - Service Oriented UI ArchitectureSD Forum Java SIG - Service Oriented UI Architecture
SD Forum Java SIG - Service Oriented UI Architecture
 
VisionX Prototyping.
VisionX Prototyping.VisionX Prototyping.
VisionX Prototyping.
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEM
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev Tricks
 
Why Java
Why JavaWhy Java
Why Java
 
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter LehtoJavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
 
Refactoring to a Single Page Application
Refactoring to a Single Page ApplicationRefactoring to a Single Page Application
Refactoring to a Single Page Application
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.js
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Android Development...Using Web Technologies
Android Development...Using Web TechnologiesAndroid Development...Using Web Technologies
Android Development...Using Web Technologies
 
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
 
Joe Staner Zend Con 2008
Joe Staner Zend Con 2008Joe Staner Zend Con 2008
Joe Staner Zend Con 2008
 

Destacado

Destacado (20)

FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacija
 
JavaCro'14 - Automatic database migrations – Marko Elezović
JavaCro'14 - Automatic database migrations – Marko ElezovićJavaCro'14 - Automatic database migrations – Marko Elezović
JavaCro'14 - Automatic database migrations – Marko Elezović
 
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
 
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir DžaferovićJavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
 
JavaCro'14 - Profile any environment with Java Flight Recorder – Johan Janssen
JavaCro'14 - Profile any environment with Java Flight Recorder – Johan JanssenJavaCro'14 - Profile any environment with Java Flight Recorder – Johan Janssen
JavaCro'14 - Profile any environment with Java Flight Recorder – Johan Janssen
 
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav RešetarJavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
 
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
 
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija KranjecJavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
 
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
 
JavaCro'14 - Going Digital with Java EE - Peter Pilgrim
JavaCro'14 - Going Digital with Java EE - Peter PilgrimJavaCro'14 - Going Digital with Java EE - Peter Pilgrim
JavaCro'14 - Going Digital with Java EE - Peter Pilgrim
 
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
 
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
 
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
 
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan RagužJavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
 
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad PećanacJavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
 
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
 
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - Vaadin scalability myth – Gordan IvanovićJavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
 
JavaCro'14 - WebSockets and OpenLayers joined with Spring – Bojan Kljajin
JavaCro'14 - WebSockets and OpenLayers joined with Spring – Bojan KljajinJavaCro'14 - WebSockets and OpenLayers joined with Spring – Bojan Kljajin
JavaCro'14 - WebSockets and OpenLayers joined with Spring – Bojan Kljajin
 
JavaCro'14 - GWT rebooted – Gordan Krešić
JavaCro'14 - GWT rebooted – Gordan KrešićJavaCro'14 - GWT rebooted – Gordan Krešić
JavaCro'14 - GWT rebooted – Gordan Krešić
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 

Similar a JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to run offline – Matija Tomašković and Daniel Strmečki

salah atwa (Java Developer )
salah atwa (Java Developer )salah atwa (Java Developer )
salah atwa (Java Developer )
salah atwa
 
Karl-Grittner-Resume
Karl-Grittner-ResumeKarl-Grittner-Resume
Karl-Grittner-Resume
karl grittner
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
Mihai Corlan
 

Similar a JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to run offline – Matija Tomašković and Daniel Strmečki (20)

Jws masterclass progressive web apps
Jws masterclass progressive web appsJws masterclass progressive web apps
Jws masterclass progressive web apps
 
AWS Tech Summit - Berlin 2011 - Running Java Applications on AWS
AWS Tech Summit - Berlin 2011 - Running Java Applications on AWSAWS Tech Summit - Berlin 2011 - Running Java Applications on AWS
AWS Tech Summit - Berlin 2011 - Running Java Applications on AWS
 
salah atwa (Java Developer )
salah atwa (Java Developer )salah atwa (Java Developer )
salah atwa (Java Developer )
 
Sap mobility training
Sap mobility trainingSap mobility training
Sap mobility training
 
Sap mobility training
Sap mobility trainingSap mobility training
Sap mobility training
 
App developer as a Web developer (ROROSyd - Jul 15)
App developer as a Web developer (ROROSyd - Jul 15)App developer as a Web developer (ROROSyd - Jul 15)
App developer as a Web developer (ROROSyd - Jul 15)
 
Force.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionForce.com Canvas - a Quick Introduction
Force.com Canvas - a Quick Introduction
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
 
Centric - PWA WebCast
Centric - PWA WebCastCentric - PWA WebCast
Centric - PWA WebCast
 
Ali Ali
Ali AliAli Ali
Ali Ali
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle Keynote
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Connfa! Progressive web app
Connfa! Progressive web appConnfa! Progressive web app
Connfa! Progressive web app
 
Virendra Jain Portfolio
Virendra Jain PortfolioVirendra Jain Portfolio
Virendra Jain Portfolio
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic Framework
 
Portal at the Speed of Light
Portal at the Speed of LightPortal at the Speed of Light
Portal at the Speed of Light
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 
Karl-Grittner-Resume
Karl-Grittner-ResumeKarl-Grittner-Resume
Karl-Grittner-Resume
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocks
 

Más de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 

Más de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to run offline – Matija Tomašković and Daniel Strmečki

  • 1. Hibridne aplikacije - Upogonite Java web aplikaciju na Androidu da radi offline Matija TomaškovićMatija Tomašković Daniel Strmečki POSLOVNE WEB APLIKACIJE13.05.2014.
  • 2. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Java web aplikacije - arhitektura Web browser Web application server Database SQL Java Servlet POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr2 | 13.05.2014. SQL DB Java web app WAR Servlet server
  • 3. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE KORAK 1 - prilagodba dizajna Desktop Mobile POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr3 | 13.05.2014. Ne zaboraviti: responsive design / CSS
  • 4. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE APK KORAK 2 – pakiranje linka WebView Icon Name URL Web application server Servlet server Java web app WAR SQL DB POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr4 | 13.05.2014. WebView server WAR DB
  • 5. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE KORAK 2 – pakiranje linka Android SDK Tools android update project Apache Ant POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr5 | 13.05.2014. Android Base Wrapper Apache Ant ant clean ant release
  • 6. DEMO Pakiranje linka POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr Pakiranje linka
  • 7. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE APK KORAK 3 – izlaganje native funkcionalnosti WebView Icon Name URL Web application Servlet server Java web app WAR SQL DB POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr7 | 13.05.2014. WebView JavaScript proxy Native features server WAR DB
  • 8. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE KORAK 3 – izlaganje native funkcionalnosti POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr8 | 13.05.2014.
  • 9. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE APK KORAK 4 – offline deployment WebView Icon Name URL Web application Servlet server Java web app WAR SQL DB POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr9 | 13.05.2014. WebView JavaScript proxy Native features server WAR DB
  • 10. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE APK KORAK 4 – offline deployment WebView Icon Name URL Servlet server Java web app WAR SQL DB POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr10 | 13.05.2014. WebView JavaScript proxy Native features server WAR DB SYNC sa online sustavom
  • 11. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE KORAK 4 – offline deployment implements / extends POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr11 | 13.05.2014.
  • 12. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE KORAK 4 – offline deployment Instancira EF AppServlet Binda listening socket Context path "/evolution_framework" Webapp dir Započinje listening loop Instancira ServletConfig POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr12 | 13.05.2014. Create ServletContext instance listening loop
  • 13. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE KORAK 4 – offline deployment Starta thread Referenca na input/output Instanca HttpServletRequest Instanca HttpServletResponse POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr13 | 13.05.2014. Čita HTTP request: GET/POST line, HTTP header, content input/output socket streams a) šalje resource file b) poziva servlet doGet/doPost Servlet piše u ServletOutputStream Šalje HTTP header i content
  • 14. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Offline webapp wrapper – on desktop Priprema Java web aplikacije compile & create JAR Java classes & EF modules zip EF java web app copy app package POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr14 | 13.05.2014. EF Offline Wrapper Builder android update project SDK Tools & Ant add to base wrapper ant clean, ant release zip EF java web app Android Base Wrapper
  • 15. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE JARs APK build create copy classpath POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr15 | 13.05.2014. APK Assets copy build deploy zip copy
  • 16. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Offline webapp wrapper – on Android device Kopiranje APK na Android Web app funkcionira offline Samo Ako nije pokrenut POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr16 | 13.05.2014. Instalacija APK Poketanje EF mobile wrapper app Unzip EF web app Start servlet server Samo inicijalno
  • 17. DEMO Offline Java web aplikacija POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr Offline Java web aplikacija
  • 18. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Zaključak bazirani na istom engine, Chromium od Android 4.4., HTML 5 support WebView je po defaultu ograničen, potrebno ga je podesiti prema potrebama za rad sa učitavanjem stranica, formama – koristiti WebViewClient za napredniji rad sa JS i eventima – koristiti WebChromeClient pure Java baza: HSQLDB WebView vs Chrome POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr18 | 13.05.2014.
  • 19. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Zaključak POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr19 | 13.05.2014.
  • 20. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Zaključak POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr20 | 13.05.2014.
  • 21. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Zaključak <button type="button" value="someValue" JS -> Java POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr21 | 13.05.2014. <button type="button" value="someValue" onclick="window.ok.performClick(this.value);">OK</button> Java -> JS
  • 22. HIBRIDNE APLIKACIJE - UPOGONITE JAVA WEB APLIKACIJU NA ANDROIDU DA RADI OFFLINE Zaključak bolja ergonomija pokretanja prisutnost na marketu izbjegava se dupli razvoj istih funkcionalnosti u web i native mobile obliku (barem duplo) manji troškovi razvoja manji potrebni know-how moguće je napraviti native wrappere za više platformi, iskoristive za više web aplikacija mogu se iskoristiti native funkcionalnosti uređaja može se iskoristiti snagu HTMLa(5), JavaScripta, CSSa ZA HIBRIDNE APLIKACIJE: POSLOVNE WEB APLIKACIJE | info@evolva.hr | www.evolva.hr22 | 13.05.2014. može se iskoristiti snagu HTMLa(5), JavaScripta, CSSa mogući offline deployment Java web aplikacija na Androidu PROTIV: performanse ergonomske prilagodbe / responsive design drag'n'drop doubleclick treba napisati native wrapper za offline aplikacije staviti u pogon (svoj/3rd party) Android servlet server