SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Caught between fires: the disillusion of the
             HTML5 promises on Android

                                     Mahdi Njim
                                       DISYCS
Great times
▸   It’s great to be a programmer these days
▸   Users want rich applications
▸   Many platforms and technology to consider in order
    to deliver this great experience
▸   This age's dilemma: Web or App
Web or App is NOT the Real Problem
▸   Many reduce the problem to whether you should
    have m.youapp.xy or App Store/Google play App
▸   This is more a strategically point of view
▸   It’s better to have both!
Why you should have an App
▸   Angry birds made 5 million downloads in less than
    two years, Super Mario sold only 3 million including
    all versions
▸   Great statistics tools
▸   Mobile is more used than ever
▸   Reach more people
Why you should have a mobile web
▸   The browser is already making success in the pc
    world
▸   Web provides a well known experience
▸   People demand it
▸   Use it for different scenarios
▸   m.facebook is used more than all the Facebook
    native apps together
So what is the real problem



        Do I create my app using
            Objective C/Java
                    or
using HTML5+CSS3+Javascript+Phonegap?
The answer is HARD



             Let me tell my
                  Story
             and you decide
The Story Begins
▸   Big application, Time to market pressure, Customer
    requires three versions of the app IOS, Android and
    web
▸   A science-fiction design and in love with Web
▸   Decision made “We are not sure but we are going for
    HTML5”
The arguments and the dream
▸   HTML5 is cross platform, the browser is like the JVM
    back in the days
▸   Phonegap is really great and supports many features
▸   We already have the web experience (using HTML,
    CSS and Javascript)
▸   Everyone is talking about The shift towards Web!
▸   If things didn’t go well, that’s ok we will end up with
    web browser version (we need it anyway)

                   The Dream:
       Having three great versions at a time
Phonegap supported features
We used Sencha and we enjoyed it
▸   Sencha is an open source framework for building
    HTML5 applications
▸   Sencha looked mature and well documented
▸   It uses MVC design pattern
▸   It’s great for developers who used to develop with
    C#/java
▸   Friendly support team
▸   Decent community
▸   Unit tests supported (new feature)
30 days of happens
▸   The best part was using CSS3 to apply the design: it
    was easy to use,
▸   The same Design would have needed thousands of
    lines of XML code
▸   We noticed some performance issues, but we said it
    will go away in the production version “hopefully”.


                         u ght ys!!!
                   ly tho 0 da
              eal just 3
           e r in
          W
            d e it
          ma
       we
The Dream becomes a nightmare
▸   The performance issue still there after production
    build
▸   And becomes a real nightmare …



          Performance is the real Problem
So we start a 60+ optimization phase
▸   All good practices (Cache, modified CSS files,
    modified Javascript, HTML5 manifest…)
▸   Events
▸   Drawing
▸   Animations
▸   Code execution
▸   And DOM DOM DOM!!!
Keep The DOM light
▸   Complex DOM kills memory
▸   Use the little screen of the smartphone and kill all the
    unused views
Events
▸   Javascript events also eat a lot of memory, remove
    any unused events
Drawing
▸   The use of the GPU by the web browser still not very
    optimized
▸   Don’t use CSS3 advanced new features (opacity,
    border-radius, gradients, text shadow and box
    shadow..)
▸   All the drawing is handled by the CPU
▸   Use images instead and accept lower quality of
    images
Pagination and User Illusion

▸   Use pagination
▸   Use lazy loading




▸ When navigating between
Views display an empty view and
A loading wheel, it gives the user
A better feeling
Code execution
▸   The CPU is really powerful, don’t look for the usual
    suspects
▸   All in the size, try to make your Javascript code as
    tiny as possible
▸   Use shorthand techniques, they are useful
iPhone good friend,Android is still killing us!!
▸   Optimization efforts really useful, the application works
    great on PC, iPhone 4 and +
▸   The application was not bad on advanced devices but
    clumsy on low devices and again: Android device
    fragmentation makes life harder!
▸   Developing for Android browsers is like developing for
    IE6
▸   Strange behavior with forms and Javascript injection
▸   The next updated version will make things even worst
▸   We spent the same effort optimizing that probably would
    have been needed for two native Apps!
The bonuses …
▸   Application works great on iPhone, iPad and many
    android phones and tablets
▸   Mobile web version
▸   With a crazy idea, PC version too
▸   But the best BONUS was…
Adding new features:
▸   One implementation worked for all platforms
When to use HTML5
▸   If you have a small application
▸   If you have a tight schedule and limited resources
▸   If you like to get all the bonuses of HTML5 AND
    ready to take the challenge
▸   You can use a hybrid application (LinkedIn) but it
    requires advanced knowledge
