
Depuis quelques années, on voit apparaitre sur le web des générateurs d’applications mobiles. La promesse est la même que pour les cms et les générateurs de sites web : pouvoir bénéficier d’un travail professionnel sans aligner une seule ligne de code…
Et comme pour les cms et autre générateurs de sites web, la réalité est quelque peu nuancée…
Suite à la demande d’un client, je me suis re-penchée sur SiberianCMS, que j’avais déjà testé il y a quelques années sans être convaincue plus que ça.
Le mois de juillet et ses chaleurs aidant, je me suis lancée comme défit de créer une application multiplateforme, avec SiberianCMS, en 1 journée… Voici donc un compte rendu de mes aventures 🙂
Déjà, SiberianCMS, quézaquo ? Si vous êtes un peu geek sur les bords, cela vous évoquera peut être un ancien jeu bien sympa : Siberia… Mais cela n’a rien à voir 🙂
SiberianCMS (anciennement Siberian) est une application CMS Opensource dont le but est de vous permettre de créer votre application mobile multiplateforme via une interface graphique, dans votre navigateur web.
Le principal intérêt (en plus du fait qu’elle soit open source) de cette solution face à ses concurrentes (GoodBarber par example) est que vous êtes dépositaires du code de l’application générée. Vous êtes donc complètement indépendant.es. Par contre, cela suppose de posséder les comptes Dev Apple et Android associés, et, à mon avis, d’avoir également installé et pris en main Android Studio et Xcode (même si ces dernier ne sont pas absolument nécessaires). C’est d’ailleurs là une première limite : il faut quand même un certain niveau de compétences en développement mobile pour être capable de jongler avec les licences Apple, Android et toutes les clés d’API (Google Maps, Firebase…)…
L’installation du CMS (non comprise dans la journée 🙂 ) se fait bien, mais prend du temps… En résumé, il vous faudra un serveur web (Apache, PHP, MySql) en état de marche et à jour, et un peu de configuration derrière. J’ai cru lire que Siberian ne fonctionne pas sur un hébergement mutualisé, mais je n’ai pas testé.
Perso, j’ai installé SiberianCMS sur une machine virtuelle Ubuntu 18.04 en suivant ce tutoriel : https://websiteforstudents.com/ , puis cette discussion Github car mon Siberian ne trouvait pas ma BD : https://github.com/Xtraball/Siberian/issues/253
Petit aménagement par rapport au tutoriel, il n’y a plus besoin de télécharger SiberianCMS depuis son dépôt Git. Il suffit d’aller sur le site de l’éditeur, et de le télécharger. En réalité, vous ne téléchargerez qu’un « simple » fichier index.php, que vous mettrez sur votre serveur, et qui se chargera de l’installation.
Donc, si tout s’est bien passé vous devriez vous retrouver avec 2 pages principales :
La page de configuration, accessible via l’adresse votreserveur/backoffice :
et la page de « design » de votre future application, accessible à la racine de votre serveur :
La première chose à faire est de configurer notre future application. Tout se fait par l’intermédiaire du back office. Par contre, si vous n’avez pas d’expérience de publication d’applications sur les stores, cette partie risque de vous occuper un moment… Mais la doc est très bien faite. Un peu de patience et de motivation, et cela devrait aller… Attention à la bonne configuration de Firebase qui ma faite tourner en rond un petit moment : https://doc.siberiancms.com/
Ensuite, rendez-vous (enfin) sur la page de création de l’application :
Sur cette première page, vous allez choisir les paramètres globaux de l’application : le fond, la forme des menus, les polices d’écriture, le format de monnaie…
Puis la page « Colors » permet de choisir… les couleurs pour chaque partie de l’app :
Et la page que tout le monde attend : les Features :
C’est ici que l’on va décider des fonctionnalités de notre application. Et c’est aussi ici qu’en tant que développeur.se mobile, on s’aperçoit des limites du système. En effet, si la liste des features gratuites est importante, et que l’on peut également rajouter des fonctionnalité payantes, il sera quand même difficile de réaliser une application complexe (requêtes d’API privées, calculs , affichage personnalisés, …). Même si il doit bien y avoir la possibilité d’intégrer du Javascript quelque part (pas testé), je me suis vite senti.e limité.e.
Heureusement la documentation des fonctionnalité est très bien faite : https://doc.siberiancms.com/ même si pas totalement à jour (je n’ai par exemple jamais pu réussir à faire fonctionner le module « contacts », qui refusait obstinément mon adresse car il n’arrivait pas à la géo localiser. Pourtant, ma clé d’API Google Maps est ok..).
Enfin, on configure l’icône et les derniers petits détails :
Et on peut générer le code source de nos apps (moment un peu magique… 🙂 ) :
Et voici le résultat :
Ensuite, je me suis un peu éloigné de la logique de Siberian. J’ai choisi de télécharger les sources et de les ouvrir avec Android Studio (je n’ai pas testé avec Xcode).
A l’ouverture, Android Studio râle un peu, mais les solutions proposées permettent de revenir sur la bonne voie en quelques clics de souris. Reste à transférer l’application sur un device physique, car chez moi, le simulateur fait chauffer à mort ma machine avec cette application… sans aucun résultat.
Sans surprises, l’application est un peu moins réactive qu’une application native. Même si un mode hors ligne est proposé, elle reste fortement dépendante du serveur. Un paramètre à prendre en compte pour un éventuel passage en production.
Pour la validation sur les stores, je n’ai pas testé. Mais à priori, en publiant soit même l’application, on ne devrait pas tomber sous le coup de la fameuse directive 4.2.6 d’Apple :
« 4.2.6 Apps created from a commercialized template or app generation service will be rejected unless they are submitted directly by the provider of the app’s content. These services should not submit apps on behalf of their clients and should offer tools that let their clients create customized, innovative apps that provide unique customer experiences. Another acceptable option for template providers is to create a single binary to host all client content in an aggregated or “picker” model, for example as a restaurant finder app with separate customized entries or pages for each client restaurant, or as an event app with separate entries for each client event.«
En conclusion, le pari de réaliser une application multiplateforme en 1 journée est réussi, chose que je n’aurai pas (encore…) pu réaliser en Flutter par exemple. Mais, il y a des mais…
Vous l’aurez compris au long de cet article, je reste mitigée vis à vis des générateurs d’applications. Déjà parce que l’on ne sait jamais de quoi demain sera fait par rapport aux exigences des stores (cf Apple et sa directive 4.2.6), et surtout parce qu’au final, on se retrouve vite limité dans les possibilité.
J’ai du mal, pour le moment, et à titre perso, a imaginer une situation dans laquelle je pourrai proposer à un.e client.e une application crée via SiberianCMS à la place d’une application native.
Après, ce n’est que mon expérience personnelle, au jour d’aujourd’hui, et sans doute évolutive. Ce qui n’enlève rien au giga travail qui à été fait pour créer un cms aussi complet que Siberian !
Pingback: Une développeuse au pays du low code… | Pour quelques lignes de plus...
Pingback: Siberian CMS : place à la pratique ! | Pour quelques lignes de plus...