SlideShare une entreprise Scribd logo
1  sur  47
Rapport de prévention Android et iOS 2023
Rapport de prévention iOS
2023
Sommaire
Nouveautés pour les éditeur
Nouveautés pour les développeurs
Introduction
iOS 17 sera probablement proposé en téléchargement pour le grand
public à partir de la mi-septembre 2023.
Une majorité des nouveautés concerne des produits ou services
proposés par Apple (nous vous invitons à consulter le lien ci-dessous
pour avoir le détail), mais nous allons nous focaliser ici sur les
nouveautés les plus pertinentes pour les éditeurs d'applications et
pour les développeurs.
https://www.apple.com/fr/ios/ios-17-preview/
Nouveautés pour les éditeurs
iOS 17 - support
Liste des iPhones supportés
• iPhone 14
• iPhone 14 Plus
• iPhone 14 Pro
• iPhone 14 Pro Max
• iPhone 13
• iPhone 13 mini
• iPhone 13 Pro
• iPhone 13 Pro Max
• iPhone 12
• iPhone 12 mini
• iPhone 12 Pro
• iPhone 12 Pro Max
• iPhone 11
• iPhone 11 Pro
• iPhone 11 Pro Max
• iPhone XS
• iPhone XS Max
• iPhone XR
• iPhone SE (2e génération)
Les nouvelles version des outils fournies par Apple (qu'il faudra bien intégrer) ne permettront plus le
support des versions d'iOS inférieures à 12.
iOS 17 - nouveautés notables
Les widgets interactifs
Description
- Les widgets peuvent inclure des boutons pour offrir des fonctionnalités
sans lancer l'application.
Par exemple, un widget "Reminders" qui permettrai aux utilisateurs de
marquer une tâche comme terminée directement sans lancer
l'application
- Les "live activities" (introduites sur iOS 16) pourront également inclure
de l'interactivité
iOS 17 - nouveautés notables
Nouveautés pour les achats intégrés
Description
- La nouvelle version d'iOS propose des solutions pour afficher très
rapidement, sans intégration ou presque, des éléments d'UX/UI pour la
gestion des achats intégrés
- Elle propose également d'afficher une page qui va gérer
automatiquement l'affichage des différents achats intégrés proposés
par l'application
- Apple a revu l'intégration des achats intégrés dans ses différents
environnements (Xcode, Testflight, etc) pour faciliter le test et le
développement
Apple Vision Pro
https://www.apple.com/apple-vision-pro/
Apple a présenté son casque de réalité virtuelle / augmentée
Description
- La réalité augmentée pour le monde professionnel
o Espace de travail virtuel où les fenêtres peuvent être
organisées en trois dimensions
o Télétravail et conférences
- La réalité augmentée pour le divertissement
o Ecran de cinéma virtuel
o Expériences immersives
Nouveautés pour les développeurs
Xcode 15
Pour les développeurs
- Téléchargement plus léger : les environnements sont téléchargés seulement en
fonction des besoins au lancement
- Plus grande intégration avec l'API Apple : gestion des capabilities depuis Xcode, etc
- Ajout de la possibilité de créer des rapports sur l'usage de la confidentialité dans une
application
- Amélioration du code completion
- Le mode preview est disponible pour SwiftUI mais aussi pour UIKit, WidgetKit et
AppKit
- Amélioration de la gestion de la documentation (preview, utilisation de vidéos, etc)
XCode 15 ne permettra plus le support des versions d'iOS inférieures à 12
https://developer.apple.com/documentation/updates/xcode
SwiftUI - MapKit
Pour les développeurs
Nouveautés et enrichissement au niveau de l'API MapKit pour SwiftUI
• Styles
• Annotations and overlays
• Map controls
• Look around
https://developer.apple.com/documentation/mapkit/mapkit_for_swiftui
SwiftUI - SwiftData
Pour les développeurs
Nouvelle fonctionnalité introduite pour persister des données.
C'est à CoreData ce que SwiftUI est à UIKit.
• Models en déclaratif
• Directement compatible avec SwiftUI
• Les models sont automatiquement des observables
Ce n'est pas un wrapper de CoreData mais plutôt une évolution sur un moteur commun
https://developer.apple.com/documentation/swiftdata
SwiftUI - ContentUnavailableView
Pour les développeurs
Apple propose désormais une interface unifiée pour l'affichage
des pages qui n'aurait pas de contenu.
Cette interface est affichable avec juste une seule ligne de code et
propose une expérience unifiée.
https://developer.apple.com/documentation/swiftui/contentunavailableview
Pour les développeurs
La plateforme d'Apple Vision Pro pour concevoir et créer un tout nouvel
univers d'applications et de jeux.
L'expérience est articulée autour de trois briques :
- Windows : les différentes vues 2D (fenêtres)
- Volumes : les différentes vues 3D
- Spaces : l'environnement, partagé (autres apps) ou non
A l'instar de tvOS, watchOS, etc, un projet visionOS est codé via Xcode et
peut être intégré à un projet multi-cibles.
https://developer.apple.com/documentation/visionos
visionOS
Liste exhaustive de toutes les nouveautés
Pour les développeurs
Vous pourrez retrouver une liste exhaustive de toutes les nouveautés
en suivant le lien ci-dessous.
https://developer.apple.com/documentation/updates/wwdc2023
Rapport de prévention Android
2023
Sommaire
1. Nouveautés
2. Breaking changes
Introduction
À l’instar des anciennes versions d’Android, le développement
d’Android 14.0 est découpé en différentes phases :
- Phase de prise en main pour les développeurs ;
- MAJ beta ;
- MAJ stables.
Actuellement la version actuelle est en version beta.
La version finale devrait être prévue pour la rentrée.
1. Nouveautés
Nouveautés
Automatisation des préférences linguistiques par application
(Android 13.0)
Description
- Génération automatique du fichier localeConfig de l’app à partir des
ressources du projet et référencement automatique dans le Manifest.
https://developer.android.com/about/versions/14/features#app-languages
- MAJ dynamiques du fichier localeConfig en fonction des valeurs
spécifiés par l’utilisateur avec les fonctions
setOverrideLocaleConfig() et getOverrideLocaleConfig du
LocaleManager.
- Récupération des préférences linguistiques par les IME (Input
Method Editors) en utilisant getApplicationLocales()
Nouveautés
Introduction d’une API liée à l’inflexion grammaticale
Description
- Le français comme de nombreuses langues permettent de genrer
une conversation comme suivant :
- Masculin : “Cher Monsieur vous êtes maintenant abonné à”
- Féminin : “Chère Madame vous êtes maintenant abonnée à”
- Neutre : ou encore “Abonnement à … réalisé”.
https://developer.android.com/about/versions/14/features/grammatical-inflection
- Pour stocker les valeurs, il faut utiliser des folders strings spécifiques
comme res/values-fr-feminine/strings.xml, à l’instar des choix de
langues.
- Pour obtenir/MAJ le genre actuel, il faut utiliser les
fonctions de l’API getApplicationGrammaticalGender() et
setRequestedApplicationGrammaticalGender().
Nouveautés
Introduction des préférences régionales
Description
- En tant qu’utilisateur, pour renseigner ces paramètres aller
dans System > Languages & Inputs > Regional preferences
- Pour récupérer ces valeurs dans l’application, il faut utiliser des
APIs et leurs méthodes telles que getTemperatureUnit() ou
getFirstDayOfWeek().
- Afin de spécifier différents paramètres tels que l’échelle de
température, le début de la semaine, …
https://developer.android.com/about/versions/14/features#regional-preferences
Nouveautés
Augmentation désormais non linéaire de la taille de police
jusqu’à 200%
Description
- Pour des questions d'accessibilité, les tailles de police sont
augmentables. Afin que les textes larges ne soient pas trop
larges sur l’écran, l’augmentation ne sera plus proportionnelle
mais respectera toujours la hiérarchie mise en place (cf
image).
https://developer.android.com/about/versions/14/features#accessibility
- Android recommande d’utiliser sp pour les éléments
textuels et dp pour les paddings.
- Pour les tests, besoin d’activer les options d’accessibilité
dans Accessibility > Display size and text > Font size.
Nouveautés
Personnalisation de la feuille de partage (Sharesheet)
Description
- Possibilité de personnaliser les actions de la Sharesheet en
créant son propre ChooserAction.Builder en lui définissant
une liste de ChooserActions.
https://developer.android.com/about/versions/14/features#sharesheet-improvements
- Amélioration des suggestions retournées par la Sharesheet
en utilisant plus de signaux de la part des applications. Pour
indiquer à Android un signal, il faut utiliser
pushDynamicShortcut()
Nouveautés
Introduction d’une flèche de retour en arrière, customisable
avec des animations.
Description
- Apparition d’une flèche de retour en arrière pour rendre
l’expérience utilisateur plus intuitive et agréable.
- Le background de la flèche s’adapte au fond d’écran
de l’utilisateur.
- Possibilité de customiser l’animation avec le callback
OnPressedCallback() et ses méthodes.
https://developer.android.com/about/versions/14/features/predictive-back
- Pour tester et s’assurer du bon fonctionnement, il est
possible d’utiliser overrideActivityTransition() qui va
s’effectuer à chaque retour en arrière de l’utilisateur.
Nouveautés
Introduction de nouveaux PackageInstaller afin d’améliorer
l’expérience utilisateur sur le Play Store.
Description
- Requête d’installation de package avant le début du téléchargement et
non plus une fois l’apk téléchargée.
https://developer.android.com/about/versions/14/features#app-stores
- Possibilité d’obtenir la responsabilité des prochaines MAJ, afin de
s’assurer que les mises à jour proviennent du Play Store. Cela se réalise
en utilisant setRequestUpdateOwnership().
- Introduction de l’API InstallConstraints permettant de s’assurer qu’une
app n’est pas active pour la mettre à jour et ainsi ne pas gêner
l’utilisateur.
- Meilleure gestion de l’installation des splits apk. En Android il est possible
de diviser l’APK en plusieurs fichiers. La méthode setDontKillApp() permet
de s’assurer que l’application n’est pas clôturée pendant l’installation des
derniers splits.
Nouveautés
Introduction d’une API de détection des screenshots
Description
- L’API permet aux apps d’utiliser des callbacks et notifie
l’utilisateur de la détection du screenshot.
https://developer.android.com/about/versions/14/features/screenshot-detection
- Seulement pour les screenshots générés à partir des boutons physiques.
- Pour l’implémenter, utiliser la permission DETECT_SCREEN_CAPTURE,
s’enregistrer avec registerScreenCaptureCallback()
et utiliser Activity.ScreenCaptureCallback pour récupérer la capture.
Ne pas oublier de se désinscrire à la fin de l’activité.
- Pour que le contenu d’une page ne soit pas screenable, il faut utiliser FLAG_SECURE
Nouveautés
Introduction d’APIs afin d’améliorer les Path (vecteurs
graphiques)
Description
- Introduction de l’API PathIterator, permettant d’obtenir des
informations sur les paths, ce qui n’était pas possible avant.
https://developer.android.com/about/versions/14/features/graphics
- Possibilité d’interpôler des paths s’ils ont la même structure
interne, ce qui permet de créer des formes plus complexes.
Pour savoir si un path est interpolable on peut utiliser
isInterpolatable().
Nouveautés
MAJ OpenJDK, afin d’aligner les features Android avec celles
de la dernière version d’Open JDK LTS
Description
- MAJ d’environ 300 classes java.base en Java 17.
https://developer.android.com/about/versions/14/features/core
- Introduction de text blocks, permettant de créer des strings
littéraux multi-lignes, pour cela il faut utiliser “”” au début et à
la fin d’un string puis utiliser  en fin de lignes.
- Introduction d’un pattern matching pour instance of.
- Introduction des Sealed classes, permettant de définir les interfaces et
classes qui peuvent l’étendre. Voici un exemple :
sealed interface Celestial permits Planet, Star, Comet { ... }
- La méthode java.util.UUID.fromString() effectue une vérification plus sévère
de son paramètre, possibilité d’obtenir un IllegalArgumentException.
Nouveautés
Mise en place d’un Bot Android Studio
Description
- Création d’un bot Android Studio fonctionnant avec l’IA et
plus précisément Codey (PaLM2) et n’est disponible qu’en
anglais.
https://developer.android.com/studio/preview/studio-bot
- Disponible dans View > Tool Windows > Studio Bot, à partir
de la version Canary.
2. Breaking changes
La permission SCHEDULED_EXACT_ALARM est désactivée
par défaut
Description
- Concerne les nouvelles apps ciblant Android 13.0 +
https://developer.android.com/about/versions/14/behavior-changes-all#schedule-exact-alarms
- Permission permettant d’envoyer une notification à un
moment précis.
Breaking changes
Mise en file d’attente des context registered broadcast lorsque
l’app est en cache
Description
- Les broadcasts sont des messages envoyés entre application
ou par le système afin de faire passer des informations, ils
sont de deux types, à savoir soit liés à l’application
(manifest), soit à l’activité (context).
https://developer.android.com/about/versions/14/behavior-changes-all#pending-broadcasts-queued
- Les multiples instances de certains broadcast devront être
fusionnées.
- Ne concerne pas les manifest declared broadcast
Breaking changes
Les apps ne peuvent tuer que leur propre processus
background
Description
- Pour faire cela utiliser : killBackgroundProcesses()
https://developer.android.com/about/versions/14/behavior-changes-all#kill-own-background-processes
- Plus possible de mettre fin à d’autres applications. Cela
consommait plus d’énergie au redémarrage.
Breaking changes
Breaking changes
Augmentation du seuil d’installation d’anciennes API
Description
- La raison à ceci est que bien souvent des applications
utilisent des targetSdk faibles afin de contourner des
mesures de sécurités présentes sur les versions supérieures,
comme par exemple les permissions de sécurité.
https://developer.android.com/about/versions/14/behavior-changes-all#minimum-target-api-level
- A partir d’Android 14.0, les applications possédant un
targetSdk inférieurs à 23 ne pourront plus être installées.
Introduction de la variable obligatoire OWNER_PACKAGE_NAME
pour les fichiers media
Description
https://developer.android.com/about/versions/14/behavior-changes-all#media-owner-package-names
- Cette variable doit être renseignée sauf si :
- l’app qui stocke ce média a un package name
toujours visible aux autres apps
- OU l’app qui recherche ce média effectue une
recherche QUERY_ALL_PACKAGES
Breaking changes
L’utilisateur peut sélectionner les photos/vidéos qu’il partage avec l’app
Description
https://developer.android.com/about/versions/14/behavior-changes-all#partial-photo-video-access
- L’utilisateur peut sélectionner certains médias qu’il choisit de
partager avec une application et il pourra ensuite re-
sélectionner d’autres médias ou mettre à jour son choix.
Breaking changes
Sécurisation des notifications d’intention plein écran
Description
- Depuis Android 11, il est possible d’envoyer des intents plein écran lorsque le
téléphone est verrouillé en plaçant la permission
USE_FULL_SCREEN_INTENT dans le Manifest.
Breaking changes
https://developer.android.com/about/versions/14/behavior-changes-all?hl=en#secure-fsi
- La permission est maintenant révoquée pour les applications qui ne permettent
pas de passer des appels ou d’utiliser un réveil.
- La permission est toujours valide pour les utilisateurs ayant installé
l’application avant de passer sur Android 14.
- Possibilité de savoir si l’application peut passer outre la permission avec la
fonction NotificationManager.canUseFullScreenIntent, si non c’est possible de
demander à l’utilisateur la permission avec l’intent
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
Les notifications non supprimables le sont désormais
Description
https://developer.android.com/about/versions/14/behavior-changes-all#non-dismissable-notifications
- Il n’est désormais plus possible d’utiliser
Notifcation.FLAG_ONGOING_EVENT afin d’afficher des
notifications non supprimables, sauf dans les cas suivants :
- le téléphone est verrouillé ;
- si l’utilisateur clique sur clear all, afin d’éviter les
suppressions accidentelles ;
- notifications créées avec MediaStyle ;
- les cas liés à la sécurité et à la vie privée ;
- Device policy controller (DPC) et leurs packages.
Breaking changes
Amélioration de la visualisation des informations sur la protection des données.
Description
- Désormais plus d’affichage des informations déclarées dans
la console Google Play, avant elles n’étaient présentes que
dans la section Data Safety.
Breaking changes
https://developer.android.com/about/versions/14/changes/data-safety?hl=en
- Précisions concernant l’utilisation de certaines permissions
dans le dialogue de permission systèmes, sur le but réel des
usages.
- Notification système si l’utilisateur accepte de partager sa
localisation à une application et que celle-ci la repartage
après à un site tiers. Possibilité d’accéder à la page liée dans
Settings > Privacy.
Les types de foreground services (Android 10) sont désormais
obligatoires
Description
https://developer.android.com/about/versions/14/changes/fgs-types-required
- L’utilisation de foreground service implique la définition d’un type de
foreground service, correspondant au cas d’utilisation. Un foreground
service va réaliser des opérations qui vont être visibles par
l’utilisateur (exemple téléchargement).
Breaking changes
- Nouveaux types de foreground services : health, remoteMessaging,
shortService, specialUse et systemExempted.
- Besoin de les déclarer dans le Manifeste, une vérification des types
sera exécutée par le système.
- Si nous ne sommes pas dans un de ces cas, il est conseillé de changer
de logique en utilisant plutôt un WorkManager ou un user-initiated
data transfer jobs.
Restrictions pour les intents implicites et pendings
Description
- Les intents implicites ne sont livrés qu’aux composants exportés,
pour contacter un composant non-exporté, il est nécessaire d’utiliser
des intents explicites.
Breaking changes
- En cas de création d’un pending intent mutable qui ne spécifie aucun
composant/package, une exception sera jetée.
- Cela a pour but d’empêcher les applications malveillantes d’intercepter
des intents dédiées au système et/ou d’autres apps.
https://developer.android.com/about/versions/14/behavior-changes-14#safer-intents
Les context-registered receivers vont devoir indiquer s’ils seront
exportés ou non
Description
- Besoin d’utiliser les tags suivants : RECEIVER_EXPORTED et
RECEIVER_NOT_EXPORTED
Breaking changes
- Cette mesure ne concerne pas les broadcast systèmes. Ceci a pour but
de sécuriser l’app car ces récepteurs introduits dans Android 13.0
pourraient potentiellement avoir des failles
https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported
Sécurisation du chargement de code dynamique
Description
Breaking changes
- Il est recommandé d’éviter le plus possible de recourir au chargement
de code dynamique.
- Par mesure de sécurité les apps qui permettent le chargement de code
dynamique vont devoir posséder des fichiers en lecture seule.
- En cas de chargement dynamique d’un fichier déjà existant, il est
recommandé de le supprimer puis de le recréer en lecture seule afin
d’être sûr qu’il ne soit pas corrompu.
https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading
Protection contre la traversée de répertoire ZIP (ou ZIPSlip)
Description
Breaking changes
- Dans les archives ZIP, chaque fichier empaqueté est stocké
sous un nom complet, ce qui permet d'utiliser des caractères
spéciaux tels que des barres obliques et des points. Ce qui
permet d’écraser des fichiers de manière arbitraire.
https://developer.android.com/about/versions/14/behavior-changes-14#zip-path-traversal
- Désormais une validation est mise en place afin de déclencher
une exception pour les chemins zips contenant ‘..’ ou ‘/’.
- Possibilité de contourner cette sécurité en utilisant
dalvik.system.ZipPathValidator.clearCallback()
Nouvelles restrictions pour les activités launchers depuis le background
Description
Breaking changes
- Complète la liste de restrictions déjà en place afin de protéger
l’utilisateur des APIs malicieuses qui lancent des applications.
- Quand une app reçoit un pending intent, elle doit désormais valider si
elle accepte de lancer son propre launcher. Pour valider l’app doit passer
un bundle ActivityOptions contenant
setPendingIntentBackgroundActivityStartMode(MODE_BACK
GROUND_ACTIVITY_START_ALLOWED).
https://developer.android.com/about/versions/14/behavior-changes-14#background-activity-restrictions
- Quand une app visible bind un service d’une app en fond en utilisant
bindService(), l’app visible doit valider qu’elle accepte d’utiliser son
launcher pour le service. Pour ce faire elle doit passer le drapeau
BIND_ALLOW_ACTIVITY_STARTS dans bindService()
MAJ des restrictions non SDK
Description
Breaking changes
- Les restrictions non-SDK ont été mises à jour, il ne faut pas les utiliser et
migrer vers des API publiques ou des SDK. Il est possible de tester l’app pour
étudier si elle utilise ce type de feature.
https://developer.android.com/about/versions/14/changes/non-sdk-14
Restrictions concernant la gestion de compte
Description
- À l’instar d’iOS, toute application permettant de créer un compte doit
également mettre en place un processus de suppression complète
de celui-ci.
- Une URL Internet doit également être mise en place afin que
l’utilisateur puisse supprimer son compte s’il a déjà supprimé
l’application.
https://android-developers.googleblog.com/2023/04/giving-people-more-control-over-their-data.html
Breaking changes

Contenu connexe

Similaire à Niji_Rapport prévention_2023.pptx

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
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierDamien Laureaux
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 
Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Jean-Sébastien Dupuy
 
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleDéveloppement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleREGIONAL ACADEMY OF EDUCATION AND TRAINING
 
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
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCityUlrich VACHON
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2apratt72
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adfBacely YoroBi
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilespprem
 
Nouveautés d'iOS 10 : on vous dit tout !
Nouveautés d'iOS 10 : on vous dit tout !Nouveautés d'iOS 10 : on vous dit tout !
Nouveautés d'iOS 10 : on vous dit tout !BeApp
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 

Similaire à Niji_Rapport prévention_2023.pptx (20)

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
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8
 
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleDéveloppement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelle
 
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
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
 
Hello droid
Hello droidHello droid
Hello droid
 
WWDC 2021 Highlight
WWDC 2021 HighlightWWDC 2021 Highlight
WWDC 2021 Highlight
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119
 
Nouveautés d'iOS 10 : on vous dit tout !
Nouveautés d'iOS 10 : on vous dit tout !Nouveautés d'iOS 10 : on vous dit tout !
Nouveautés d'iOS 10 : on vous dit tout !
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
Présentation Silverlight
Présentation SilverlightPrésentation Silverlight
Présentation Silverlight
 

Plus de Gabriel DUPONT

Niji - Rapport de prévention Mobile 2022
Niji - Rapport de prévention Mobile 2022Niji - Rapport de prévention Mobile 2022
Niji - Rapport de prévention Mobile 2022Gabriel DUPONT
 
Niji x mobile mots flash
Niji x mobile   mots flashNiji x mobile   mots flash
Niji x mobile mots flashGabriel DUPONT
 
Niji rapport de prévention 2021 - android 12
Niji   rapport de prévention 2021 - android 12Niji   rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12Gabriel DUPONT
 
Niji x mobile mots flash
Niji x mobile   mots flashNiji x mobile   mots flash
Niji x mobile mots flashGabriel DUPONT
 
Framework XPlatform Mobile
Framework XPlatform MobileFramework XPlatform Mobile
Framework XPlatform MobileGabriel DUPONT
 
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
 

Plus de Gabriel DUPONT (6)

Niji - Rapport de prévention Mobile 2022
Niji - Rapport de prévention Mobile 2022Niji - Rapport de prévention Mobile 2022
Niji - Rapport de prévention Mobile 2022
 
Niji x mobile mots flash
Niji x mobile   mots flashNiji x mobile   mots flash
Niji x mobile mots flash
 
Niji rapport de prévention 2021 - android 12
Niji   rapport de prévention 2021 - android 12Niji   rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12
 
Niji x mobile mots flash
Niji x mobile   mots flashNiji x mobile   mots flash
Niji x mobile mots flash
 
Framework XPlatform Mobile
Framework XPlatform MobileFramework XPlatform Mobile
Framework XPlatform Mobile
 
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
 

Niji_Rapport prévention_2023.pptx

  • 1. Rapport de prévention Android et iOS 2023
  • 2. Rapport de prévention iOS 2023 Sommaire Nouveautés pour les éditeur Nouveautés pour les développeurs
  • 3. Introduction iOS 17 sera probablement proposé en téléchargement pour le grand public à partir de la mi-septembre 2023. Une majorité des nouveautés concerne des produits ou services proposés par Apple (nous vous invitons à consulter le lien ci-dessous pour avoir le détail), mais nous allons nous focaliser ici sur les nouveautés les plus pertinentes pour les éditeurs d'applications et pour les développeurs. https://www.apple.com/fr/ios/ios-17-preview/
  • 5. iOS 17 - support Liste des iPhones supportés • iPhone 14 • iPhone 14 Plus • iPhone 14 Pro • iPhone 14 Pro Max • iPhone 13 • iPhone 13 mini • iPhone 13 Pro • iPhone 13 Pro Max • iPhone 12 • iPhone 12 mini • iPhone 12 Pro • iPhone 12 Pro Max • iPhone 11 • iPhone 11 Pro • iPhone 11 Pro Max • iPhone XS • iPhone XS Max • iPhone XR • iPhone SE (2e génération) Les nouvelles version des outils fournies par Apple (qu'il faudra bien intégrer) ne permettront plus le support des versions d'iOS inférieures à 12.
  • 6. iOS 17 - nouveautés notables Les widgets interactifs Description - Les widgets peuvent inclure des boutons pour offrir des fonctionnalités sans lancer l'application. Par exemple, un widget "Reminders" qui permettrai aux utilisateurs de marquer une tâche comme terminée directement sans lancer l'application - Les "live activities" (introduites sur iOS 16) pourront également inclure de l'interactivité
  • 7. iOS 17 - nouveautés notables Nouveautés pour les achats intégrés Description - La nouvelle version d'iOS propose des solutions pour afficher très rapidement, sans intégration ou presque, des éléments d'UX/UI pour la gestion des achats intégrés - Elle propose également d'afficher une page qui va gérer automatiquement l'affichage des différents achats intégrés proposés par l'application - Apple a revu l'intégration des achats intégrés dans ses différents environnements (Xcode, Testflight, etc) pour faciliter le test et le développement
  • 8. Apple Vision Pro https://www.apple.com/apple-vision-pro/ Apple a présenté son casque de réalité virtuelle / augmentée Description - La réalité augmentée pour le monde professionnel o Espace de travail virtuel où les fenêtres peuvent être organisées en trois dimensions o Télétravail et conférences - La réalité augmentée pour le divertissement o Ecran de cinéma virtuel o Expériences immersives
  • 9. Nouveautés pour les développeurs
  • 10. Xcode 15 Pour les développeurs - Téléchargement plus léger : les environnements sont téléchargés seulement en fonction des besoins au lancement - Plus grande intégration avec l'API Apple : gestion des capabilities depuis Xcode, etc - Ajout de la possibilité de créer des rapports sur l'usage de la confidentialité dans une application - Amélioration du code completion - Le mode preview est disponible pour SwiftUI mais aussi pour UIKit, WidgetKit et AppKit - Amélioration de la gestion de la documentation (preview, utilisation de vidéos, etc) XCode 15 ne permettra plus le support des versions d'iOS inférieures à 12 https://developer.apple.com/documentation/updates/xcode
  • 11. SwiftUI - MapKit Pour les développeurs Nouveautés et enrichissement au niveau de l'API MapKit pour SwiftUI • Styles • Annotations and overlays • Map controls • Look around https://developer.apple.com/documentation/mapkit/mapkit_for_swiftui
  • 12. SwiftUI - SwiftData Pour les développeurs Nouvelle fonctionnalité introduite pour persister des données. C'est à CoreData ce que SwiftUI est à UIKit. • Models en déclaratif • Directement compatible avec SwiftUI • Les models sont automatiquement des observables Ce n'est pas un wrapper de CoreData mais plutôt une évolution sur un moteur commun https://developer.apple.com/documentation/swiftdata
  • 13. SwiftUI - ContentUnavailableView Pour les développeurs Apple propose désormais une interface unifiée pour l'affichage des pages qui n'aurait pas de contenu. Cette interface est affichable avec juste une seule ligne de code et propose une expérience unifiée. https://developer.apple.com/documentation/swiftui/contentunavailableview
  • 14. Pour les développeurs La plateforme d'Apple Vision Pro pour concevoir et créer un tout nouvel univers d'applications et de jeux. L'expérience est articulée autour de trois briques : - Windows : les différentes vues 2D (fenêtres) - Volumes : les différentes vues 3D - Spaces : l'environnement, partagé (autres apps) ou non A l'instar de tvOS, watchOS, etc, un projet visionOS est codé via Xcode et peut être intégré à un projet multi-cibles. https://developer.apple.com/documentation/visionos visionOS
  • 15. Liste exhaustive de toutes les nouveautés Pour les développeurs Vous pourrez retrouver une liste exhaustive de toutes les nouveautés en suivant le lien ci-dessous. https://developer.apple.com/documentation/updates/wwdc2023
  • 16. Rapport de prévention Android 2023 Sommaire 1. Nouveautés 2. Breaking changes
  • 17. Introduction À l’instar des anciennes versions d’Android, le développement d’Android 14.0 est découpé en différentes phases : - Phase de prise en main pour les développeurs ; - MAJ beta ; - MAJ stables. Actuellement la version actuelle est en version beta. La version finale devrait être prévue pour la rentrée.
  • 19. Nouveautés Automatisation des préférences linguistiques par application (Android 13.0) Description - Génération automatique du fichier localeConfig de l’app à partir des ressources du projet et référencement automatique dans le Manifest. https://developer.android.com/about/versions/14/features#app-languages - MAJ dynamiques du fichier localeConfig en fonction des valeurs spécifiés par l’utilisateur avec les fonctions setOverrideLocaleConfig() et getOverrideLocaleConfig du LocaleManager. - Récupération des préférences linguistiques par les IME (Input Method Editors) en utilisant getApplicationLocales()
  • 20. Nouveautés Introduction d’une API liée à l’inflexion grammaticale Description - Le français comme de nombreuses langues permettent de genrer une conversation comme suivant : - Masculin : “Cher Monsieur vous êtes maintenant abonné à” - Féminin : “Chère Madame vous êtes maintenant abonnée à” - Neutre : ou encore “Abonnement à … réalisé”. https://developer.android.com/about/versions/14/features/grammatical-inflection - Pour stocker les valeurs, il faut utiliser des folders strings spécifiques comme res/values-fr-feminine/strings.xml, à l’instar des choix de langues. - Pour obtenir/MAJ le genre actuel, il faut utiliser les fonctions de l’API getApplicationGrammaticalGender() et setRequestedApplicationGrammaticalGender().
  • 21. Nouveautés Introduction des préférences régionales Description - En tant qu’utilisateur, pour renseigner ces paramètres aller dans System > Languages & Inputs > Regional preferences - Pour récupérer ces valeurs dans l’application, il faut utiliser des APIs et leurs méthodes telles que getTemperatureUnit() ou getFirstDayOfWeek(). - Afin de spécifier différents paramètres tels que l’échelle de température, le début de la semaine, … https://developer.android.com/about/versions/14/features#regional-preferences
  • 22. Nouveautés Augmentation désormais non linéaire de la taille de police jusqu’à 200% Description - Pour des questions d'accessibilité, les tailles de police sont augmentables. Afin que les textes larges ne soient pas trop larges sur l’écran, l’augmentation ne sera plus proportionnelle mais respectera toujours la hiérarchie mise en place (cf image). https://developer.android.com/about/versions/14/features#accessibility - Android recommande d’utiliser sp pour les éléments textuels et dp pour les paddings. - Pour les tests, besoin d’activer les options d’accessibilité dans Accessibility > Display size and text > Font size.
  • 23. Nouveautés Personnalisation de la feuille de partage (Sharesheet) Description - Possibilité de personnaliser les actions de la Sharesheet en créant son propre ChooserAction.Builder en lui définissant une liste de ChooserActions. https://developer.android.com/about/versions/14/features#sharesheet-improvements - Amélioration des suggestions retournées par la Sharesheet en utilisant plus de signaux de la part des applications. Pour indiquer à Android un signal, il faut utiliser pushDynamicShortcut()
  • 24. Nouveautés Introduction d’une flèche de retour en arrière, customisable avec des animations. Description - Apparition d’une flèche de retour en arrière pour rendre l’expérience utilisateur plus intuitive et agréable. - Le background de la flèche s’adapte au fond d’écran de l’utilisateur. - Possibilité de customiser l’animation avec le callback OnPressedCallback() et ses méthodes. https://developer.android.com/about/versions/14/features/predictive-back - Pour tester et s’assurer du bon fonctionnement, il est possible d’utiliser overrideActivityTransition() qui va s’effectuer à chaque retour en arrière de l’utilisateur.
  • 25. Nouveautés Introduction de nouveaux PackageInstaller afin d’améliorer l’expérience utilisateur sur le Play Store. Description - Requête d’installation de package avant le début du téléchargement et non plus une fois l’apk téléchargée. https://developer.android.com/about/versions/14/features#app-stores - Possibilité d’obtenir la responsabilité des prochaines MAJ, afin de s’assurer que les mises à jour proviennent du Play Store. Cela se réalise en utilisant setRequestUpdateOwnership(). - Introduction de l’API InstallConstraints permettant de s’assurer qu’une app n’est pas active pour la mettre à jour et ainsi ne pas gêner l’utilisateur. - Meilleure gestion de l’installation des splits apk. En Android il est possible de diviser l’APK en plusieurs fichiers. La méthode setDontKillApp() permet de s’assurer que l’application n’est pas clôturée pendant l’installation des derniers splits.
  • 26. Nouveautés Introduction d’une API de détection des screenshots Description - L’API permet aux apps d’utiliser des callbacks et notifie l’utilisateur de la détection du screenshot. https://developer.android.com/about/versions/14/features/screenshot-detection - Seulement pour les screenshots générés à partir des boutons physiques. - Pour l’implémenter, utiliser la permission DETECT_SCREEN_CAPTURE, s’enregistrer avec registerScreenCaptureCallback() et utiliser Activity.ScreenCaptureCallback pour récupérer la capture. Ne pas oublier de se désinscrire à la fin de l’activité. - Pour que le contenu d’une page ne soit pas screenable, il faut utiliser FLAG_SECURE
  • 27. Nouveautés Introduction d’APIs afin d’améliorer les Path (vecteurs graphiques) Description - Introduction de l’API PathIterator, permettant d’obtenir des informations sur les paths, ce qui n’était pas possible avant. https://developer.android.com/about/versions/14/features/graphics - Possibilité d’interpôler des paths s’ils ont la même structure interne, ce qui permet de créer des formes plus complexes. Pour savoir si un path est interpolable on peut utiliser isInterpolatable().
  • 28. Nouveautés MAJ OpenJDK, afin d’aligner les features Android avec celles de la dernière version d’Open JDK LTS Description - MAJ d’environ 300 classes java.base en Java 17. https://developer.android.com/about/versions/14/features/core - Introduction de text blocks, permettant de créer des strings littéraux multi-lignes, pour cela il faut utiliser “”” au début et à la fin d’un string puis utiliser en fin de lignes. - Introduction d’un pattern matching pour instance of. - Introduction des Sealed classes, permettant de définir les interfaces et classes qui peuvent l’étendre. Voici un exemple : sealed interface Celestial permits Planet, Star, Comet { ... } - La méthode java.util.UUID.fromString() effectue une vérification plus sévère de son paramètre, possibilité d’obtenir un IllegalArgumentException.
  • 29. Nouveautés Mise en place d’un Bot Android Studio Description - Création d’un bot Android Studio fonctionnant avec l’IA et plus précisément Codey (PaLM2) et n’est disponible qu’en anglais. https://developer.android.com/studio/preview/studio-bot - Disponible dans View > Tool Windows > Studio Bot, à partir de la version Canary.
  • 31. La permission SCHEDULED_EXACT_ALARM est désactivée par défaut Description - Concerne les nouvelles apps ciblant Android 13.0 + https://developer.android.com/about/versions/14/behavior-changes-all#schedule-exact-alarms - Permission permettant d’envoyer une notification à un moment précis. Breaking changes
  • 32. Mise en file d’attente des context registered broadcast lorsque l’app est en cache Description - Les broadcasts sont des messages envoyés entre application ou par le système afin de faire passer des informations, ils sont de deux types, à savoir soit liés à l’application (manifest), soit à l’activité (context). https://developer.android.com/about/versions/14/behavior-changes-all#pending-broadcasts-queued - Les multiples instances de certains broadcast devront être fusionnées. - Ne concerne pas les manifest declared broadcast Breaking changes
  • 33. Les apps ne peuvent tuer que leur propre processus background Description - Pour faire cela utiliser : killBackgroundProcesses() https://developer.android.com/about/versions/14/behavior-changes-all#kill-own-background-processes - Plus possible de mettre fin à d’autres applications. Cela consommait plus d’énergie au redémarrage. Breaking changes
  • 34. Breaking changes Augmentation du seuil d’installation d’anciennes API Description - La raison à ceci est que bien souvent des applications utilisent des targetSdk faibles afin de contourner des mesures de sécurités présentes sur les versions supérieures, comme par exemple les permissions de sécurité. https://developer.android.com/about/versions/14/behavior-changes-all#minimum-target-api-level - A partir d’Android 14.0, les applications possédant un targetSdk inférieurs à 23 ne pourront plus être installées.
  • 35. Introduction de la variable obligatoire OWNER_PACKAGE_NAME pour les fichiers media Description https://developer.android.com/about/versions/14/behavior-changes-all#media-owner-package-names - Cette variable doit être renseignée sauf si : - l’app qui stocke ce média a un package name toujours visible aux autres apps - OU l’app qui recherche ce média effectue une recherche QUERY_ALL_PACKAGES Breaking changes
  • 36. L’utilisateur peut sélectionner les photos/vidéos qu’il partage avec l’app Description https://developer.android.com/about/versions/14/behavior-changes-all#partial-photo-video-access - L’utilisateur peut sélectionner certains médias qu’il choisit de partager avec une application et il pourra ensuite re- sélectionner d’autres médias ou mettre à jour son choix. Breaking changes
  • 37. Sécurisation des notifications d’intention plein écran Description - Depuis Android 11, il est possible d’envoyer des intents plein écran lorsque le téléphone est verrouillé en plaçant la permission USE_FULL_SCREEN_INTENT dans le Manifest. Breaking changes https://developer.android.com/about/versions/14/behavior-changes-all?hl=en#secure-fsi - La permission est maintenant révoquée pour les applications qui ne permettent pas de passer des appels ou d’utiliser un réveil. - La permission est toujours valide pour les utilisateurs ayant installé l’application avant de passer sur Android 14. - Possibilité de savoir si l’application peut passer outre la permission avec la fonction NotificationManager.canUseFullScreenIntent, si non c’est possible de demander à l’utilisateur la permission avec l’intent ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
  • 38. Les notifications non supprimables le sont désormais Description https://developer.android.com/about/versions/14/behavior-changes-all#non-dismissable-notifications - Il n’est désormais plus possible d’utiliser Notifcation.FLAG_ONGOING_EVENT afin d’afficher des notifications non supprimables, sauf dans les cas suivants : - le téléphone est verrouillé ; - si l’utilisateur clique sur clear all, afin d’éviter les suppressions accidentelles ; - notifications créées avec MediaStyle ; - les cas liés à la sécurité et à la vie privée ; - Device policy controller (DPC) et leurs packages. Breaking changes
  • 39. Amélioration de la visualisation des informations sur la protection des données. Description - Désormais plus d’affichage des informations déclarées dans la console Google Play, avant elles n’étaient présentes que dans la section Data Safety. Breaking changes https://developer.android.com/about/versions/14/changes/data-safety?hl=en - Précisions concernant l’utilisation de certaines permissions dans le dialogue de permission systèmes, sur le but réel des usages. - Notification système si l’utilisateur accepte de partager sa localisation à une application et que celle-ci la repartage après à un site tiers. Possibilité d’accéder à la page liée dans Settings > Privacy.
  • 40. Les types de foreground services (Android 10) sont désormais obligatoires Description https://developer.android.com/about/versions/14/changes/fgs-types-required - L’utilisation de foreground service implique la définition d’un type de foreground service, correspondant au cas d’utilisation. Un foreground service va réaliser des opérations qui vont être visibles par l’utilisateur (exemple téléchargement). Breaking changes - Nouveaux types de foreground services : health, remoteMessaging, shortService, specialUse et systemExempted. - Besoin de les déclarer dans le Manifeste, une vérification des types sera exécutée par le système. - Si nous ne sommes pas dans un de ces cas, il est conseillé de changer de logique en utilisant plutôt un WorkManager ou un user-initiated data transfer jobs.
  • 41. Restrictions pour les intents implicites et pendings Description - Les intents implicites ne sont livrés qu’aux composants exportés, pour contacter un composant non-exporté, il est nécessaire d’utiliser des intents explicites. Breaking changes - En cas de création d’un pending intent mutable qui ne spécifie aucun composant/package, une exception sera jetée. - Cela a pour but d’empêcher les applications malveillantes d’intercepter des intents dédiées au système et/ou d’autres apps. https://developer.android.com/about/versions/14/behavior-changes-14#safer-intents
  • 42. Les context-registered receivers vont devoir indiquer s’ils seront exportés ou non Description - Besoin d’utiliser les tags suivants : RECEIVER_EXPORTED et RECEIVER_NOT_EXPORTED Breaking changes - Cette mesure ne concerne pas les broadcast systèmes. Ceci a pour but de sécuriser l’app car ces récepteurs introduits dans Android 13.0 pourraient potentiellement avoir des failles https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported
  • 43. Sécurisation du chargement de code dynamique Description Breaking changes - Il est recommandé d’éviter le plus possible de recourir au chargement de code dynamique. - Par mesure de sécurité les apps qui permettent le chargement de code dynamique vont devoir posséder des fichiers en lecture seule. - En cas de chargement dynamique d’un fichier déjà existant, il est recommandé de le supprimer puis de le recréer en lecture seule afin d’être sûr qu’il ne soit pas corrompu. https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading
  • 44. Protection contre la traversée de répertoire ZIP (ou ZIPSlip) Description Breaking changes - Dans les archives ZIP, chaque fichier empaqueté est stocké sous un nom complet, ce qui permet d'utiliser des caractères spéciaux tels que des barres obliques et des points. Ce qui permet d’écraser des fichiers de manière arbitraire. https://developer.android.com/about/versions/14/behavior-changes-14#zip-path-traversal - Désormais une validation est mise en place afin de déclencher une exception pour les chemins zips contenant ‘..’ ou ‘/’. - Possibilité de contourner cette sécurité en utilisant dalvik.system.ZipPathValidator.clearCallback()
  • 45. Nouvelles restrictions pour les activités launchers depuis le background Description Breaking changes - Complète la liste de restrictions déjà en place afin de protéger l’utilisateur des APIs malicieuses qui lancent des applications. - Quand une app reçoit un pending intent, elle doit désormais valider si elle accepte de lancer son propre launcher. Pour valider l’app doit passer un bundle ActivityOptions contenant setPendingIntentBackgroundActivityStartMode(MODE_BACK GROUND_ACTIVITY_START_ALLOWED). https://developer.android.com/about/versions/14/behavior-changes-14#background-activity-restrictions - Quand une app visible bind un service d’une app en fond en utilisant bindService(), l’app visible doit valider qu’elle accepte d’utiliser son launcher pour le service. Pour ce faire elle doit passer le drapeau BIND_ALLOW_ACTIVITY_STARTS dans bindService()
  • 46. MAJ des restrictions non SDK Description Breaking changes - Les restrictions non-SDK ont été mises à jour, il ne faut pas les utiliser et migrer vers des API publiques ou des SDK. Il est possible de tester l’app pour étudier si elle utilise ce type de feature. https://developer.android.com/about/versions/14/changes/non-sdk-14
  • 47. Restrictions concernant la gestion de compte Description - À l’instar d’iOS, toute application permettant de créer un compte doit également mettre en place un processus de suppression complète de celui-ci. - Une URL Internet doit également être mise en place afin que l’utilisateur puisse supprimer son compte s’il a déjà supprimé l’application. https://android-developers.googleblog.com/2023/04/giving-people-more-control-over-their-data.html Breaking changes