What can the Android community do
▸   It can fight the HTML5 and kill it, claiming that only
    way to develop for android is by using Android SDK

The good way would however be to:

▸   Keep enhancing the browsers and the web
    experience on mobiles
Thanks you for your attention

                       Mahdi Njim
                       Disycs SARL
                       njimmahdi@disycs.com
                       +216 21 082 206
                       www.disycs.com

Contenu connexe

Tendances

Whatever happened to Progressive Enhancement?
Whatever happened to Progressive Enhancement?Whatever happened to Progressive Enhancement?
Whatever happened to Progressive Enhancement?Cole Henley
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way… Christian Heilmann
 
How to manage your Design Process and Heuristic Evaluation Presentation
How to manage your Design Process and Heuristic Evaluation PresentationHow to manage your Design Process and Heuristic Evaluation Presentation
How to manage your Design Process and Heuristic Evaluation PresentationBella Dwi Jayanti
 
Html5 presentation slides
Html5 presentation slidesHtml5 presentation slides
Html5 presentation slideswebwizart
 
Build a better(reactive) word press
Build a better(reactive) word pressBuild a better(reactive) word press
Build a better(reactive) word pressBhushan Jawle
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftChristian Heilmann
 

Tendances (8)

Whatever happened to Progressive Enhancement?
Whatever happened to Progressive Enhancement?Whatever happened to Progressive Enhancement?
Whatever happened to Progressive Enhancement?
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way…
 
How to manage your Design Process and Heuristic Evaluation Presentation
How to manage your Design Process and Heuristic Evaluation PresentationHow to manage your Design Process and Heuristic Evaluation Presentation
How to manage your Design Process and Heuristic Evaluation Presentation
 
Html5 presentation slides
Html5 presentation slidesHtml5 presentation slides
Html5 presentation slides
 
Build a better(reactive) word press
Build a better(reactive) word pressBuild a better(reactive) word press
Build a better(reactive) word press
 
MailXpert API bundle
MailXpert API bundleMailXpert API bundle
MailXpert API bundle
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
How to manage your web agency as a client
How to manage your web agency as a clientHow to manage your web agency as a client
How to manage your web agency as a client
 

En vedette

Sony working with sony and developing for xperia devices
Sony   working with sony and developing for xperia devicesSony   working with sony and developing for xperia devices
Sony working with sony and developing for xperia devicesDroidcon Berlin
 
Droidcon2013 baa s_kohl_apiomat
Droidcon2013 baa s_kohl_apiomatDroidcon2013 baa s_kohl_apiomat
Droidcon2013 baa s_kohl_apiomatDroidcon Berlin
 
Droidcon ndk cpu_architecture_optimization
Droidcon ndk cpu_architecture_optimizationDroidcon ndk cpu_architecture_optimization
Droidcon ndk cpu_architecture_optimizationDroidcon Berlin
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon Berlin
 
Droidcon 2011: Strategies for Android, Henning Boeger, Capgemini
Droidcon 2011: Strategies for Android, Henning Boeger, CapgeminiDroidcon 2011: Strategies for Android, Henning Boeger, Capgemini
Droidcon 2011: Strategies for Android, Henning Boeger, CapgeminiDroidcon Berlin
 
20130409 1 developing apps for android with kivy
20130409 1 developing apps for android with kivy20130409 1 developing apps for android with kivy
20130409 1 developing apps for android with kivyDroidcon Berlin
 

En vedette (7)

Zertisa
ZertisaZertisa
Zertisa
 
Sony working with sony and developing for xperia devices
Sony   working with sony and developing for xperia devicesSony   working with sony and developing for xperia devices
Sony working with sony and developing for xperia devices
 
Droidcon2013 baa s_kohl_apiomat
Droidcon2013 baa s_kohl_apiomatDroidcon2013 baa s_kohl_apiomat
Droidcon2013 baa s_kohl_apiomat
 
Droidcon ndk cpu_architecture_optimization
Droidcon ndk cpu_architecture_optimizationDroidcon ndk cpu_architecture_optimization
Droidcon ndk cpu_architecture_optimization
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenberg
 
Droidcon 2011: Strategies for Android, Henning Boeger, Capgemini
Droidcon 2011: Strategies for Android, Henning Boeger, CapgeminiDroidcon 2011: Strategies for Android, Henning Boeger, Capgemini
Droidcon 2011: Strategies for Android, Henning Boeger, Capgemini
 
20130409 1 developing apps for android with kivy
20130409 1 developing apps for android with kivy20130409 1 developing apps for android with kivy
20130409 1 developing apps for android with kivy
 

Similaire à Caught between fires html5 mahdi_njim

"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...Tech in Asia ID
 
