Interview de Eric Dodji Gbofu, CEO de Yatasoft, une startup de développement de logiciels pour PC et mobiles, fondateur du site d'entraide francophone sur Codename One et auteur du livre Codename One – Développer en Java pour iOS, Android, BlackBerry et Windows Phone.
(24/09/2015)
Bonjour Eric, tu es cofondateur et gérant d'une startup de développement de logiciels, et tu te présentes d'abord comme un développeur C++. Pourtant tu utilises uniquement Java pour tes développements mobiles. Comment expliques-tu cela ?
Bonjour Patricia. Avant toute chose, je te remercie de m’accorder cette interview. Quand je me suis lancé dans le développement mobile, les smartphones n’existaient pas encore et il fallait développer pour les téléphones de l'époque (des features phones) qui étaient basés sur une version embarquée de la machine virtuelle de Java nommée J2ME. Le seul langage qu’il fallait alors apprendre pour développer pour ces téléphones était Java. C’est ainsi que j’ai dû apprendre ce langage. Avec l’arrivée des smartphones, je me suis intéressé aux plateformes Android et Blackberry OS qui utilisent aussi Java. Plus tard, je suis passé au framework Codename One qui me permettait de cibler diverses plateformes toujours avec ce langage. C’est ainsi que j’ai gardé Java pour faire du développement mobile. Même si Java est aussi utilisé pour faire du développement desktop (et web), je préfère largement utiliser du C++ pour faire ce genre d’applications, pour des tas de raisons que je n’énumérerai pas ici, tout en gardant Java pour tout ce qui touche au mobile.
En quoi Codename One diffère-t-il des autres solutions de développement mobile multiplateforme?
La différence entre Codename One et les autres solutions de type multiplateforme se situe à divers niveaux. J'en citerai trois :
- Codename One dessine ses propres composants graphiques à partir de zéro (sauf dans certains cas précis) et ne se contente pas de wrapper les composants existants d’une plateforme. Parmi les avantages qu’apporte ce choix, on trouve une bonne approche de solution au problème de fragmentation qui est très présent sur les plateformes mobiles. Ceci permet aussi à Codename One d’être doté d’une API graphique très riche en composants et presque infiniment personnalisable.
- Son serveur de compilation dans le Cloud. Il permet au développeur d’effectuer des compilations en ligne sans avoir besoin d’installer et de configurer les SDK de chaque plateforme mobile sur son ordinateur. Il permet aussi de compiler pour certaines plateformes sans avoir le matériel ni le système d’exploitation approprié comme le fait d’avoir un Mac pour développer pour l’iOS ou d’avoir un PC sous Windows pour développer pour Windows Phone et Blackberry OS.
- Codename One n’est pas seulement livré avec son API, mais aussi avec un simulateur bien fourni et d’autres outils comme le Codename One Designer qui permet par exemple de créer des thèmes, de dessiner des interfaces, de traduire une application et bien d’autres choses. Ce genre d’outils complets ne se trouvent que dans quelques rares frameworks de développement mobile multiplateforme.
"Codename One ne se contente pas de wrapper
les composants existants d'une plateforme"
Quels types d'applications développes-tu ?
Je développe principalement des applications métiers. Cela peut être une application utilisant une base de données, internet ou des services web. Pour tout ce qui touche aux jeux, j’utilise un autre framework parce que Codename One n’est pas adapté à ces derniers.
Est-ce que tu cibles chaque fois toutes les plateformes?
Non! Je ne cible pas à chaque fois toutes les plateformes. Jusqu’ici, je ne ciblais que les plateformes Android et Blackberry OS (5 à 7). J’ai enfin ajouté l’iOS à la liste depuis peu.
Comment se passe le passage d'une plateforme à l'autre ? Quelles sont plus particulièrement les situations où cela pose problème? Comment contournes-tu alors les difficultés?
Dans la très grande majorité des cas, il n’y a rien à faire à part une simple compilation pour passer d’une plateforme à une autre. Et dans les cas restants, ce qu’il y a à faire est minime en termes d’efforts à fournir. Jusqu’ici, je n’ai pas eu de soucis particuliers au point de parler de contournement de difficultés.
Le souci majeur que je rencontre pour l’instant est lié à Windows Phone qui est un peu délaissé par Codename One par comparaison au soin qui est apporté au support d’iOS, d’Android et de Blackberry OS. À cause de ça, pas mal de fonctionnalités ne sont pas supportées ou fonctionnent mal sur cette plateforme alors qu’elles sont présentes et stables sur les autres. Les raisons de cette négligence sont évoquées dans divers articles de blog sur le site de Codename One et une réécriture complète du port de cette plateforme est prévue.
Codename One est-il plus adapté à certains types d'applications ?
Oui ! Codename One est plus adapté à la création d’applications métiers.
Peut-on développer des jeux avec Codename One ?
Il est possible de créer des jeux "basiques" , mais l’API n’a pas du tout été pensée pour ça et cela risque d’être fastidieux ou limité pour les programmeurs non expérimentés en création de jeux.
Un membre de la communauté a quand même fait l’effort de créer un plug-in nommé Core2D pour concevoir des jeux 2D. Le projet n’est pas encore stable, il est incomplet et contient pas mal de bugs, mais permet déjà de créer des petits jeux sympa comme une démo du célèbre jeu de plateforme Mario qui est fourni avec le plug-in.
À quel profil de développeur le recommanderais-tu?
Je recommande Codename One au développeur sachant utiliser le langage Java (comme les développeurs Android ou desktop par exemple) et voulant toucher plusieurs plateformes mobiles avec un unique code Java.
"Codename One mérite d'être connu
dans le monde francophone"
Aujourd'hui tu es très investi dans la communauté Codename One, tu es l'initiateur du site codenameonefr.com, tu y publies des tutoriels en français et tu viens d'écrire le premier livre sur le framework. Qu'est-ce qui t'a poussé à cela ?
C’est mon enthousiasme pour ce framework qui m’a poussé à créer ce site et à m’investir dans la création de tutoriels et l’écriture d’un livre sur le sujet. Je pense que Codename One mérite d’être connu dans le monde francophone. Il est puissant, complet, simple à utiliser et se distingue sur plusieurs points. Il serait difficile d’y toucher et de ne pas l’aimer.
Pourrais-tu présenter le livre en quelques mots?
Le livre permet de s’initier à Codename One à partir de zéro, mais tout en supposant que le lecteur s’y connaît déjà en Java. Des prérequis dans ce langage sont donc nécessaires. Il couvre aussi bien les fonctionnalités de bases qu'avancées. Beaucoup d’exemples sont fournis pour permettre au lecteur de se faire vite la main sur chaque fonctionnalité présentée.
Comment vois-tu l'avenir de Codename One ?
Je suis très confiant en ce qui concerne l’avenir de Codename One. Le dynamisme autour de son développement est fascinant. En plus d’évoluer rapidement, il est aussi open-source. Cela permet à des développeurs externes de contribuer aussi à son évolution. Ses concepteurs sont souvent à l’écoute de la communauté et font toujours ce qu’il faut pour implémenter plus de fonctionnalités tout en rendant le tout très simple à utiliser. En bref, Codename One a une belle histoire à écrire et elle est déjà en cours.
Souhaites-tu ajouter quelque chose?
Si vous êtes développeur Java et que la programmation mobile vous intéresse, vous gagnerez beaucoup à utiliser Codename One. Téléchargez le plug-in, testez-le et posez des questions sur le forum si vous en avez.
Un MOOC basé sur Codename One est aussi disponible sur Coursera pour les entrepreneurs qui ne savent pas coder et qui veulent quand même créer des applications mobiles. Le MOOC est créé par le professeur Clément Levallois en partenariat avec l’université EMLYON Business School dans laquelle il enseigne.
Pour finir, je veux remercier les éditions D-BookeR de m’avoir donné l’opportunité d’écrire ce livre et de contribuer ainsi à faire connaître ce framework chez les développeurs francophones.
Voir aussi
> Fiche de présentation de Codename One
> Interview de Shai Almog et Chen Fishbein, co-créateurs de Codename One