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 Android JetPack Librairies et utilitaires pour simplifier le dev
Nougat 7.0-7.1 / Api 23 2016 Pie 9.0 / Api 28 2018 utilisation 0% Oreo 8.0-8.1 / Api 24 2017 Marshmallow 6.0 / Api 22 2015 Lolipop 5.0-5.1 / Api 21 2014 Kit Kat 4.4 / Api 19-20 2013 Source : Android dashboard Octobre 2018
dp= density-independent pixels pour les layouts et images sp = scalable pixels pour les fonts car s’adapte aux paramètres d'accessibilité (sp ne s’utilise pas pour les layouts)
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
Kotlin simplifie la syntaxe Immutabilité Adieu les null pointers Paramètres par défaut Data class Extensions de fonction Fonctions d’ordre supérieur Coroutines
1.0 Mise en place du projet et ressources 2.0 Premier écran, page d’accueil ConstraintLayout 3.0 Ajouter un menu 4.0 Un écran liste avec un RecyclerView 5.0 Ecran création et de modification 6.0 Utilisation de Room pour la persistance dans SQLite 7.0 Jouer avec le cycle de vie 8.0 Utiliser les ViewModel et Livedata 9.0 Mettre en place des tests d’intégration
Décrire la vue dans 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 à jour du fichier AndroidManifest.xml Activité
Définit la structure d’une interface utilisateur Revient à placer des widgets (View) dans des layouts (ViewGroup) ViewGroup principal ViewGroup View View View View
Devoxx Bienvenue à Devoxx Maroc, nous allons apprendre Android Une vue utilise différentes ressources Color Menu Drawable String Font Layout Values Mipmap ... Style
app/src/main/res/values/colors.xml @color/colorPrimary Utilisation en XML (layout, autre ressource) resources.getColor(R.color.colorPrimary) Utilisation en Kotlin (activité ou autre)
Android détecte les changements de configuration et charge les bonnes ressources au runtime - par exemple app/src/main/res/drawable/image.jpg app/src/main/res/drawable-xxhdpi/image.jpg app/src/main/res/values/colors.xml app/src/main/res/values-night/colors.xml
Ma liste List View Ma liste Item 1 Item 2 Item 3 Item 4 Item 5 Item ... Item n Layout 1 Layout 2 Layout 3 Layout 4 Layout ... Layout n Android implémente une vue pour chaque ligne de votre liste
Ma liste List View Ma liste Item 1 Item 2 Item 3 Item 4 Item 5 Item ... Item n Layout 1 Layout 2 Layout 3 Layout 4 Layout ... Layout n Android implémente une vue pour chaque ligne de votre liste
Ma liste List View Ma liste Item 1 Item 2 Item 3 Item 4 Item 5 Item ... Item n Layout 1 Layout 2 Layout 3 Layout 4 Layout 5 Layout 6 Android implémente une vue pour chaque ligne visible de votre liste et les recycle quand vous scrollez
Une coroutine est une unité de traitement permettant d’exécuter du code non-bloquant et asynchrone (thread allégé) open class MainActivity : AppCompatActivity(), CoroutineScope { override val coroutineContext: CoroutineContext get() = Dispatchers.Default override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) launch { … } } }
Inner classe non statique en Kotlin les classes nested sont par construction statiques Classes anonymes beaucoup utilisées pour la gestion des événements (penser à détruire les références) Privilegier le pattern Singleton pour vos objets communs Application context plutôt que activity context
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
INITIALIZED DESTROYED CREATED STARTED RESUMED Initial start dead state ON_PAUSE ON_STOP ON_DESTROY Rotation activité démarrée ON_CREATE ON_START ON_RESUME
https://developer.android.com/ Le site des devs android https://developers.google.com/training Des tutoriels en ligne https://androidleakspodcast.com/ Le podcast francophone