Alloy, simplifiez-vous le développement mobile sous Titanium

Publié le Mis à jour le Par

Vous avez déjà essayé de développer des applications avec Titanium, ce SDK hyper-puissant permettant de concevoir des applications mobiles (et desktop) en partant d’une seule et même base de code en JavaScript ? Si non, je vous conseille d’y jeter un œil rapidement, l’outil vaut le détour. Si oui, formidable, vous êtes alors déjà au courant que si l’outil est extrêmement puissant, il est tout autant ultra-permissif.

C’est d’ailleurs l’un des points faibles de Titanium : il ne propose pas un cadre de développement suffisamment structuré, et n’offre pas de solution pour architecturer facilement ses codebases.

Oui, mais ça, c’était avant…

Car depuis quelques semaines les gentils garçons d’Appcelerator (société éditrice du SDK Titanium), conscients des lacunes de leur outil, ont commencé à développer un framework en surcouche de leur SDK : Alloy. Ce dernier apporte ce qui manque aujourd’hui à Titanium nativement : une architecture claire capable de prendre en charge pour le développeur les structures de base.

Alloy arrive donc en implémentation du design pattern MVC (Modèle/Vue/Controlleur) comme on les aime. Mais ce n’est pas tout… Alloy va plus loin en proposant également de gérer les migrations de données, les styles de présentation des composants, les widgets… Et comme à chaque métier son jargon, Alloy offre de gérer ces éléments non-pas uniquement en JavaScript, mais dans des syntaxes adaptées : les vues sont rédigées en XML de façon déclaratives, les migrations en JSON…

Du côté de l’outil, Alloy fourni un outil en ligne de commande écrit en JavaScript et exécuté en environnement Node.js. C’est cet outil qui va initialiser les projets, générer les scripts de base, gérer la compilation de l’application et exécuter l’application en environnement de test. Et comme Appcelerator est à la base de la solution, un plugin pour Titanium studio (l’éditeur Titanium fourni par Appcelerator) suit le développement pour offrir directement les templates de base à la création d’un nouveau projet, et intégrer l’outil en CLI dans le workflow.

Nous avons donc testé cet outil prometteur. Sur le papier, la description est plus qu’alléchante : on retrouve les grands paradigmes de développement moderne mis au profit du SDK. Dans la pratique, pour ceux qui utilisent des frameworks comme Ruby on Rails ou Symfony, on retrouve rapidement ses marques. C’est même un confort particulièrement agréable. Malheureusement, le rêve s’arrête là, un peu brutalement…

Car la solution, actuellement distribuée en early-beta, n’est pas encore stable. A raison de 10 à 20 commits par jour, on voit qu’Appcelerator avance à grands pas et fourni un effort considérable pour développer Alloy. C’est aussi la source de nombreuses erreurs. En un week-end, nous avons pu voir passer 3 mises à jour du paquet npm, la première ayant cassé l’instanciateur (impossible d’initialiser totalement un projet) ; la deuxième, le compilateur (impossible alors de lancer le projet) ; quant à la troisième, les templates des vues et des contrôleurs s’avéraient incomplets…

Conclusion, l’outil promet beaucoup mais n’est pour le moment pas utilisable en production (en tout cas, sans y laisser un maximum de cheveux et de nuits blanches). Cela dit la solution est plus que prometteuse, et les objectifs sont engageants. Elle montre notamment que l’équipe d’Appcelerator a atteint une phase de maturité suffisante dans son SDK pour se permettre de commencer à concentrer ses efforts vers des outils tiers, et poser les bases d’une architecture solide.

Pour se faire une idée précise, nous vous donnons rendez-vous dans quelques semaines pour un article technique complet détaillant le développement d’une app de lecture de flux RSS basée sur l’API Google Reader. Ce billet sera pour nous l’occasion de tester le framework en temps réel dans des conditions de production, et de vous faire profiter de notre retour d’expérience…