Japon, Corée du Sud, Pays-Bas… les procès se sont multipliés ces derniers mois autour de la fermeture des boutiques d'applications (comme l'Apple AppStore ou le Google Play) et des solutions de paiement autorisées. Pour simplifier, seules, celles fournies par Apple ou Google sont autorisées.
Sous la pression En Corée du Sud, fin 2021, les parlementaires ont instauré une "loi anti-Google" visant à forcer le géant américain à permettre d'autres solutions de paiement que celle du Google Play, pour les applications Android.
Eh bien magie, figurez-vous, puisque Google vient d'annoncer la mise en place d'un programme pilote pour permettre cela ! L'entreprise souligne toutefois que leur solution reste la meilleure pour protéger les données personnelles et financières des utilisateurs (et pour prendre 30% de commission…).
Un pilote (très très fermé) Sans vraiment en préciser les contours, Google annonce la mise en place d'un pilote pour "un petit nombre de développeurs" qui pourront juxtaposer plusieurs solutions de paiement. L'idée serait de ~~gagner du temps~~ trouver la meilleure intégration possible, pour ensuite la propager à l'ensemble des développeurs. Un des premiers acteurs majeurs de ce pilote est Spotify, connu pour ses attaques répétées envers Apple, dans le domaine.
Selon les découvertes de Mishaal Rahman, sur Android 13, il devrait être possible de simuler des mauvaises conditions réseau.
Une nouvelle API dans Android 13 Les APIs, autour de la connectivité, ont été modifiées récemment, afin de limiter la bande passante pour chaque puce réseau, qu'il s'agisse du Wi-Fi ou des données cellulaires. Bien que séduisante, cette API ne fonctionnera qu'à la condition que le noyau soit compilé avec certains flags. Or, il arrive très souvent que des téléphones soient certes mis à jour, mais que la partie kernel ne soit jamais modifiée. Une combinaison difficile à atteindre au lancement.
Une interface graphique ? Pour l'heure, rien ne permet de tester la fonctionnalité sur la Developer Preview 2 d'Android 13. Mais selon des informations glanées par Mishaal Rahman, le code serait prêt à être déployé dans la partie Options pour les développeurs.
Et en attendant ? Pour l'heure, vous pouvez utiliser l'émulateur Android qui dispose de fonctionnalités similaires. Mais si vous tenez à le faire sur un véritable téléphone, ne le rapprochez pas d'un micro-ondes, utilisez plutôt des outils comme le proxy Charles ou bien, partagez une connexion d'un ordinateur, volontairement bridée.
Le reste de l'actualité en bref
🧪 Firebase travaille sur un outil pour mesurer les performances des Fragments. Pour le moment accessible uniquement en postulant (c'est une alpha), vous pourrez comparer les données en fonction de l'Activité hébergeant un Fragment ou encore avoir une vue avec les différents événements (CPU, requêtes…).
✉️ Vous vous demandez quelles données envoient les applications Appel Téléphonique (Contacts) et Messages à Google ? Des chercheurs irlandais ont publié une étude très complète sur le sujet et j'imagine que vous connaissez déjà la conclusion : beaucoup trop d'informations, sans pouvoir les désactiver. Carton rouge 🟥 !
👍🏻 Avec l'arrivée d'Android 12L, vous vous questionnez peut-être sur l'élaboration d'interfaces optimisées pour les écrans pliants/pliables. Les chiffres de vente vont dans ce sens, puisque 9 millions de téléphones pliants/pliables ont été vendus en 2021, dont 4,6 millions de Samsung Galaxy Z Flip 3.
💾 Vous utilisez les AWS Lambda (l'équivalent des Cloud Functions) ? Vous allez maintenant pouvoir vous appuyer sur un stockage éphémère jusqu'à 10 Go (contre 512 Mo actuellement).
🗄️ CodinGame vient de publier une analyse complète sur le marché et pour ce qui est des salaires, les pays qui offrent le plus sont… les Etats-Unis, la Suisse et le Canada. Mais, où se situe donc la France ? (quel beau teasing !)
Pour l'article UI/UX de cette semaine, je vous propose celui partagé dans Flutter Digest la semaine dernière, même s'il s'agit de la version iOS. Concrètement, avec 1,8 milliard d'utilisateurs actifs (toutes plateformes confondues), l'application GMail se doit d'être parfaite. Il y a pourtant à redire, particulièrement du côté des TRÈS nombreuses popups, quelle que soit la plateforme.
Gérard Paligot, qui travaille chez Decathlon, s'est mis en tête de faire une comparaison agnostique entre Jetpack Compose d'un côté et Swift UI de l'autre. Les conclusions ? … je vous laisse lire l'article ;)
Le cas d'usage est peu fréquent, mais si vous avez conçu des plugins Gradle, il ne faut pas oublier les tests. Pour cela, il existe un framework dédié nommé TestKit. Dans cet article, vous découvrirez non seulement comment l'utiliser, mais surtout comment hiérarchiser votre code pour en faciliter les tests.
La programmation Reactive (Flow, Rx…) s'est popularisée depuis quelques années, mais derrière son aspect magique, se cache parfois la mauvaise surprise des fuites mémoires. Cet article vous liste certaines mauvaises pratiques qui y mènent tout droit !
Depuis la deuxième Developer Preview d'Android 13, Google donne la possibilité de révoquer des permissions. Cela peut intervenir si votre application n'utilise plus certaines fonctionnalités ou si certaines permissions ont été découpées. Vous verrez ainsi dans cet article comment mettre cela en œuvre, mais pour simplifier : tout se résume en une seule instruction !
Dans les équipes nombreuses, un ou plusieurs développeurs travaillent sur des fonctionnalités isolées. Mais, comment faire en sorte de pouvoir naviguer de l'une à l'autre sans créer de dépendances ? Vous avez 4 heures !
Plus sérieusement, les développeurs de l'application Choco ont été confrontés à ce problème et expliquent comment ils l'ont surmonté.
Cet article, proposé par Titouan, que vous pouvez retrouver sur le Slack Android FR, vous explique comment utiliser les GitHub Actions pour votre CI. Chaque étape est bien décrite et en bonus, vous avez même une comparaison avec Google Cloud Build, que son équipe utilisait auparavant.
Voilà un bug que je n'avais jamais rencontré, mais pourtant troublant :
Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.example.app.MyApp.
Le développeur a pourtant fait le nécessaire côté AndroidManifest et, plus de 95% des utilisateurs n'ont pas cette exception. D'où cela pourrait-il provenir ? Le développeur a finalement trouvé pourquoi, mais vous devrez bien lire tout son article avant de vous jeter sur la conclusion, car cela pourrait nous arriver également !
Need to measure App Startup time? (see image)
This will print out total start time to display of that activity.
Also, Android team was kind enough to do this automagically in Logcat.
Just set Logcat to "No Filters" and sort by "Displayed".
Happy performance hunting!
Vous souhaitez mesurer le temps que met votre application pour se lancer ? Grâce à la commande indiquée sur le tweet, vous allez pouvoir le déterminer !
Flipper (anciennement Sonar) est un outil pour déboguer les applications Android et iOS. Dans une interface dédiée, vous allez pouvoir inspecter les logs, déboguer vos interfaces, suivre à la trace vos requêtes… Bref, un outil indispensable !
L'idée d'utiliser une application Linux sur un téléphone Android fait sens, dans la mesure où les deux systèmes partagent de nombreuses briques communes. Par le hasard d'un article de 2019, j'ai découvert qu'il était possible d'installer non seulement une distribution Linux sur son téléphone par l'intermédiaire d'UserLAnd, mais aussi des applications (Gimp, LibreOffice…) ! Maintenant que les écrans pliants/pliables se multiplient, ce genre d'initiative prend tout son sens.