Responsive Design: The "other" way of doing mobile sites.
Responsive Design: The "other" way of doing mobile sites.Responsive Design: The "other" way of doing mobile sites.
Responsive Design: The "other" way of doing mobile sites.meetmicah
 
Tk2323 lecture 1 introduction to mobile application
Tk2323 lecture 1   introduction to mobile applicationTk2323 lecture 1   introduction to mobile application
Tk2323 lecture 1 introduction to mobile applicationMengChun Lam
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...GreeceJS
 
The Web Platform - State of the Union '17
The Web Platform - State of the Union '17The Web Platform - State of the Union '17
The Web Platform - State of the Union '17Abdelrahman Omran
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...
Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...
Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...Doug Gapinski
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Dave Olsen
 
Using Responsive Web Design To Make Your Web Work Everywhere
Using Responsive Web Design To Make Your Web Work EverywhereUsing Responsive Web Design To Make Your Web Work Everywhere
Using Responsive Web Design To Make Your Web Work EverywhereChris Love
 
Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Christian Heilmann
 
Mobile App vs Mobile Web Development
Mobile App vs Mobile Web DevelopmentMobile App vs Mobile Web Development
Mobile App vs Mobile Web DevelopmentTAG_education
 
Dos & Donts when making Technology choices
Dos & Donts when making Technology choicesDos & Donts when making Technology choices
Dos & Donts when making Technology choicesVinci Rufus
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapGautam Chaudhary
 
Navigating the Mobile maze
Navigating the Mobile mazeNavigating the Mobile maze
Navigating the Mobile mazePraveen Bohra
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013Achieve Internet
 
How to deal with Fragmentation on Android
How to deal with Fragmentation on AndroidHow to deal with Fragmentation on Android
How to deal with Fragmentation on AndroidSittiphol Phanvilai
 

Similaire à Caught between fires html5 mahdi_njim (20)

"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
 
Responsive Design: The "other" way of doing mobile sites.
Responsive Design: The "other" way of doing mobile sites.Responsive Design: The "other" way of doing mobile sites.
Responsive Design: The "other" way of doing mobile sites.
 
Tk2323 lecture 1 introduction to mobile application
Tk2323 lecture 1   introduction to mobile applicationTk2323 lecture 1   introduction to mobile application
Tk2323 lecture 1 introduction to mobile application
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
The Web Platform - State of the Union '17
The Web Platform - State of the Union '17The Web Platform - State of the Union '17
The Web Platform - State of the Union '17
 
State of the WEB ‘18
State of the WEB ‘18State of the WEB ‘18
State of the WEB ‘18
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...
Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...
Everything You Know is Not Quite Right Anymore: Rethinking Best Web Practices...
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
 
Using Responsive Web Design To Make Your Web Work Everywhere
Using Responsive Web Design To Make Your Web Work EverywhereUsing Responsive Web Design To Make Your Web Work Everywhere
Using Responsive Web Design To Make Your Web Work Everywhere
 
Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016
 
Mobile App vs Mobile Web Development
Mobile App vs Mobile Web DevelopmentMobile App vs Mobile Web Development
Mobile App vs Mobile Web Development
 
Dos & Donts when making Technology choices
Dos & Donts when making Technology choicesDos & Donts when making Technology choices
Dos & Donts when making Technology choices
 
Uxperts mobi 2013 soa & challenges
Uxperts mobi 2013   soa & challengesUxperts mobi 2013   soa & challenges
Uxperts mobi 2013 soa & challenges
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with Phonegap
 
Navigating the Mobile maze
Navigating the Mobile mazeNavigating the Mobile maze
Navigating the Mobile maze
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013
 
Mobile UX Challenges
Mobile UX ChallengesMobile UX Challenges
Mobile UX Challenges
 
Mobile ux sot a and challenges
Mobile ux sot a and challengesMobile ux sot a and challenges
Mobile ux sot a and challenges
 
Developing windows 8 apps
Developing windows 8 appsDeveloping windows 8 apps
Developing windows 8 apps
 
How to deal with Fragmentation on Android
How to deal with Fragmentation on AndroidHow to deal with Fragmentation on Android
How to deal with Fragmentation on Android
 

Plus de Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google castDroidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 

Plus de Droidcon Berlin (20)

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 

