MARGO

Actualité

Modern Android Development : les nouveaux apports du langage Java

Retour sur la conférence Android Modern Development lors du Devoxx France

Par Pierre-Yves Lefeuvre Software Engineer @SirBelga

03/05/2018

Depuis la sortie en 2008 d’Android 1.0, l’écosystème Android a énormément évolué, mais plus particulièrement dans les dernières années, avec les apports nouveaux du langage Java, les changements liés aux terminaux et l’apparition de nouveaux outils. Les recommandations et les bonnes pratiques ont évolué en conséquence.

 

Evolution de la suite de développement

En 2008 lors de la sortie d’Android 1.0, les terminaux étaient bien moins puissants qu’aujourd’hui. Cette première mouture d’Android, basée sur une architecture Dalvik, répondait à des contraintes de mémoire limitée. Aujourd’hui (et même depuis quelques temps maintenant) ces contraintes n’existent plus. Android Runtime(ART) a remplacé Dalvik, optimisant autant la performance des applications que leur utilisation mémoire. En parallèle de cette mise à jour, les outils disponibles ont évolué dans le bon sens. En 2013 est sorti Android Studio, qui a été amélioré en même temps que le reste de l’API. De simple éditeur de code avec quelques features obscures que peu de personnes maîtrisaient vraiment, cette application est devenue une suite complète de développement.

Android Studio 1.0 :

Android Studio 1.0

Android Studio 3.1 :

Android Studio 3.1

Dès le départ, Android Studio comprenait un outil de profiling (TraceViewer) et un outil de visualisation de la mémoire (DDMS). TraceViewer était graphiquement complexe et peu utilisé, notamment parce qu’il était difficile à trouver, mais aussi difficile à comprendre. DDMS permettait de voir la mémoire utilisée par l’application, mais sans détails et sans possibilité de voir l’état de l’environnement. Ces deux applications se retrouvent aujourd’hui dans Android Profiler, un outil intégré à Studio qui permet de visualiser le CPU, la mémoire, le réseau et les interactions utilisateurs. Le tout dans une interface plus claire, plus simple, et plus à même d’être prise en main par des développeurs moins expérimentés. Les autres pourront pousser plus loin leurs analyses des applications en utilisant Android Systrace qui fournit des informations sur l’état de tout le système et non plus uniquement sur l’application surveillée. Très pratique pour trouver les origines des problèmes pendant le développement.

TraceViewer :

TraceViewer

Android Profiler. Bien plus agréable à regarder et utile :

Android Profiler

 

De Java à Kotlin

Ces mêmes développeurs ont désormais la possibilité d’utiliser Kotlin dans leurs projets, un langage supporté officiellement par Google en 2017 et qui apporte son lot de nouveautés à Java :
null-safety : le compilateur différencie les variables qui peuvent être nulles et celles qui ne le peuvent pas
surcharge d’opérateur
data classes : le compilateur crée automatiquement ce dont on peut avoir besoin pour des classes dont le but est de contenir des données (et pas forcément de les traiter)
Toutes ces nouveautés font de Kotlin un langage de plus haut niveau que Java, qui fournit aux développeurs des moyens plus simples pour développer leurs applications mais qui reste optimisé pour ne pas ralentir les exécutions.
Enfin, la mise en place d’ART, à la place de l’architecture Dalvik, a permis d’optimiser encore plus l’exécution des applications Android.

Toutes ces améliorations accompagnent des évolutions des API et des bibliothèques fournies par l’équipe Android.

 

Nouveautés dans l’API

Les layouts (utilisés pour définir la forme des vues d’une application) ont changé. Le layout “ConstraintLayout” introduit l’an dernier, devrait devenir le nouveau standard pour mettre en place les éléments d’une application Android.

ConstraintLayout dans l’éditeur de layout d’Android studio :

ConstraintLayout dans l'éditeur de layout d’Android studio

En effet, ce nouveau layout permet de mettre en place des contraintes entre les éléments de l’interface utilisateur, similaire au standard précédent (RelativeLayout) mais avec plus de flexibilité, et complètement intégré à l’éditeur de layout d’Android Studio.

