Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Comment Ionic vous aide

Comment Ionic vous aide

à améliorer la performance de vos applications mobiles

Marek Kalnik

April 14, 2015
Tweet

More Decks by Marek Kalnik

Other Decks in Programming

Transcript

  1. MAREK KALNIK • @marekkalnik • cofondateur et CTO de BAM

    (@bam_lab) • architecte Theodo pendant 4 ans
  2. 300 MS CLICK DELAY • L’utilisateur touche l’écran - touchstart

    • L’utilisateur lève le doigt - touchend • Le navigateur attend 300ms pour voir s’il y aura un 2eme click • Si l’utilisateur n’a pas cliqué - click
  3. 300 MS CLICK DELAY • Solution : https://github.com/driftyco/ionic/blob/master/js/utils/tap.js • déclencher

    le click lors du touchend si la distance parcourue est acceptable (12px dans chaque direction) • prévenir le ghostclick - click déclenché par le navigateur en se basant sur les coordonnées • si besoin de le désactiver : <div data-tap-disabled=“true”>…</div> • ou sinon : 
 <meta name="viewport" content="initial-scale=1, maximum-scale=1, user- scalable=no, width=device-width">
  4. SCROLLING • Ionic permet de choisir entre une solution JavaScript

    et navigateur
 <ion-view overflow-scroll=“true”>…</ion-view> • ionic.views.ScrollNative - 343 lignes • ionic.views.Scroll - 2482 lignes, basé sur Zynga Scroller
  5. SCROLLING • overflow-scroll=“true” à utiliser surtout sous Android • overflow-scroll=“false”

    (par défaut) pour avoir les animations, décélération, meilleure gestion du clavier etc.
  6. COLLECTION REPEAT • objectif : faire un ng-repeat avec le

    minimum de manipulation DOM possible • on affiche uniquement le nombre d’éléments qui rentre dans la vue + un buffer de quelques éléments • lors du scroll on déplace l’élément qui sort de l’écran et on le met en bas de la pile • on remplace le modèle de cet élément par la valeur suivante
  7. COLLECTION REPEAT ATTENTION : • les images sous iOS prennent

    du temps à se charger (50 - 150 ms par image), il faut les précharger si besoin • marche bien pour les éléments avec la taille fixe
  8. IONIC VIEW CACHE • les vues d’Ionic sont par défaut

    cachés - jusqu’à 10 views reste dans le DOM • le scope de la vue et déconnecté du cycle de $digest, par contre le scope n’est pas détruit • le controller n’est pas appelé lors de l’affichage d’une vue caché
  9. IONIC VIEW CACHE ATTENTION : • à l’utilisation de la

    mémoire (le scope n’est pas détruit !) • à bien utiliser l’événement view.enter si besoin de réinitialiser des valeurs
  10. CSS

  11. TRANSLATE3D(0, 0, 0) crée une calque dans le navigateur pour

    que les animations puissent démarrer tout de suite