Dernier

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 WorkerThousandEyes
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
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 Takeoffsammart93
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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.pdfsudhanshuwaghmare1
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Dernier (20)

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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Caught between fires html5 mahdi_njim

  • 1. Caught between fires: the disillusion of the HTML5 promises on Android Mahdi Njim DISYCS
  • 2. Great times ▸ It’s great to be a programmer these days ▸ Users want rich applications ▸ Many platforms and technology to consider in order to deliver this great experience ▸ This age's dilemma: Web or App
  • 3. Web or App is NOT the Real Problem ▸ Many reduce the problem to whether you should have m.youapp.xy or App Store/Google play App ▸ This is more a strategically point of view ▸ It’s better to have both!
  • 4. Why you should have an App ▸ Angry birds made 5 million downloads in less than two years, Super Mario sold only 3 million including all versions ▸ Great statistics tools ▸ Mobile is more used than ever ▸ Reach more people
  • 5.
  • 6. Why you should have a mobile web ▸ The browser is already making success in the pc world ▸ Web provides a well known experience ▸ People demand it ▸ Use it for different scenarios ▸ m.facebook is used more than all the Facebook native apps together
  • 7. So what is the real problem Do I create my app using Objective C/Java or using HTML5+CSS3+Javascript+Phonegap?
  • 8. The answer is HARD Let me tell my Story and you decide
  • 9. The Story Begins ▸ Big application, Time to market pressure, Customer requires three versions of the app IOS, Android and web ▸ A science-fiction design and in love with Web ▸ Decision made “We are not sure but we are going for HTML5”
  • 10. The arguments and the dream ▸ HTML5 is cross platform, the browser is like the JVM back in the days ▸ Phonegap is really great and supports many features ▸ We already have the web experience (using HTML, CSS and Javascript) ▸ Everyone is talking about The shift towards Web! ▸ If things didn’t go well, that’s ok we will end up with web browser version (we need it anyway) The Dream: Having three great versions at a time
  • 12. We used Sencha and we enjoyed it ▸ Sencha is an open source framework for building HTML5 applications ▸ Sencha looked mature and well documented ▸ It uses MVC design pattern ▸ It’s great for developers who used to develop with C#/java ▸ Friendly support team ▸ Decent community ▸ Unit tests supported (new feature)
  • 13. 30 days of happens ▸ The best part was using CSS3 to apply the design: it was easy to use, ▸ The same Design would have needed thousands of lines of XML code ▸ We noticed some performance issues, but we said it will go away in the production version “hopefully”. u ght ys!!! ly tho 0 da eal just 3 e r in W d e it ma we
  • 14. The Dream becomes a nightmare ▸ The performance issue still there after production build ▸ And becomes a real nightmare … Performance is the real Problem
  • 15. So we start a 60+ optimization phase ▸ All good practices (Cache, modified CSS files, modified Javascript, HTML5 manifest…) ▸ Events ▸ Drawing ▸ Animations ▸ Code execution ▸ And DOM DOM DOM!!!
  • 16. Keep The DOM light ▸ Complex DOM kills memory ▸ Use the little screen of the smartphone and kill all the unused views
  • 17. Events ▸ Javascript events also eat a lot of memory, remove any unused events
  • 18. Drawing ▸ The use of the GPU by the web browser still not very optimized ▸ Don’t use CSS3 advanced new features (opacity, border-radius, gradients, text shadow and box shadow..) ▸ All the drawing is handled by the CPU ▸ Use images instead and accept lower quality of images
  • 19. Pagination and User Illusion ▸ Use pagination ▸ Use lazy loading ▸ When navigating between Views display an empty view and A loading wheel, it gives the user A better feeling
  • 20. Code execution ▸ The CPU is really powerful, don’t look for the usual suspects ▸ All in the size, try to make your Javascript code as tiny as possible ▸ Use shorthand techniques, they are useful
  • 21. iPhone good friend,Android is still killing us!! ▸ Optimization efforts really useful, the application works great on PC, iPhone 4 and + ▸ The application was not bad on advanced devices but clumsy on low devices and again: Android device fragmentation makes life harder! ▸ Developing for Android browsers is like developing for IE6 ▸ Strange behavior with forms and Javascript injection ▸ The next updated version will make things even worst ▸ We spent the same effort optimizing that probably would have been needed for two native Apps!
  • 22. The bonuses … ▸ Application works great on iPhone, iPad and many android phones and tablets ▸ Mobile web version ▸ With a crazy idea, PC version too ▸ But the best BONUS was…
  • 23. Adding new features: ▸ One implementation worked for all platforms
  • 24. When to use HTML5 ▸ If you have a small application ▸ If you have a tight schedule and limited resources ▸ If you like to get all the bonuses of HTML5 AND ready to take the challenge ▸ You can use a hybrid application (LinkedIn) but it requires advanced knowledge
  • 25. What can the Android community do ▸ It can fight the HTML5 and kill it, claiming that only way to develop for android is by using Android SDK The good way would however be to: ▸ Keep enhancing the browsers and the web experience on mobiles
  • 26. Thanks you for your attention Mahdi Njim Disycs SARL njimmahdi@disycs.com +216 21 082 206 www.disycs.com