$30 off During Our Annual Pro Sale. View Details »

Mettre en place une application Android en 50 minutes

Mettre en place une application Android en 50 minutes

Cette présentation a été faite dans le cadre de la première édition ITogo.conf. Le but est de revenir sur les bases d'Android et montrer comment créer en live une application en Kotlin.

Dev-Mind

June 11, 2018
Tweet

More Decks by Dev-Mind

Other Decks in Technology

Transcript

  1. @guillaumeehret
    50 minutes pour
    créer une app Android
    9 juin 2018

    View Slide

  2. @guillaumeehret
    La plateforme
    Android

    View Slide

  3. @guillaumeehret
    Android est l’OS le plus utilisé
    Données en Afrique
    Avril 2018

    View Slide

  4. @guillaumeehret
    Android sur 80% des OS mobiles
    Données en Afrique
    Avril 2018

    View Slide

  5. @guillaumeehret
    Présent sur de nombreux devices

    View Slide

  6. @guillaumeehret
    Des capteurs de plus en plus nombreux
    Camera
    Podomètre
    Luminosité
    Thermomètre
    Microphone
    Capteur empreinte
    Accéléromètre
    Magnétomètre
    Capteur proximité
    Gyroscope
    Prise de pouls
    Reconnaissance gestuelle
    Baromètre
    ...

    View Slide

  7. @guillaumeehret
    Wear OS
    Montres...
    Android Things
    Pour l’IOT
    Android TV
    Pour le salon
    consoles, TV
    Android Auto
    Pour les voitures
    autonomes ou
    non
    Chrome OS
    Déployer sur ce
    nouvel OS
    Plusieurs plateformes
    Android JetPack
    Librairies et utilitaires
    pour simplifier le dev

    View Slide

  8. @guillaumeehret
    Construit sur un noyau Linux
    Linux Kernel
    Hardware Abtraction Layer (HAL)
    Native C/C++
    librairies
    Android Runtime
    (ART)
    Java / Kotlin API Framework
    System apps User apps

    View Slide

  9. @guillaumeehret
    Développer une application
    User apps

    View Slide

  10. @guillaumeehret
    User apps
    .dex
    Ressources
    & Librairies
    APK
    compile assemble
    push
    PROD
    push DEV
    via ADB
    Packager une application

    View Slide

  11. @guillaumeehret
    Installation application
    Android Runtime
    (ART)
    run
    dex2oat
    User apps
    APK
    .dex
    Ressources
    & Librairies
    .oat

    View Slide

  12. @guillaumeehret
    Installation application
    Android Runtime
    (ART)
    run
    dex2oat
    User apps
    APK
    .dex
    Ressources
    & Librairies
    .oat
    APP
    Linux Kernel
    Hardware Abtraction Layer (HAL)
    Native C/C++
    librairies
    Android Runtime
    (ART)
    Java / Kotlin API Framework
    System apps User apps

    View Slide

  13. @guillaumeehret
    Ress &
    Librairies
    .oat
    APP
    Ress &
    Librairies
    .oat
    APP
    La sécurité s’appuie sur Linux

    View Slide

  14. @guillaumeehret
    Application A ne peut pas ...
    Lire les données
    Utiliser la mémoire
    Utiliser les ressources CPU
    Utiliser les devices
    … de l’application B
    Ress &
    Librairies
    .oat
    APP
    Isolation des applications
    Ress &
    Librairies
    .oat
    APP

    View Slide

  15. @guillaumeehret
    Application A interagit avec l’application B
    vous devez spécifier
    votre intention via une intent
    (ouvrir un composant,
    envoyer un message…)
    Communication via des messages
    Ress &
    Librairies
    .oat
    APP
    Ress &
    Librairies
    .oat
    APP

    View Slide

  16. @guillaumeehret
    Cupcake
    1.5 / Api 3
    2009
    Donut
    1.6 / Api 4
    2009
    Eclair
    2.0 - 2.1 / Api 5-7
    2010
    Froyo
    2.2 / Api 8
    2011
    Gingerbread
    2.3 / Api 9-10
    2011
    Honeycomb
    3.0-3.2 / Api 11-13
    2011
    Ice Cream
    Sandwich
    4.0 / Api 14-15
    2011
    Jelly Bean
    4.1-4.3 / Api 16-18
    2012
    Kit Kat
    4.4 / Api 19-20
    2013
    Lolipop
    5.0-5.1 / Api 21
    2014
    Marshmallow
    6.0 / Api 22
    2015
    Nougat
    7.0-7.1 / Api 23
    2016
    Oreo
    8.0-8.1 / Api 24
    2017
    P
    9.0 / Api 25
    2018
    Une version par an

    View Slide

  17. @guillaumeehret
    Fragmentation versions
    Nougat
    7.0-7.1 / Api 23
    2016
    Marshmallow
    6.0 / Api 22
    2015
    Lolipop
    5.0-5.1 / Api 21
    2014
    Kit Kat
    4.4 / Api 19-20
    2013
    Oreo
    8.0-8.1 / Api 24
    2017
    Source : Android dashboard
    Mai 2018

    View Slide

  18. @guillaumeehret
    Fragmentation taille écran
    Source : Android dashboard
    Mai 2018

    View Slide

  19. @guillaumeehret
    Fragmentation densité
    Source : Android dashboard
    Mai 2018
    ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total
    Small 0.40% 0.10% 0.50%
    Normal 0.90% 0.30% 27.30% 39.30% 23.30% 91.10%
    Large 2.40% 1.50% 0.40% 0.70% 0.50% 5.50%
    Xlarge 1.80% 0.60% 0.50% 2.90%
    Total 0.40% 5.10% 1.80% 28.30% 40.50% 23.90% 100.00%

    View Slide

  20. @guillaumeehret
    Créer une application
    en 50 minutes

    View Slide

  21. @guillaumeehret
    https://www.dev-mind.fr

    View Slide

  22. @guillaumeehret

    View Slide

  23. #WebPerformance / 9 juin 2018
    @guillaumeehret
    @guillaumeehret
    #WebPerformance / 9 juin 2018
    https://www.dev-mind.fr
    Développement
    Formations

    View Slide

  24. @guillaumeehret
    Développer en

    View Slide

  25. @guillaumeehret
    https://developer.android.com/studio/

    View Slide

  26. @guillaumeehret
    Le but de Kotlin est de rendre les développements
    plus rapides et plus simples en poussant l’expressivité
    Kotlin se base sur la JVM et est complètement
    interopérable avec Java

    View Slide

  27. @guillaumeehret
    Live coding

    View Slide

  28. @guillaumeehret
    Kotlin simplifie la syntaxe
    Immutabilité
    Adieu les null pointers
    Paramètres par défaut
    Data class
    Extensions de fonction
    Fonctions d’ordre supérieur
    Intérêt de Kotlin

    View Slide

  29. @guillaumeehret
    Créer une
    application Android

    View Slide

  30. @guillaumeehret
    Les points d’entrées
    Activité Services Content
    providers
    Broadcast
    providers

    View Slide

  31. @guillaumeehret
    Créer une activité
    Activité
    Décrire la vue dan un layout
    Un layout se définit en XML
    Créer une activité
    Classe Java qui va hériter de AppCompatActivity
    Lier l’activité à la vue
    Se fait dans le onCreate de l’activité
    Déclarer la vue comme point d’entrée
    Mise à hour du fichier AndroidManifest.xml

    View Slide

  32. @guillaumeehret
    Cycle de vie d’une activité
    simplifié
    Created
    Started
    visible
    Paused
    Visible partiellement
    Stopped
    masqué
    Resumed
    visible
    onCreate()
    onStart()
    onStart()
    onRestart()
    onResume()
    onPause()
    onResume()
    onStop()
    onDestroy()

    View Slide

  33. @guillaumeehret
    Live coding

    View Slide

  34. @guillaumeehret
    Les ressources
    Toutes les ressources statiques ou dépendant du
    device (taille, réseau, pays, langue, orientation…)
    doivent être isolées dans des fichiers
    Android chargera les bonnes
    ressources en fonction des contraintes
    du device
    Color
    Drawable
    Font
    Layout
    Menu
    Mipmap
    String
    Values

    View Slide

  35. @guillaumeehret
    Les layouts
    Définit la structure d’une interface utilisateur
    Revient à placer des widgets (View) dans des layouts (ViewGroup)
    ViewGroup
    principal
    ViewGroup
    View View
    View View

    View Slide

  36. @guillaumeehret
    Créer une
    application Android
    en 50 min
    ou presque

    View Slide

  37. @guillaumeehret
    Android Studio en action
    Les ressources
    Layout
    Le fichier manifest
    Activités
    Intent
    Ma première application

    View Slide

  38. @guillaumeehret
    https://github.com/Dev-Mind/kotlinInAction
    https://github.com/Dev-Mind/androidInAction
    https://developer.android.com/
    https://developers.google.com/training
    Thanks

    View Slide

  39. @guillaumeehret
    Fragments
    Activité A contient
    les fragments A et B
    Activité A contient
    le fragment A
    Activité B contient
    le fragment B
    La sélection d’un item à gauche met à
    jour le fragment B à droite
    La sélection d’un item à gauche ouvre
    l’activité B

    View Slide