Du 31 octobre au 1er novembre 2024, la droidcon a eu lieu à Londres, et l'équipe Android d'Apps with love était pour la première fois au complet sur place (yay!). Pendant deux jours, plus de 1 500 développeur⸱e⸱s Android se sont retrouvés au Business Design Center de Londres. Partager des idées avec des personnes qui partagent les mêmes intérêts lors d'une conférence est sans doute l'une des choses les plus passionnantes que nous puissions faire en tant que développeur⸱e⸱s. Et en plus, c'est très amusant.
Se rendre à la Droidcon 2024 à Londres
Le voyage a commencé à Berne, où nous avons pris le train pour Bâle. Nous n'avons malheureusement pas eu le temps de dire bonjour au bureau de Bâle, mais nous avons pu déguster une pizza au petit-déjeuner à la gare. Délicieux!
Notre voyage culinaire s'est poursuivi à Paris en TGV. Arrivés à Paris, Miggi nous a conduits dans une boulangerie où l'on dit que l'on trouve les meilleurs croissants. C'était en tout cas délicieux.
Avec les pâtisseries dans le ventre, nous avons pris l'Eurostar pour Londres. Pendant que nous voyagions sous l'eau, Yannick a commandé un café au restaurant de bord. Qui peut se vanter d'avoir bu un café sous l'eau? Pour le reste, le trajet dans un épais brouillard était relativement peu spectaculaire. Mais l'anticipation et la conclusion des derniers tickets de sprint nous ont tenus occupés.
Discussions
Au cours de ces deux jours, nous avons pu écouter de nombreux talks différents. Le choix n'a pas toujours été facile, car il y avait toujours six pistes dans lesquelles des talks étaient diffusés simultanément. Mais heureusement, tous ont été enregistrés et peuvent encore être visionnés après coup. En dessous, nous avons laissé nos commentaires sur les talks qui nous ont le plus marqués:
Optimiser le code Kotlin en pratique
De: Romain Guy, Android Toolkit Team, https://x.com/romainguy
Talk préféré de Yannick
La présentation de Romain a porté sur la manière dont l'équipe Jetpack Compose travaille à l'amélioration des performances par le biais d'optimisations. Il a présenté différentes méthodes pour optimiser les performances au niveau de la mémoire, mais aussi au niveau des processeurs et de la manière dont les données sont traitées.
A l'aide de démonstrations en direct, Romain a montré comment un code peut avoir l'air optimisé, mais que le bytecode correspondant est loin d'être optimisé. En procédant à quelques optimisations, il a souvent pu réduire de plusieurs fois la taille du bytecode généré.
Heureusement, nous n'avons pas eu à nous occuper de telles optimisations au niveau des octets jusqu'à présent, mais nous savons maintenant en tout cas à quoi il faut faire attention. Mais Romain a également donné de précieux conseils pour nous, développeurs Android. Tout d'abord, l'activation du "R8 Code Shrinking" de Google, qui améliore souvent les performances des applications et qui peut généralement être activé assez facilement. Heureusement, nous le faisons déjà. Ensuite, "Baseline& Startup Profiles" permet d'améliorer le temps de démarrage des apps, ce que nous allons certainement examiner prochainement.
Et à ce sujet, une anecdote importante de Romain: Lorsque des fonctionnalités sont testées en termes de performance (benchmark), il vaut mieux avoir un réfrigérateur à proximité. Car si les téléphones chauffent à cause des tests de performance, cela peut influencer les résultats.
Sécuriser Android: Lutter contre les menaces avancées et améliorer la sécurité des applications
De: Mohammed Kerroumi, Zimperium - Architecte de solutions, https://www.linkedin.com/in/mohamed-kerroumi-460b243/
Talk préféré de Miggi
Mohammed's Talk a montré comment les applications Android peuvent être attaquées et comment les protéger contre ces attaques.
Il nous a d'abord montré à quel point il est facile de décompiler des APK non protégés et d'en extraire des informations importantes comme les clés d'api. Pour cela, il a utilisé des outils comme Ghidra et Jadx, qui sont accessibles à tous. Ici, l'obfuscation avec R8 ou Proguard n'a pas non plus apporté beaucoup de protection, car ils ne font que réécrire des variables et des classes. Les clés sont toutefois toujours entièrement lisibles. Il nous a montré comment le maliciel a évolué au fil des ans et peut désormais agir même lorsque l'appareil est verrouillé.
Pour rendre les apps encore plus sûres, il nous a montré toute une série de "techniques de protection" - des contrôles d'intégrité à l'obfuscation du flux de contrôle - et nous a donné les meilleures pratiques à suivre. Lors du développement d'applications, il faut toujours être conscient que l'on développe sur un environnement non sécurisé. Les téléphones Android peuvent être facilement rootés. De ce fait, les dossiers d'applications ne sont plus sûrs.
Mes prises de vue:
Si vous développez des applications Android, n'oubliez jamais que votre application fonctionne sur un système non sécurisé.
Technique de la coupe à la crème: sécuriser l'application dans autant de couches que possible.
Tap it! Secouez-le! Lancez-le! Mouton! - Les animations gestuelles dansent!
De: Nicole Terc, HubSpot - Android Tech Lead
Talk préféré de Dinah
Avec son talk, Nicole a voulu montrer le potentiel des animations dans KMP et CMP. Pour ce faire, elle a animé l'image d'un mouton de différentes manières et a démontré comment les développeur⸱e⸱s peuvent animer des éléments de l'interface utilisateur.
Pour animer quelque chose, elle se pose à chaque fois les questions suivantes: quoi? Quand? et Comment? pour cette animation:
les réponses aux questions sont les suivantes:
Quoi? Mise à l'échelle
Quand? En touchant le mouton
Comment? Passe de la version 1.0 à la version 1.2
Les choses sont devenues particulièrement passionnantes lorsque Nicole a abordé le thème des capteurs du smartphone. En effet, les utilisateur⸱e⸱s peuvent bien sûr déclencher des interactions non seulement avec le doigt, mais aussi, par exemple, en secouant le smartphone ou en le faisant tourner. Mais un smartphone possède encore beaucoup plus de capteurs. Ceux-ci peuvent être déclenchés de manière pratique pour les tests dans l'émulateur Android.
Nicole a réalisé tous les exemples en KMP (Kotlin Multiplatform) et CMP (Compose Multiplatform), ce qui lui a permis de montrer les animations en un clin d'œil sur un émulateur iPhone. La manière dont les capteurs peuvent être utilisés dans le code peut toutefois varier entre Android et iOS. Ainsi, le système de coordonnées d'Android pour les capteurs d'orientation sous l'axe Z (lorsque l'on tourne le smartphone du mode portrait au mode paysage) comprend une rotation de 0° à 360°, alors qu'iOS comprend une rotation de -180° à 180°. Il faut en tenir compte lors de la programmation.
Le Git Repo avec tous les exemples se trouve ici: https://github.com/nicole-terc/sheepit-sensors-multiplatform.
Protocoles sans fil pour la prochaine génération de dispositifs IoT
De: Erik Hellman, Ingénieur logiciel indépendant
Talk préféré d'Ossi
Dans son talk, Erik Hellman a présenté différentes technologies de communication avec les appareils IoT. Il a montré quels sont les avantages et les inconvénients de chaque protocole, quels sont les domaines d'application et comment les mettre en œuvre lors du développement d'applications Android.
Le WiFi convainc par son débit de données élevé et sa large diffusion. Il est idéal pour les applications qui nécessitent une connexion rapide, comme les appareils ménagers intelligents ou les caméras. Toutefois, le WiFi est gourmand en énergie et ne convient donc pas aux appareils fonctionnant sur batterie. Le WiFi Easy Connect (DPP) simplifie l'installation des appareils IoT en permettant une configuration sécurisée et sans mot de passe.
Bluetooth est utilisé dans deux variantes: Bluetooth Classic et Bluetooth Low Energy (BLE). Alors que Classic fournit des débits de données plus élevés et convient aux connexions continues, BLE est particulièrement efficace sur le plan énergétique et idéal pour les appareils fonctionnant sur batterie. Bluetooth est très répandu, mais limité en termes de portée et de bande passante. Il est souvent utilisé dans les wearables, le monitoring de la santé et les appareils ménagers intelligents.
LoRa et LoRaWAN marquent des points avec une portée énorme et une consommation d'énergie minimale, ce qui les rend idéales pour connecter des capteurs dans des endroits éloignés. Toutefois, comme le LoRa a un faible débit de données, il n'est pas adapté aux tâches nécessitant beaucoup de données.
Thread est un protocole de réseau maillé à faible consommation d'énergie, spécialement conçu pour les appareils IoT dans le domaine de la maison intelligente. La compatibilité Matter permet une connexion uniforme des appareils de différents fabricants et plates-formes.
L'Ultra Wide Band (UWB) offre une grande précision dans la localisation et convient donc à des applications spéciales comme le contrôle d'accès ou le suivi en intérieur. Malheureusement, il n'y a pas beaucoup de smartphones Android qui supportent l'UWB, les modèles les moins chers en particulier n'ont pas d'antenne pour cela.
Conclusion
Chacun de ces protocoles a des forces et des faiblesses spécifiques qui les rendent adaptés à différents cas d'application. Le WiFi convient aux applications à forte intensité de données, le Bluetooth à l'utilisation mobile, le LoRa aux applications à grande échelle et à faible consommation d'énergie et le Thread à la maison intelligente. L'UWB est une technologie puissante qui permet à la fois l'échange de données et le positionnement. Le choix du protocole approprié est crucial pour intégrer les appareils IoT de manière efficace et fiable dans différents réseaux.
Généralités/Impressions
Sur le stand bien fréquenté de Google, on pouvait découvrir quelques visages dont nous avions déjà eu l'occasion de visionner un blog et une vidéo. Nous n'avons donc pas pu laisser passer cette chance et avons parlé nous-mêmes à l'équipe pour leur faire part de nos souhaits et de nos réactions. Apparemment, l'équipe Google a apprécié ce que nous faisons et nous a offert un Google Fold (!) pour mieux développer et tester nos applications sur des écrans plus grands ou pliables. Merci Google! 😍 (et en particulier Alex Vanyo & Rebecca Gutteridge)
Grâce aux nombreux sponsors de la Droidcon, la quantité de produits dérivés que nous avons pu obtenir était presque infinie. Il n'y a jamais assez d'autocollants sur un ordinateur portable et de figurines Android sur nos bureaux. 🎉
Kotlin Multiplateforme
Le thème Kotlin Multiplatform (KMP) était également plus présent que jamais à la droidcon de Londres. Participer à une conversation avec des "précurseurs de KMP" tels que Kevin Galligan & John O'Reilly ainsi que l'équipe Jetbrains Sebastian Aigner & Márton Braun a été une source d'inspiration - et il était bon de constater une fois de plus qu'ils ne sont eux-mêmes "que des êtres humains". Depuis cette année, nous utilisons également KMP comme outil dans notre pile technologique et nous sommes très impatients de le voir évoluer. KMP est très prometteur et pourrait définitivement s'imposer comme technologie multiplateforme.
Conclusion/perspectives
Nous nous sommes déjà rendus de temps à autre à un Droidcon ces dernières années , mais le Droidcon de Londres est définitivement un événement phare. Bien plus grand que les événements auxquels nous avons assisté jusqu'à présent. Lors de cette conférence, nous avons eu le temps de nous connecter avec d'autres personnes et d'assister à des débats passionnants. Nous avons maintenant beaucoup de nouveau matériel à traiter, à rechercher et à évaluer, ce qui fait définitivement de cette conférence une victoire pour nous. Nous avons pu recueillir de précieux conseils, en particulier dans le domaine de l'Adaptive Layout (prise en charge des téléphones, pliables et tablettes) et de Kotlin Multiplatform, et nous allons continuer à nous y consacrer dans les temps à venir.