---
tags: Développement mobile
title: Questions développement mobile
---
> [name=Angélique CLERC]
# đ Les Ă©cosystĂšmes mobile
## đ Question 1
:::info
Expliquez ce qu'un développeur doit faire (et les bonnes pratiques) pour accéder à la localisation de l'utilisateur dans une application pour que le store d'application accepte son application (pour iOS et Android).
Décrivez les rÚgles, le travail à réaliser et les recommandations en terme d'interface, donnez les sources de votre réponse.
:::
---
:::warning
### Sources
https://developer.android.com/privacy/best-practice
https://support.google.com/googleplay/android-developer/answer/9799150?hl=fr#zippy=%2C%C3%A9tape-prenez-connaissance-des-bonnes-pratiques-concernant-lacc%C3%A8s-%C3%A0-la-position
https://support.apple.com/fr-fr/HT203033
:::
---
Pour protĂ©ger la confidentialitĂ© des utilisateurs et crĂ©er une plus grande transparence, Google Play doit comprendre et valider les dĂ©tails du contenu de l'application et des Ă©lĂ©ments de la fiche Play Store si on utilise les donnĂ©es de localisation de l'appareil. Au cours de ce processus, il faut fournir des dĂ©tails l'application, la mise en Ćuvre de fonctionnalitĂ©s utilisant les donnĂ©es de localisation de l'appareil et certifier la conformitĂ© au rĂšglement de Google Play.
> Remplir le formulaire de déclaration des autorisations : https://support.google.com/googleplay/android-developer/answer/9214102?hl=fr
1. Evaluer les autorisations requises
1. Fournir les instructions pour l'examen de l'application
1. Réaliser une vidéo de démonstration de l'application
1. Fournir des instructions pour accéder au contenu restreint de l'application
> Bonnes pratiques :
- Demander le minimum de permission dont l'application a besoin
- Demander la permission au moment ou l'utilisateur en a besoin pour que ça soit plus clair pour lui
- Si l'application collecte des informations de localisation, expliquer aux utilisateurs comment l'application utilise ces informations pour qu'ils puissent comprendre pourquoi elle est nécéssaire.
- Si l'application peut prendre en charge ses cas d'utilisation sans nécessiter de données de localisation, ne demandez aucune autorisation de localisation.
- Examiner la précision de localisation dont votre application a besoin. L'accÚs à la "coarse location" est suffisante pour répondre à la plupart des cas d'utilisation liés à la localisation.
- Si l'application nĂ©cessite de fonctionner en arriĂšre-plan, par exemple lors de la mise en Ćuvre du gĂ©ofencing, assurez-vous qu'il est essentiel pour les fonctionnalitĂ©s de base de l'application et qu'il est effectuĂ© d'une maniĂšre Ă©vidente pour les utilisateurs.
- Ne lancez pas les services de premier plan à partir de l'arriÚre-plan. Au lieu de cela, envisagez de lancer votre application à partir d'une notification, puis d'exécuter le code d'emplacement lorsque l'interface utilisateur de votre application devient visible.
## đQuestion 2
:::info
Sur iOS si je veux ajouter un bouton de connexion via Facebook ou Google, est-ce que je dois obligatoirement ajouter un bouton de connexion via Apple ?
:::
> Depuis l'été 2019 il est obligatoire de proposer un bouton de connexion via Apple connect lorsqu'il y a un bouton de connexion via Facebook ou Google sur iOS
### đŹ Question 3
:::info
Est-ce qu'il est nécessaire de demander l'autorisation à l'utilisateur pour lui envoyer des notifications push sur iOS ? et Android ?
:::
Sur iOS c'est obligatoire, sur Android ça ne l'est pas mais c'est trÚs fortement recommandé
### đ§Ș Question 4
:::info
Comment béta tester son application avec les outils Google ? Et Apple ? (nommez les outils)
Pourquoi utiliser ces outils (donnez au moins 3 raisons) ?
:::
TestFlight : iOS
TestFairy : Android & iOS
AppSee : Android & iOS
HockeyApp : Android & iOS
Les outils de Beta test :
Facilitent la vie aux dĂ©veloppeurs en permettant la distribution des diffĂ©rentes versions beta de lâapplication sur les testeurs.
Simplifient la récupération des rapports des sessions des tests et les feedbacks des testeurs.
### đ Question 5
:::info
Qu'est-ce que le "Monkey test" sur mobile ? Comment réaliser ce genre de test sur Android sur le plus d'appareils différents possible ?
:::
Il s'agit de test unitaires automatisés
### đ đ€ Question 6
:::info
Sur Flutter, comment créer une interface correspondante au systÚme sur lequel tourne votre app ? (Interface Material pour Android et si votre app est sur iOS l'interface change)
Donner un exemple de code (rappel, vous pouvez utiliser carbon.now.sh)
:::
```dart
import 'dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
```
### đ„ Question 7
:::info
Faites une synthÚse : Qu'est ce qui est considérée comme une bonne app chez Apple ? Chez Google ?
:::
Le service rendu
C'est le point de départ d'une appli réussie. La rÚgle qui peut s'appliquer est de l'ordre de : une appli = un service.
Elle doit remplir une (et une seule) véritable fonction : information, divertissement, achat en ligne, réservation de services... se focaliser dÚs le départ sur la nature du service qu'elle apportera à ses utilisateurs permettra de la rendre attractive car cohérente.
* Un design accrocheur
* La rapidité, la fluidité
* L'ergonomie
* La sécurisation des données
* Corrections de bugs
* Veiller aux contraintes techniques
:::info
Et inversement une "mauvaise" app (qui ne respecte pas les rĂšgles) donnez un exemple d'une app imaginaire qui ne pourrait pas passer le controle des stores.
:::
Une application au contraire qui manque d'ergonomie, qui est lente, qui peut crasher.
### đ¶ Question 8
:::info
Si votre app comprend du paiement in-app, résumez les rÚgles de l'App store et du Playstore ce concernant.
:::
Câest lâachat intĂ©grĂ© dans lâapplication mobile de produits ou contenus numĂ©riques . Il y a 4 types de produits et uniquement ceux lĂ :
Consommables : ce sont des produits numĂ©riques utilisables une seule fois et qui expirent ensuite. Dans un jeu, par exemple il sâagira des vies, dâaccessoires ou dâune monnaie virtuelle.
Non-consommables : il sâagit dâun produit sans date dâexpiration, par exemple des fonctionnalitĂ©s supplĂ©mentaires ou un accĂšs premium.
Abonnement Ă reconduction automatique : un abonnement avec renouvellement automatiquement, quelque soit sa durĂ©e (mensuelle, annuelleâŠ)
Abonnement sans reconduction : un abonnement Ă un service dâune durĂ©e limitĂ©e qui ne sera pas renouvelĂ© automatiquement Ă la fin de la pĂ©riode.
Lâachat in-app concerne donc lâensemble de ces 4 types de produit. Si le service rendu par lâapplication ne correspond pas Ă ces 4 produits, vous ne devrez pas, et ne pourrez pas passer par lâachat in-app.
Vous devez également fournir les informations légales suivantes :
* les CGU,
* des mentions légales,
* la politique de protection de la vie privée et des données personnelles,
* le détail des offres tarifaires (contenu, conditions, durée),
* le principe de renouvellement automatique (si concernĂ©) et les rĂšgles dâannulation dâachat.
:::info
Quel est le(s) pourcentage(s) des transactions Ă reverser Ă Apple & Google ?
:::
La commission dâApple et Android sur tous les achats in-app et les abonnements est de 30% (hors App Store Small Business Program ou la commission est de 15% ainsi que Google qui propose un programme similaire depuis 2021).
Au-delĂ dâun an pour les abonnements, la commission est rĂ©duite Ă 15%.pour les annĂ©es suivantes, pour Apple comme pour Android Il est donc nĂ©cessaire de sâassurer que ses abonnĂ©es de se dĂ©sabonnent pas.
### đ§ Question 9
:::info
Combien coûte un compte développeur Apple ?
:::
L'inscription au Apple Developer Program est de 99âŹ. Il s'agit d'un abonnement annuel.
:::info
et Google ?
:::
Un paiement unique de 25âŹ
:::info
Peut-on déployer une application hors des stores d'application pour Apple et Google ? Pourquoi est-ce utile ou impossible ?
:::
Il existe plusieurs possibilités de publier une app en dehors de l'app store :
la diffusion Ad Hoc : ce mode de distribution est proposé par Apple pour limiter la diffusion auprÚs d'une flotte d'appareils enregistrés.
le déploiement In House via le Apple Developer Enterprise Program : il permet de diffuser son application iOS au sein de son entreprise.
le hub privé de PandaSuite : diffusez votre app native via un hub privé par défaut (PandaHub ou Sales Hub) ou créez un hub de téléchargement à vos couleurs. Seuls les utilisateurs qui disposent du lien d'accÚs peuvent télécharger ce contenu.
la progressive web app : tout simplement ! Accessible depuis un navigateur, en hors ligne et avec sa propre icĂŽne, c'est une bonne solution si les navigateurs sont compatibles !
Et Google dans tout ça ? Google est beaucoup plus flexible : vous pouvez installer directement tout fichier APK signé sur un appareil Android.
### Question 10
:::info
Trouvez des chiffres à propos l'expérience développeur chez Apple et chez Google, que penses les développeurs de chaque écosystÚme en terme de "DX" (Developer eXperience) ?
Faites un tableau comparatif des avantages / inconvénients de chaque plateforme hors langage de programmation (expérience de déploiement sur les stores, rentabilité, outils mis à disposition du développeur, etc.)
:::
++**Avantages de l'iPhone :**++
* Excellente doc
* C'est joli, facilement
* Fonctionne comme on peut s'y attendre
* Base d'utilisateurs énorme
++**Inconvénients de l'iPhone :**++
* Difficile d'innover vraiment
* courbe d'apprentissage initiale trĂšs difficile si vous ne connaissez pas les conventions / bibliothĂšques mac
* Doit avoir un mac
++**Avantages Android :**++
* Beaucoup moins restrictif
* Beaucoup plus puissant (en termes d'innovation)
* Base d'utilisateurs croissante
* Marché potentiel plus vaste
* Réutilisation du code
* Peut consulter la source si vous avez besoin d'un peu d'aide supplémentaire
* Peut utiliser des sources autres que Market pour installer des applications
++**Inconvénients d'Android :**++
* L'interface utilisateur a besoin de travail pour ĂȘtre plus jolie / plus rapide
* Ne fonctionne pas toujours comme prévu - la flexibilité engendre la complication
* La documentation n'est pas aussi bonne que celle d'Apple
* Beaucoup moins restrictif... donc un mauvais code est beaucoup plus susceptible d'interférer avec le reste de l'appareil
### đ Question 11
:::info
Que pensez vous personnellement de toutes ces rÚgles d'un point de vue utilisateur final ? D'un point de vue développeur / designer d'app ?
:::
Je pense que ces rÚgles permettent d'assurer une expérience utilisateur agréable sur des applications qui sont contrÎlées avant toute publication. Ca permet d'avoir des applications sécurisées qui fonctionneront comme prévu dans la majorité des cas.
En tant que développeur, malgré le fait que ces rÚgles soient contraignantes elles permettent de s'assurer d'avoir respecté les bonnes pratiques et les attentes essentielles des utilisateurs