Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

@guillaumeehret La plateforme Android

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

@guillaumeehret Présent sur de nombreux devices

Slide 6

Slide 6 text

@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 ...

Slide 7

Slide 7 text

@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

Slide 8

Slide 8 text

@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

Slide 9

Slide 9 text

@guillaumeehret Développer une application User apps

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

@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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

@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

Slide 15

Slide 15 text

@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

Slide 16

Slide 16 text

@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

Slide 17

Slide 17 text

@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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

@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%

Slide 20

Slide 20 text

@guillaumeehret Créer une application en 50 minutes

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

@guillaumeehret

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

@guillaumeehret Développer en

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

@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

Slide 27

Slide 27 text

@guillaumeehret Live coding

Slide 28

Slide 28 text

@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

Slide 29

Slide 29 text

@guillaumeehret Créer une application Android

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

@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

Slide 32

Slide 32 text

@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()

Slide 33

Slide 33 text

@guillaumeehret Live coding

Slide 34

Slide 34 text

@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

Slide 35

Slide 35 text

@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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

@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