Pour accompagner ce layout, un nouveau type de vue remplace les ListView, normalement utilisées en majorité pour les éléments de la vue. Les RecyclerView offrent plus de flexibilité et sont plus fonctionnelles que ne l’étaient les ListView.

La RecyclerView fait, par elle-même, des optimisations qu’il était nécessaire de faire manuellement auparavant ;
La vue crée automatiquement les éléments entourant la liste visible, pour qu’ils soient déjà prêts lorsque l’utilisateur parcourt les éléments de la vue.

Non seulement la vue crée des éléments supplémentaires lorsque l’utilisateur parcourt la liste, mais elle sauvegarde également les éléments déjà parcourus, pour qu’ils soient déjà prêts à être réutilisés si nécessaire.
Quand les éléments affichés changent il est possible de relier automatiquement les comportements aux nouveaux éléments.

Une liste utilisant RecyclerView :

Une liste utilisant RecyclerView

D’autres améliorations ont été apportées aux bibliothèques Android et à l’architecture des applications en général, ainsi que des innovations sur la gestion du cycle de vie des applications. Tous ces changements simplifient énormément la création des applications et rendent ce développement encore plus accessible à tout développeur intéressé.


Par Pierre-Yves Lefeuvre Software Engineer @SirBelga
Android
Haute Performance IT
Java
Mobile
Actualité

Les clés pour recruter dans l'IT

Emilia Kabak-Wołk, HR Manager chez Margo en Pologne témoigne des défis que représente le recrutement de profils rares tels que les Software Engineers, lors d'une interview menée par le magazine polonais Rekruter. 

18/05/2018 Découvrir 
Actualité

Le e-trading de A à Z

Le 24 avril dernier, Wissam Benhmida, Business Analyst chez Margo, a animé un Meetup sur le e-trading à #LaPiscine. En l'espace d'une heure, il a pris le temps de revenir sur la définition du trading, pour ensuite détailler le mode le fonctionnement, les enjeux et les risques du trading électronique.

17/05/2018 Découvrir 
Actualité

Introduction aux systèmes réactifs

Les systèmes réactifs sont un style d’architecture permettant à de multiples applications individuelles de se fondre en une seule unité, en réagissant à leur environnement, tout en restant conscientes les unes des autres. La première formalisation de ce terme a vu le jour avec la création du « Reactive Manifesto » en 2013 par Jonas Boner qui, en rassemblant certains des esprits les plus brillants dans l’industrie des systèmes distribués, souhaitait clarifier la confusion autour de la réactivité (qui est devenu un « buzz-word ») et construire une base solide pour un style de développement viable.

04/05/2018 Découvrir 
Actualité

Sparkube : quand l’OLAP devient un jeu d’enfant

Vous avez enfin votre notebook préféré, votre cluster Spark est bien configuré et performant, et votre HDFS contient tout ce qu’il faut en données. Et pourtant, savez-vous que vous pouvez booster la valeur ajoutée de vos données, grâce à la puissance de l’OLAP ? A la conférence Devoxx France 2018, Antoine Chambille, directeur R&D chez Activeviam, est venu nous présenter le projet Sparkube qui vient d’être lancé.

27/04/2018 Découvrir 
Actualité

Les Cookies, très utilisés, mais si peu compris

Lou Montulli, co-fondateur de Netscape et créateur du Text Web Browser Lynx, est un informaticien américain à l’origine de la balise Blink et aussi de la première Live Web Cam d’Internet. Il est aussi connu pour être l’inventeur des fameux Cookies HTTP.

26/04/2018 Découvrir 
Actualité

Retour sur la journée de la femme digitale #JFD18

En ce mardi 17 avril 2018, l’ensemble de l’équipe RH de Margo s’est rendue à la Journée de la Femme Digitale, pensée et créée par Delphine Remy-Boutang, l’occasion d’y rencontrer des femmes inspirantes et courageuses, innovantes et créatrices. Au programme, chefs d’entreprises, haute fonctionnaire, entre et intrapreneur(e)s, directrice de communication, directeur général, Secrétaire d’Etat...autant de profils aux parcours divers avec comme but commun, l’innovation pour tous et par tous.

25/04/2018 Découvrir