SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Rapport de
Prévention Android
Juin - 2021
V1.0 Juin 2021 – Mobile Factory
Sommaire
2
1. Le mobile et ses technologies
2. L’industrialisation
1. Socle, Forge, Gestion
3. Et le dev
1. Rex sur 5 années de projet
2. La Clean Architecture
3. Standardisation Vs Performance
4. Industrialiser le dev de feature
1. Moteur de template multi-techno
1. Android, iOS, Kmm, Flutter, …
2. Adaptable aux spécificités
5. Proposition de projet d’industrialisation du dev
Introduction
1
3
4
Suite à la conférence de la Google I/O présentant entre autres Android
12, Niji a souhaité réaliser un document regroupant les nouveautés et
les impacts potentiels sur les applications mobiles en maintenance
ou les nouvelles applications.
Introduction
Nouveautés
2
5
Nouveautés
6
Description :
• Fournit une API unifié pour gérer les insertions de contenu riche
(image, vidéo, …) depuis le presse-papier, le drag and drop et le
clavier
https://developer.android.com/about/versions/12/features/unif
ied-content-api
API d'insertion de contenu riche
Nouveautés
7
Description :
• Splash screen par défaut utilisant l'icône (animation fluide car
gérée par le système)
• Possibilité de personnaliser le splash screen (thème, propriétés
de l'animation, icône animés)
https://developer.android.com/about/versions/12/features/spl
ash-screen
API de splash screen
Nouveautés
8
Description :
• Ajout de coins arrondis
• Prise en compte des couleurs du thème
• Simplification de la personnalisation des widgets
• Ajout de nouveaux groupes de boutons
• Amélioration de la gestion des positions et dimensions
• Faciliter la gestion de sélection de widget
• Transition plus fluide vers l'application
• Simplification de l'intégration des vues complexes
https://developer.android.com/about/versions/12/features/wid
gets
Amélioration de l'API de widget
Nouveautés
9
Description :
Ajoute un écran dans les settings permettant de visualiser
l'historique des accès aux données sensibles :
• Localisation
• Camera
• Microphone
https://developer.android.com/about/versions/12/features#pr
ivacy-dashboard
Dashboard de gestion de la vie privée
Nouveautés
10
Description :
Support de filtres sur les vues :
• Flou d'arrière-plan
• Filtre de couleur
• Autres effets graphiques
Note : pas de rétrocompatibilité prévue pour le moment, le
support peut varier selon les devices
https://developer.android.com/about/versions/12/features#re
ndereffect
Nouvelle gestion des filtres de vues
Nouveautés
11
Expérience utilisateur
• Nouvelle API rounded corner permettant d'éviter qu'une vue ne soit tronquée sur les écrans arrondis
• Amélioration du mode Picture in Picture
• Ajout de la possibilité de produire des vibrations en fonction du flux audio
• Amélioration de la gestion des gestures en mode immersif
• Ajout de styles de notification d'appels en cours et entrants
• Amélioration du support des images dans les notifications
Stockage
• Ajout d'un dossier pour stocker les enregistrements audio
• Ajout de permissions de gestion des médias
• Restriction de l'accès à la gestion du stockage applicatif
Divers
Nouveautés
12
Vie privée & sécurité
• Ajout d'une permission pour pouvoir cacher les fenêtres superposées
• Ajout d'un flag pour indiquer si une notification requiert l'authentification ou non
• Ajout de permissions supplémentaires pour gérer plus finement l'accès au bluetooth
Médias
• Ajout d'un transcodage automatique des médias
• Ajout de la gestion des DRM sur les médias
• Ajout d'un classement de performance des devices en fonction de leurs capacités
Divers (2)
Nouveautés
13
Graphisme & image
• Amélioration du décodeur d’image, qui supporte désormais les animations (GIF & WebP)
• Ajout du support du format d’image AVIF (AV1 for Image Files)
Connectivité
• Simplification de la gestion des companion devices (e.g. smartwatch, etc)
• Améliorations de la gestion du Wifi-Aware / Neighbor Awareness Networking
Autres
• Ajout d’options permettant de désactiver des fonctionnalités Android 12 pour des tests de compatibilité
• Ajout d’une API pour accéder aux crashes natifs depuis l’application (i.e. sans ADB)
• Nouvelle API de gestion des cameras à ultra-haute résolution
Divers (3)
Impacts
3
14
Impacts
15
Il existe deux types d'impacts :
→ Ceux affectant toutes les applications dès lors qu'elles tournent sur un téléphone Android 12
→ Ceux affectant uniquement les applications qui ciblent Android 12 ou plus
Préambule
Impacts toutes applications
16
Description :
• Changement de l'effet du scroll en début et fin de liste
(remplacement du halo par un étirement des éléments)
Impacts :
• Vérifier le comportement des vues qui sont scrollables (surtout
si elles utilisent des comportements non standard)
https://developer.android.com/about/versions/12/overscroll
Overscroll
Impacts toutes applications
17
Description :
• Si une notification qui disparaît automatiquement reste visible moins de
10s, elle n'est pas affichée
Impacts :
• Certaines notifications transitoires peuvent ne plus apparaître
https://developer.android.com/about/versions/12/behavior-changes-
all#foreground-service-notification-delay
Notification des services de foreground
Impacts toutes applications
18
Description :
• La gestion des URLs que peut intercepter une application a
changé
Impacts :
• L'ouverture d'une URL gérée par l'application requiert la
validation du domaine par cette application. Dans le cas
contraire, l'URL sera ouverte dans le navigateur par défaut
https://developer.android.com/about/versions/12/web-intent-
resolution
Résolutions des URLs applicatives
Impacts toutes applications
19
Description :
• Ajout d'une nouvelle catégorie "Restricted", qui limite les
ressources allouées aux applications trop gourmandes
Impacts :
• Les performances des applications dispendieuses pourront être
impactées
https://developer.android.com/about/versions/12/behavior-
changes-all#restrictive-app-standby-bucket
Restriction des applications gourmandes en ressource
Impacts toutes applications
20
Description :
• La barre de statut indiquera l'activité du microphone et de la
caméra
• L'utilisateur peut désormais désactiver la caméra et le
microphone via les quick-settings
Impacts :
• Si la camera est désactivée, le flux sera vide mais l'utilisateur
aura un message système l'invitant à la réactiver
https://developer.android.com/about/versions/12/behavior-
changes-all#mic-camera-toggles
Microphone et caméra
Impacts toutes applications
21
Description :
• L'utilisateur sera averti de l'application d'origine d'un texte
copié-collé
Impacts :
• Aucun, un toast apparaitra au moment du copié-collé
https://developer.android.com/about/versions/12/behavior-
changes-all#clipboard-access-notifications
Presse-papier
Impacts toutes applications
22
• Blocage des événements de touch non légitimes
• Les applications ne peuvent plus fermer les dialogues systèmes
• Changement sur le filtrage de la liste des applications du téléphone visibles par les autres applications
• Suppression de classes de cryptographie issues de la bibliothèque Bouncy Castle
• Changements sur la gestion des portails captifs Wi-Fi
Autre impact notable, purement technique (non lié à Android 12) :
• Les références aux vues via les view synthetics (déjà dépréciées) ne seront plus supportées dans les
nouvelles versions de Kotlin (à remplacer par les view bindings). Suivant la masse de code, la migration
–bien que non complexe– peut représenter une charge importante.
Divers
Impacts applications Android 12+
23
Description :
• Les notifications utilisent désormais un template commun avec
une zone personnalisable
Impacts :
• Toutes les applications qui utilisent setCustomContentView()
doivent vérifier et adapter leurs layouts dans les différents états
(développé, réduit et flottant)
https://developer.android.com/about/versions/12/behavior-
changes-12#custom-notifications
Notifications personnalisées
Impacts applications Android 12+
24
Description :
• Pour des raisons de respect de la vie privée, la résolution des
capteurs de mouvement est bridée à 200Hz
Impacts :
• Les applications utilisant l'accéléromètre, le gyroscope et le
capteur de champ magnétique terrestre recevront moins de
valeurs
https://developer.android.com/about/versions/12/behavior-
changes-12#motion-sensor-rate-limiting
Bridage des capteurs de mouvements
Impacts applications Android 12+
25
Description :
• La gestion des cookies dans les Webview a été modifiée pour
gérer l'attribut SameSite
Impacts :
• Vérifier le bon fonctionnement des Webwiew si l'application en
utilise, et notamment toutes les transitions entre pages sécurisées
et non-sécurisées (e.g connexion, paiement)
https://developer.android.com/about/versions/12/behavior-
changes-12#samesite
Modification de la gestion des cookies
Impacts applications Android 12+
26
Description :
• Lorsque l'application demande une localisation précise,
l'utilisateur aura malgré tout la possibilité de ne fournir qu'une
localisation approximative
Impacts :
• Les applications qui demandent la permission de la localisation
précise doivent en même temps demander la localisation
approximative
• L'utilisateur pourra choisir de ne donner qu'une permission de
localisation approximative et l'application devra se comporter en
conséquence
https://developer.android.com/about/versions/12/approximate
-location
Restriction des localisations précises
Impacts applications Android 12+
27
Description :
• Si une application n'est pas utilisée pendant quelques mois, le
système réinitialise les permissions de l'application et la place en
hibernation
• L'utilisateur peut désactiver l'hibernation pour certaines
applications
Impacts :
• Dans ce mode, l'application voit son cache effacé, ne peut plus
utiliser de jobs, ni recevoir de notifications push
https://developer.android.com/about/versions/12/behavior-
changes-12#app-hibernation
Hibernation
Impacts applications Android 12+
28
Description :
• Tous les composants utilisant des intent filters doivent
désormais avoir l'attribut exported de spécifié explicitement
dans le manifest
Impacts :
• S'il n'est pas déclaré dans le manifest, l'application ne pourra pas
être installée sur Android 12
https://developer.android.com/about/versions/12/behavior-
changes-12#exported
Déclaration des composants de l'application
Impacts applications Android 12+
29
Description :
• Les pending intents, utilisés notamment pour les notifications et
les receivers d'événements, devront être déclaré mutables ou
immutables explicitement
Impacts :
• Si FLAG_MUTABLE ou FLAG_IMMUTABLE n'est pas
déclaré à la création de l'intent, celle-ci crashera
https://developer.android.com/about/versions/12/behavior-
changes-12#pending-intent-mutability
Création des pending intents
Impacts applications Android 12+
30
Description :
• Les notifications qui lancent une activité sur le tap doivent le
faire directement
Impacts :
• Si des notifications de l'application déclenchaient un service ou
un receiver d'événements qui lui-même déclenchait une activité,
cela ne fonctionnera plus
https://developer.android.com/about/versions/12/behavior-
changes-12#notification-trampolines
Notification trampoline
Impacts applications Android 12+
31
Description :
• Une application en background ne peut plus lancer de
foreground service sauf exception
Impacts :
• Si l'application appelle un service foreground depuis le
background, vérifier que le cas d'utilisation fait partie des
exceptions. Sinon, utiliser le WorkManager
https://developer.android.com/about/versions/12/foreground-
services
Restriction sur le lancement des services foreground
Impacts applications Android 12+
32
Description :
• Pour libérer de la ressource système, l'application doit demander
un accès spécial pour pouvoir utiliser l'exact alarm
Impacts :
• Les applications qui utilisent les exact alarms doivent répondre à
des use-cases très précis et demander la permission
SCHEDULE_EXACT_ALARM, autrement l'application
crashera
https://developer.android.com/about/versions/12/behavior-
changes-12#exact-alarm-permission
Permission d'alarme
Impacts applications Android 12+
33
• Restrictions des sauvegardes via ADB
• Changements sur le data access auditing API
• Fonctions de débogage lors du lancement d'intent suspect
• Support des paiements NFC avec écran éteint
• Support des connexions peer-to-peer Wi-Fi en même temps que la connexion Wi-Fi principale
• Réduction de la surface d'API du SDK
• Changements sur la sauvegarde et restauration cloud / device-to-device
Divers
Paris
Rennes
Lille
Lyon
Nantes
Bordeaux
www.niji.fr @Niji_Digital
Gabriel DUPONT
Manager Mobile Digital Experience
gabriel.dupont@niji.fr
06 28 94 64 53
Contributeurs
Sébastien GUILLEMIN
Alex LE BOUËDEC
Votre contact

Contenu connexe

Tendances

Android, historique et enjeux
Android, historique et enjeuxAndroid, historique et enjeux
Android, historique et enjeuxCrossmedias
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidSalah Gharbi
 
Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...
Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...
Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...Jonathan De Roy
 
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads France
 
Niji mobile factory - prevention application mobile android11-i os14- 06-2020
Niji   mobile factory - prevention application mobile android11-i os14- 06-2020Niji   mobile factory - prevention application mobile android11-i os14- 06-2020
Niji mobile factory - prevention application mobile android11-i os14- 06-2020Gabriel DUPONT
 
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...TelecomValley
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
Rendre accessible au mobile son application
Rendre accessible au mobile son applicationRendre accessible au mobile son application
Rendre accessible au mobile son applicationACPcef
 
Les Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobileLes Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobileMohamed BOURAOUI
 
Cahier Windows Phone 7 par Programmez
Cahier Windows Phone 7 par ProgrammezCahier Windows Phone 7 par Programmez
Cahier Windows Phone 7 par Programmezaemond
 
Présentation développement application Android
Présentation développement application AndroidPrésentation développement application Android
Présentation développement application Androidambin_fr
 
Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité
 Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité  Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité
Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité LaFrenchMobile
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutterJulien Saumande
 
Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...
Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...
Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...UADF_CEF
 
Google IO/Android Q - Nouveautés et changements 2019
Google IO/Android Q - Nouveautés et changements 2019Google IO/Android Q - Nouveautés et changements 2019
Google IO/Android Q - Nouveautés et changements 2019Niji
 
Les applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web appsLes applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web appsNeedeo
 
Les secrets du développement d'une application mobile
Les secrets du développement d'une application mobileLes secrets du développement d'une application mobile
Les secrets du développement d'une application mobileEutech SSII
 
Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents
Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents
Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents USERADGENTS
 

Tendances (20)

Android, historique et enjeux
Android, historique et enjeuxAndroid, historique et enjeux
Android, historique et enjeux
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-android
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...
Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...
Quel type de système d'exploitation mobile est-il préférable d'utiliser du po...
 
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
 
Niji mobile factory - prevention application mobile android11-i os14- 06-2020
Niji   mobile factory - prevention application mobile android11-i os14- 06-2020Niji   mobile factory - prevention application mobile android11-i os14- 06-2020
Niji mobile factory - prevention application mobile android11-i os14- 06-2020
 
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
Rendre accessible au mobile son application
Rendre accessible au mobile son applicationRendre accessible au mobile son application
Rendre accessible au mobile son application
 
Les Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobileLes Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobile
 
Cahier Windows Phone 7 par Programmez
Cahier Windows Phone 7 par ProgrammezCahier Windows Phone 7 par Programmez
Cahier Windows Phone 7 par Programmez
 
Présentation développement application Android
Présentation développement application AndroidPrésentation développement application Android
Présentation développement application Android
 
Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité
 Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité  Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité
Mettre en valeur le patrimoine applicatif de son entreprise pour la mobilité
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutter
 
Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...
Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...
Etre présent sur mobiles_Patrice de Saint-Steban_13ème rencontre des Tisseran...
 
Google IO/Android Q - Nouveautés et changements 2019
Google IO/Android Q - Nouveautés et changements 2019Google IO/Android Q - Nouveautés et changements 2019
Google IO/Android Q - Nouveautés et changements 2019
 
Barcamp Degetel
Barcamp DegetelBarcamp Degetel
Barcamp Degetel
 
Les applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web appsLes applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web apps
 
Les secrets du développement d'une application mobile
Les secrets du développement d'une application mobileLes secrets du développement d'une application mobile
Les secrets du développement d'une application mobile
 
Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents
Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents
Mobiliteatime #1 : "Smartwatches & Apple Watch: Time to market?" by userADgents
 

Similaire à Niji rapport de prévention 2021 - android 12

Responsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, MéthodologieResponsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, Méthodologieekino
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksJean-Sébastien Dupuy
 
Alphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, AndroidAlphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, AndroidAlphorm
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14FullSIX Group
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Hadina RIMTIC
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutantsAmira Hakim
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Paris Android User Group
 
Mobile Factory - Prévention Application Mobile
Mobile Factory - Prévention Application MobileMobile Factory - Prévention Application Mobile
Mobile Factory - Prévention Application MobileNiji
 
Presentation Android
Presentation AndroidPresentation Android
Presentation AndroidJean Collas
 
Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?
Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?
Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?Philippe Dumont
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfmed_univ78
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012Yannick Quenec'hdu
 
Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdf
Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdfConteneuriser une application .NET 8 en utilisant Docker et Azure.pdf
Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdfHamida Rebai Trabelsi
 

Similaire à Niji rapport de prévention 2021 - android 12 (20)

android.pdf
android.pdfandroid.pdf
android.pdf
 
Responsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, MéthodologieResponsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, Méthodologie
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
Apple - WWDC 2018
Apple - WWDC 2018Apple - WWDC 2018
Apple - WWDC 2018
 
Alphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, AndroidAlphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, Android
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutants
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014
 
Mobile Factory - Prévention Application Mobile
Mobile Factory - Prévention Application MobileMobile Factory - Prévention Application Mobile
Mobile Factory - Prévention Application Mobile
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Presentation Android
Presentation AndroidPresentation Android
Presentation Android
 
Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?
Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?
Azetone - Comment optimiser l’expérience utilisateur de son appli mobile ?
 
Android
AndroidAndroid
Android
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012
 
Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdf
Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdfConteneuriser une application .NET 8 en utilisant Docker et Azure.pdf
Conteneuriser une application .NET 8 en utilisant Docker et Azure.pdf
 

Niji rapport de prévention 2021 - android 12

  • 1. Rapport de Prévention Android Juin - 2021 V1.0 Juin 2021 – Mobile Factory
  • 2. Sommaire 2 1. Le mobile et ses technologies 2. L’industrialisation 1. Socle, Forge, Gestion 3. Et le dev 1. Rex sur 5 années de projet 2. La Clean Architecture 3. Standardisation Vs Performance 4. Industrialiser le dev de feature 1. Moteur de template multi-techno 1. Android, iOS, Kmm, Flutter, … 2. Adaptable aux spécificités 5. Proposition de projet d’industrialisation du dev
  • 4. 4 Suite à la conférence de la Google I/O présentant entre autres Android 12, Niji a souhaité réaliser un document regroupant les nouveautés et les impacts potentiels sur les applications mobiles en maintenance ou les nouvelles applications. Introduction
  • 6. Nouveautés 6 Description : • Fournit une API unifié pour gérer les insertions de contenu riche (image, vidéo, …) depuis le presse-papier, le drag and drop et le clavier https://developer.android.com/about/versions/12/features/unif ied-content-api API d'insertion de contenu riche
  • 7. Nouveautés 7 Description : • Splash screen par défaut utilisant l'icône (animation fluide car gérée par le système) • Possibilité de personnaliser le splash screen (thème, propriétés de l'animation, icône animés) https://developer.android.com/about/versions/12/features/spl ash-screen API de splash screen
  • 8. Nouveautés 8 Description : • Ajout de coins arrondis • Prise en compte des couleurs du thème • Simplification de la personnalisation des widgets • Ajout de nouveaux groupes de boutons • Amélioration de la gestion des positions et dimensions • Faciliter la gestion de sélection de widget • Transition plus fluide vers l'application • Simplification de l'intégration des vues complexes https://developer.android.com/about/versions/12/features/wid gets Amélioration de l'API de widget
  • 9. Nouveautés 9 Description : Ajoute un écran dans les settings permettant de visualiser l'historique des accès aux données sensibles : • Localisation • Camera • Microphone https://developer.android.com/about/versions/12/features#pr ivacy-dashboard Dashboard de gestion de la vie privée
  • 10. Nouveautés 10 Description : Support de filtres sur les vues : • Flou d'arrière-plan • Filtre de couleur • Autres effets graphiques Note : pas de rétrocompatibilité prévue pour le moment, le support peut varier selon les devices https://developer.android.com/about/versions/12/features#re ndereffect Nouvelle gestion des filtres de vues
  • 11. Nouveautés 11 Expérience utilisateur • Nouvelle API rounded corner permettant d'éviter qu'une vue ne soit tronquée sur les écrans arrondis • Amélioration du mode Picture in Picture • Ajout de la possibilité de produire des vibrations en fonction du flux audio • Amélioration de la gestion des gestures en mode immersif • Ajout de styles de notification d'appels en cours et entrants • Amélioration du support des images dans les notifications Stockage • Ajout d'un dossier pour stocker les enregistrements audio • Ajout de permissions de gestion des médias • Restriction de l'accès à la gestion du stockage applicatif Divers
  • 12. Nouveautés 12 Vie privée & sécurité • Ajout d'une permission pour pouvoir cacher les fenêtres superposées • Ajout d'un flag pour indiquer si une notification requiert l'authentification ou non • Ajout de permissions supplémentaires pour gérer plus finement l'accès au bluetooth Médias • Ajout d'un transcodage automatique des médias • Ajout de la gestion des DRM sur les médias • Ajout d'un classement de performance des devices en fonction de leurs capacités Divers (2)
  • 13. Nouveautés 13 Graphisme & image • Amélioration du décodeur d’image, qui supporte désormais les animations (GIF & WebP) • Ajout du support du format d’image AVIF (AV1 for Image Files) Connectivité • Simplification de la gestion des companion devices (e.g. smartwatch, etc) • Améliorations de la gestion du Wifi-Aware / Neighbor Awareness Networking Autres • Ajout d’options permettant de désactiver des fonctionnalités Android 12 pour des tests de compatibilité • Ajout d’une API pour accéder aux crashes natifs depuis l’application (i.e. sans ADB) • Nouvelle API de gestion des cameras à ultra-haute résolution Divers (3)
  • 15. Impacts 15 Il existe deux types d'impacts : → Ceux affectant toutes les applications dès lors qu'elles tournent sur un téléphone Android 12 → Ceux affectant uniquement les applications qui ciblent Android 12 ou plus Préambule
  • 16. Impacts toutes applications 16 Description : • Changement de l'effet du scroll en début et fin de liste (remplacement du halo par un étirement des éléments) Impacts : • Vérifier le comportement des vues qui sont scrollables (surtout si elles utilisent des comportements non standard) https://developer.android.com/about/versions/12/overscroll Overscroll
  • 17. Impacts toutes applications 17 Description : • Si une notification qui disparaît automatiquement reste visible moins de 10s, elle n'est pas affichée Impacts : • Certaines notifications transitoires peuvent ne plus apparaître https://developer.android.com/about/versions/12/behavior-changes- all#foreground-service-notification-delay Notification des services de foreground
  • 18. Impacts toutes applications 18 Description : • La gestion des URLs que peut intercepter une application a changé Impacts : • L'ouverture d'une URL gérée par l'application requiert la validation du domaine par cette application. Dans le cas contraire, l'URL sera ouverte dans le navigateur par défaut https://developer.android.com/about/versions/12/web-intent- resolution Résolutions des URLs applicatives
  • 19. Impacts toutes applications 19 Description : • Ajout d'une nouvelle catégorie "Restricted", qui limite les ressources allouées aux applications trop gourmandes Impacts : • Les performances des applications dispendieuses pourront être impactées https://developer.android.com/about/versions/12/behavior- changes-all#restrictive-app-standby-bucket Restriction des applications gourmandes en ressource
  • 20. Impacts toutes applications 20 Description : • La barre de statut indiquera l'activité du microphone et de la caméra • L'utilisateur peut désormais désactiver la caméra et le microphone via les quick-settings Impacts : • Si la camera est désactivée, le flux sera vide mais l'utilisateur aura un message système l'invitant à la réactiver https://developer.android.com/about/versions/12/behavior- changes-all#mic-camera-toggles Microphone et caméra
  • 21. Impacts toutes applications 21 Description : • L'utilisateur sera averti de l'application d'origine d'un texte copié-collé Impacts : • Aucun, un toast apparaitra au moment du copié-collé https://developer.android.com/about/versions/12/behavior- changes-all#clipboard-access-notifications Presse-papier
  • 22. Impacts toutes applications 22 • Blocage des événements de touch non légitimes • Les applications ne peuvent plus fermer les dialogues systèmes • Changement sur le filtrage de la liste des applications du téléphone visibles par les autres applications • Suppression de classes de cryptographie issues de la bibliothèque Bouncy Castle • Changements sur la gestion des portails captifs Wi-Fi Autre impact notable, purement technique (non lié à Android 12) : • Les références aux vues via les view synthetics (déjà dépréciées) ne seront plus supportées dans les nouvelles versions de Kotlin (à remplacer par les view bindings). Suivant la masse de code, la migration –bien que non complexe– peut représenter une charge importante. Divers
  • 23. Impacts applications Android 12+ 23 Description : • Les notifications utilisent désormais un template commun avec une zone personnalisable Impacts : • Toutes les applications qui utilisent setCustomContentView() doivent vérifier et adapter leurs layouts dans les différents états (développé, réduit et flottant) https://developer.android.com/about/versions/12/behavior- changes-12#custom-notifications Notifications personnalisées
  • 24. Impacts applications Android 12+ 24 Description : • Pour des raisons de respect de la vie privée, la résolution des capteurs de mouvement est bridée à 200Hz Impacts : • Les applications utilisant l'accéléromètre, le gyroscope et le capteur de champ magnétique terrestre recevront moins de valeurs https://developer.android.com/about/versions/12/behavior- changes-12#motion-sensor-rate-limiting Bridage des capteurs de mouvements
  • 25. Impacts applications Android 12+ 25 Description : • La gestion des cookies dans les Webview a été modifiée pour gérer l'attribut SameSite Impacts : • Vérifier le bon fonctionnement des Webwiew si l'application en utilise, et notamment toutes les transitions entre pages sécurisées et non-sécurisées (e.g connexion, paiement) https://developer.android.com/about/versions/12/behavior- changes-12#samesite Modification de la gestion des cookies
  • 26. Impacts applications Android 12+ 26 Description : • Lorsque l'application demande une localisation précise, l'utilisateur aura malgré tout la possibilité de ne fournir qu'une localisation approximative Impacts : • Les applications qui demandent la permission de la localisation précise doivent en même temps demander la localisation approximative • L'utilisateur pourra choisir de ne donner qu'une permission de localisation approximative et l'application devra se comporter en conséquence https://developer.android.com/about/versions/12/approximate -location Restriction des localisations précises
  • 27. Impacts applications Android 12+ 27 Description : • Si une application n'est pas utilisée pendant quelques mois, le système réinitialise les permissions de l'application et la place en hibernation • L'utilisateur peut désactiver l'hibernation pour certaines applications Impacts : • Dans ce mode, l'application voit son cache effacé, ne peut plus utiliser de jobs, ni recevoir de notifications push https://developer.android.com/about/versions/12/behavior- changes-12#app-hibernation Hibernation
  • 28. Impacts applications Android 12+ 28 Description : • Tous les composants utilisant des intent filters doivent désormais avoir l'attribut exported de spécifié explicitement dans le manifest Impacts : • S'il n'est pas déclaré dans le manifest, l'application ne pourra pas être installée sur Android 12 https://developer.android.com/about/versions/12/behavior- changes-12#exported Déclaration des composants de l'application
  • 29. Impacts applications Android 12+ 29 Description : • Les pending intents, utilisés notamment pour les notifications et les receivers d'événements, devront être déclaré mutables ou immutables explicitement Impacts : • Si FLAG_MUTABLE ou FLAG_IMMUTABLE n'est pas déclaré à la création de l'intent, celle-ci crashera https://developer.android.com/about/versions/12/behavior- changes-12#pending-intent-mutability Création des pending intents
  • 30. Impacts applications Android 12+ 30 Description : • Les notifications qui lancent une activité sur le tap doivent le faire directement Impacts : • Si des notifications de l'application déclenchaient un service ou un receiver d'événements qui lui-même déclenchait une activité, cela ne fonctionnera plus https://developer.android.com/about/versions/12/behavior- changes-12#notification-trampolines Notification trampoline
  • 31. Impacts applications Android 12+ 31 Description : • Une application en background ne peut plus lancer de foreground service sauf exception Impacts : • Si l'application appelle un service foreground depuis le background, vérifier que le cas d'utilisation fait partie des exceptions. Sinon, utiliser le WorkManager https://developer.android.com/about/versions/12/foreground- services Restriction sur le lancement des services foreground
  • 32. Impacts applications Android 12+ 32 Description : • Pour libérer de la ressource système, l'application doit demander un accès spécial pour pouvoir utiliser l'exact alarm Impacts : • Les applications qui utilisent les exact alarms doivent répondre à des use-cases très précis et demander la permission SCHEDULE_EXACT_ALARM, autrement l'application crashera https://developer.android.com/about/versions/12/behavior- changes-12#exact-alarm-permission Permission d'alarme
  • 33. Impacts applications Android 12+ 33 • Restrictions des sauvegardes via ADB • Changements sur le data access auditing API • Fonctions de débogage lors du lancement d'intent suspect • Support des paiements NFC avec écran éteint • Support des connexions peer-to-peer Wi-Fi en même temps que la connexion Wi-Fi principale • Réduction de la surface d'API du SDK • Changements sur la sauvegarde et restauration cloud / device-to-device Divers
  • 34. Paris Rennes Lille Lyon Nantes Bordeaux www.niji.fr @Niji_Digital Gabriel DUPONT Manager Mobile Digital Experience gabriel.dupont@niji.fr 06 28 94 64 53 Contributeurs Sébastien GUILLEMIN Alex LE BOUËDEC Votre contact