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