Développement d'applications natives avec Cordova

Bonjour. J’aimerai mettre en place, dans le contexte de mon pays, une application comme celle-ci iOS et Android
Je compte le faire avec Cordova. Ma question est de savoir comment je vais m’organiser pour stocker les contenus des cours en dehors de mon application? Question de ne pas la rendre lourde. J’ai l’impression d’être limité avec les technologies qu’offrent le développement avec Cordova.

Hello,

pas le choix, si tu veux t’orienter vers une appli cordova qui ne contient pas les données à la base, il faut t’appuyer sur un backend, qui sera disponible en ligne et auquel ton appli va se connecter au démarrage pour charger son contenu dynamiquement.

Actuellement ce qui se fait beaucoup, ce sont les API REST, basées sur node/restify, rails/grape ou d’autres. Cette API te permet de communiquer de manière normalisée avec ton application, sous la forme de fichiers textes formatés en JSON.

L’avantage, c’est que tu n’auras pas besoin de recompiler/redéployer ton appli à chaque changement de contenu. Inconvénient, c’est tout de même un plus gros boulot, et ça va demander de l’hébergement et de la maintenance.

Plutot que d’utiliser cordova “pur”, jette donc un oeil à Ionic, un framework qui s’appuie sur cordova, mais qui te propose tout un tas de helpers géniaux.

Bon courage ! Alex

1 « J'aime »

Merci Alex. Je me suis rendu compte, depuis un temps, qu’il fallait vraiment que je développe avec ionic. J’ai un peu lu la doc officielle mais je n’ai pas trouvé un endroit où on parle justement des ‘‘helpers’’ dont tu parles qui pourront m’aider à résoudre ce problème. Tu as un exemple d’un lien?

Pour ton problème de stockage de cours, c’est pas sur ionic, que tu te trouveras. Ionic est en fait un framework front end pour les applications mobile (avec effectivement plein de helper mais helper d’interface).
Documentation de ionicframework : http://ionicframework.com/docs/
Ionic possède un très bon CLI aussi, avec pas mal de helper : https://github.com/driftyco/ionic-cli

Ionic s’appuie sur angular, ce qui est pratique pour faire des applications s’appuyant sur une API (REST de préférence).

Pour ton problème effectivement, il faut que tu partes sur une solution d’un backend avec une API. Selon la technologie serveur que tu utilises, il y’a beaucoup de solutions.

Les helpers sont de plusieurs formes, un peu comme avec bootstrap si tu connais. Tu as une partie purement UI (CSS components), une partie plus technique (Javascript), avec tout les helpers angularJS qui te permettent d’intéragir avec le téléphone (appareil photo par exemple) ou de créer des écrans + dynamiques (via des sliders, des popovers, des boutons d’action, etc). Tu as aussi une base d’icones (ionicons) pour faciliter le travail avec les icones (elles sont déjà optimisées pour mobile, multi format, etc).

Enfin comme l’a dit PJ, tu as le CLI, la ligne de commande ionic, qui fait ENORMEMENT de trucs. Et qui a mon avis est le plus gros avantage d’Ionic par rapport à tous les autres frameworks hybrides.

Tu retrouve tout ça ici :

A + !

Je connais pas Cordova mais il me semble que cela génère des applications hybrides ? Dans ce cas, on ne peut pas utiliser un couple JSON static - local storage/DB pour travailler “offline” et utiliser éventuellement un backend pour la mise à jour des données ?

Merci PJ. Si je comprends bien, je dois le faire avec Angular?

@loganm Cordova c’est de façon grossière une librairie, qui permet à l’aide de différent plugin de faire le lien en javascript avec les fonctionnalités native de ton téléphone, comme accèder à la camera, savoir si le téléphone est en wifi ou pas. Ce qui permet de développer des apps hybride en html5 et d’utiliser cordova. Pour répondre à ta question, si on peut faire comme tu dis mais faire comme ça, t’oblige à faire une synchronisation entre ton app mobile et ton backend pour maintenir les données à jour, autant faire une app mobile qui dialogue directement via une api, sauf si dans ton use cas, tu as vraiment besoin d’une app mobile pouvant fonctionner sans aucun réseau internet.

@alpha_job Ionic utilise angular, donc si tu veux utiliser ce framework oui. Mais en fait, ton application reste une application web classique, tu peux l’as faire avec du react.js si t’as envie et pour build ton application, tu peux utiliser http://phonegap.com/ au lieu de Ionic. Mais moi je conseille, Ionic, je m’y suis mit sans être à l’aise avec le javascript et sans rien connaitre à angular, avec quelques tutos et quelques heures de pratique, on s’y fait assez rapidement

2 « J'aime »

Merci pour vos réponses très riches.
J’ai retenu Ionic comme framework à utiliser pour l’interface de mon application.
En ce qui concerne l’aspect back-end pour mes cours, Il me semble que cette application vient déjà avec l’ensemble des cours. J’ai essayé de désactiver la connexion Wi-Fi, désinstaller puis réinstaller mon application et j’ai eu accès à tous les cours sans problèmes. Sinon, question d’innover, je peux créer une solution back-end afin de mettre à jour les cours aisément. Avez-vous un exemple de tutoriels pour apprendre à utiliser AngularJS afin de mettre en place cette solution ? Ou une documentation sur les API REST avec AngularJS ? (Je ne suis pas pro, je ne sais pas trop de quoi il s’agit).
Merci.

Le site d’AngularJS est plutôt bien fait. Pour la partie backend vu que c’est du REST, tu as l’embarras du choix : Spring MVC avec Java (Ex : http://tahe.developpez.com/java/spring/serge-tahe-spring-mvc-rest-security-cors-angularjs-tutoriel-debutant/) ou relativement populaire MEAN (MongoDB, Express.js, AngularJS, Node.js).

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s