Développer une appli à  partir d'un site web

Bonjour à  tous,


Je voudrais créer une application sous iOS qui permettrait de reprendre une partie des données d'un site web fait avec joomla (articles, photos, différents menus, ...)


J'ai une question pour savoir comment je pourrais faire cette appli, jai 2 solutions et je ne sais pas quelle solution choisir et surtout comment développer ces solutions sous objective c (étant débutant en objective c voire Swift et étant surtout débutant en langage object) :


- soit faire un script en php qui me permet de récupérer tous les menus et ensuite un autre script qui me permet de récupérer le bon article en fonction du menu. Mais le problème c'est que chaque script va se connecter à  la bdd et faire la requête sql. (1 accès à  la bdd pour chaque donnée à  récupérer de la bdd)

Est ce qu'avec cette solution il est possible de se connecter à  la bdd au début et ensuite ne faire que les requêtes sql (via script) qui me ramèneront du Json ?


- autre solution (si c'est possible) de récupérer toutes les données de ma bdd sur le serveur (au lancement de l'application) et les mettre dans une bdd locale à  l'appli et donc travailler directement sur celle locale.

Comment faire pour faire cette solution? Y a t il des méthodes particulières à  utiliser pour récupérer les données au lancement de l'application ?


Si vous avez des conseils, votre aide me sera très précieuse et si vous avez une autre solution pourquoi pas.


Merci en tout cas pour votre aide sur ce sujet.

Réponses

  • La meilleure solution ici est de faire un script PHP qui te permette de faire du REST.


    Tu fera tes queries directement sur ton serveur sans passer par un driver MySQL et tu récupéreras le tout en JSON dans ton appli (Alamofire est bon pour ça).


     


    La solution de tout DL en local n'est pas une solution.


     


    Sinon apprends directement en Swift l'obj-c ça meurt chaque jour un peu plus.


  • Inscrit-toi à  ce MOOC (cours en ligne) sur l'apprentissage du Swift, commençant le 14 Mars :


     


    http://forum.cocoacafe.fr/topic/15106-mooc-programmation-ios-sur-edx/


     


    C'est gratuit et d'excellente qualité. Ce n'est pas le premier MOOC de ce professeur. J'ai beaucoup appris avec les cours précédents.

  • CéroceCéroce Membre, Modérateur
    février 2017 modifié #4
    Je pense qu'il faut aussi considérer une approche plus large.

    Une appli est-elle seulement nécessaire ? Adapter le site web au mobile ne serait-il pas suffisant ?
    Il se trouve qu'aujourd'hui, seulement un tiers (oui, 1/3 !) des utilisateurs téléchargent de nouvelles applis. La plupart des utilisateurs se contentent de quelques applis. Il faut dire qu'il y en a un peu marre de devoir installer sans arrêt de nouvelles applis, alors qu'on pourrait consulter un bête site web. (Sachant qu'un site web peut avoir son icône sur l'écran d'accueil de l'iPhone depuis des années).

    Il y a aussi l'approche hybride: utiliser une Web-view qui affiche en fait du contenu web, et faire appel à  du code natif quand c'est nécessaire.

    Il faut aussi considérer React Native. J'utilise l'application TomTom Sports, et franchement, je n'ai vu que c'était du React Native que parce qu'il y a une section où ils indiquent les bibliothèques open-source utilisées.

    Une application native est ce qu'il y a de mieux, mais il faut voir l'usage avant d'opter pour cette solution, et aussi l'investissement personnel tu es prêt à  faire, et si une version Android est envisagée.
  • Bonjour,


     


    Le plus simple serait de trouver une plugin REST qui permette d'accéder aux données du site au format JSON par exemple  (peut être cette fonctionnalité existe-t-elle en natif). Ensuite avoir un script ou une application, autonome ou manuelle, qui va piocher les informations utiles pour ton application mobile et alimenter une autre base (Firebase au hasard ou tout autre base NOSQL ou même SQL si des requêtes complexes doivent être conservées entre les tables).


    L'avantage c'est que ton application n'est pas directement lié au site, ainsi même en maintenance l'application mobile continue de fonctionner. Autre avantage c'est qu'il est possible d'alimenter la base de l'application mobile par d'autre sources que celle du site.


     


    L'aspect le plus "complexe" de cette solution est le script ou l'application qui va faire le lien entre les deux bases.

  • Bonjour,


     


    Merci pour vos réponses. 


    Si je comprends bien toutes vos réponses, il me faudrait installer par exemple un composant jBackEnd sur mon site joomla pour me permettre d'avoir une API Rest.


     


    Une fois cela, je pourrais ensuite me servir de cette API pour effectuer mes requêtes GET depuis l'application c'est bien cela ?


    Que faut-il utiliser pour utiliser une API Rest depuis une application IOS ? Y a t il des méthodes particulières à  appeler ? Je suis un peu perdu pour savoir comment appeler une API depuis Objective C ou Swift ?


     


    merci d'avance pour votre aide. 


  • LeChatNoirLeChatNoir Membre, Modérateur

    La question de Céroce est pertinente : Joomla propose des templates responsives qui permettent de proposer ton site web sur mobile sans effort.


     


    Le seul intérêt de faire une appli, ça serait de proposer des services en plus.


     


    Par exemple :


    => accéder aux données sans connexion


    => proposer un service avec notifications


     


    Ce genre de choses. Sinon, ca sert à  rien a priori.


  • Bonjour,


    Le but de faire une application à  partir de ce site web est surtout d'apprendre à  faire une application web et donc à  apprendre le développement sous iOS voire Android plus tard.

    Ensuite si j'arrive à  faire l'application, je mettrais certainement des nouveautés autre que ce qu'il y a aujourd'hui sur le site web, les notifications, ...


    Par contre jai un peu de mal à  comprendre le principe de l'API rest et de savoir comment coder en objective c ou en Swift.


    Merci pour votre aide.
  • LeChatNoirLeChatNoir Membre, Modérateur

    ben là , on peut pas t'aider.


     


    Soit tu te payes une formation, formation en ligne ou un bouquin :)


  • Bonjour,


     


    Je me suis mal exprimé en fait je voulais dire j'ai dû mal à  voir comment créer une API rest sur le site web et comment l'appeler en objective c ou en swift. 


  • CéroceCéroce Membre, Modérateur
    février 2017 modifié #11
    Habituellement le serveur renvoie les données sous une forme facilement parsable, comme du JSON. On peut certainement faire ça avec Joomla.

    Le mobile se connecte en HTTPS. Sous iOS, tu peux utiliser NSURLSession pour cela. Il faudra aussi parser le JSON. On peut utiliser NSJSONSerialization, mais en pratique, c'est pénible en Swift, alors utilise SwiftyJSON. Cela va nourrir la couche Modèle du MVC.

    Je ne vais pas entrer dans les détails, nous avons parlé un tas de fois des webservices, fais une recherche, et pose tes questions sur des points particuliers.
Connectez-vous ou Inscrivez-vous pour répondre.