Jump to content

Mise a jour d'une application PhoneGap


Recommended Posts

Bonjour à tous,

J'ai créer une application sous XULRunner qui permet de s’exécuter un peu partout et je voudrais la porter sur Android.

A la base, c'est un site Internet gérable via un backoffice où on peut mettre à jours des fiches produits et autres. Lorsque je lance l'application XULRunner, elle se connecte au site et regarde s'il y a une des mises à jour et si oui, elle les télécharge (images, textes ...). Toute la base de données est faite en SQLite à cause du XULRunner.

Ma question est : Est-ce possible de faire pareil sous PhoneGap ?

J'ai beau regardé la doc http://docs.build.phonegap.com/en_US/3.1.0/index.html je ne trouve rien qui y ressemble.

Avez vous des idées de comment faire ? Et aussi, est-ce possible de télécharger des fichiers et que l'application lise à la fois les données qui sont dans le fichier APK et aussi sur la carte SD ou la mémoire du terminal ? Car je sais d'expérience qu'il n'est pas possible d'inscrire des données au sein même d'un fichier APK déjà installé à moins de refaire un build. Car oui je ne veux pas faire un build toujours les jours, car les données changent assez souvent.

Merci d'avance de vos réponses

Link to comment
Share on other sites

Je ne connais pas PhoneGap mais beaucoup la programmation iOS et un peu Android.

Mais je pense qu'il faut faire ainsi: ;)

1) Tu peux mettre une base de donnée SQLite dans tes packages/ builds.

Pour Android, il y a un wrapper SQLite: c'est simple.

Pour iOS, il faut le faire à la main, mais ce n'est pas compliqué.

Précision: Que ce soit iOS ou Android, tous les assets dans ton packages/ builds vont être mis dans un dossier (ou plusieurs sous Android) de ton application sur le "storage"

Ainsi tu pourras les modifier tout en faisant attention s'il y a une limite de taille du dossier.

Et donc tester une base de données qui grossie, grossie, grossie sans en retirer.

Et oui comme tu peux t'en douter si ton application est sur le store depuis X mois, l'utilisateur devra se farcir les X mois de modifications: à voir s'il y a beaucoup de modifications.

Ou à gérer, avec de nouvelles versions ou des mises à jour non incrémentales.

2) Ensuite c'est au démarrage (*), il faut vérifier sur ton serveur un truc: une empreinte MD5, une liste de changements, je ne sais pas quoi, mais un truc rapide et simple à vérifier.

Que tu auras en double, avec un sur le serveur et l'autre sera mis dans le package/ build. C'est le truc "par défaut" celui avec lequel on fera les différences et qui sera modifié.

Et s'il y a des choses à faire, il faut créer un thread pour faire les modifications en fond de tâche, avec sûrement des connexions serveur.

2.a Démarrage, je récupère le "truc en ligne"

2.b Je fais une différence entre le "truc en ligne" et celui dans mon package/ build (en gros la dernière version officielle)

2.c Si différence -> Un thread pour les modifications

2.d Finalisation du "truc" dans mon package/ build.

Pour iOS, j'avais fait cela quasi à la main, avec un Singleton (pour les données) et Grand Central Dispatch NSOperationQueue

Pour Android, je sais que c'est la chienlit: Parmi les 3 nouveaux threads apportés par Android il faut choisir le seul, l'unique celui qui marche. Et il faut lancer le thread à un moment précis, mais très précis.

* -> Par vraiment à tous les démarrages parce qu'il faut sûrement gérer les passages "background" -> "foreground".

Passages qui doivent être plus rapides qu'un démarrage "à froid".

Link to comment
Share on other sites

Bonjour merci de ta réponse.

Je t'explique PhoneGap car comme tu ne connais pas, tu n'as pas pu répondre avec exactitude.

PhoneGap, est le nouveau nom d'Apache Cordova, racheté par Adobe. Il permet de convertir facilement du langage HTML, JS et CSS en une sort de navigateur qui va lire le tout. Et du coup je ne peux pas (ou ne sais pas comment faire), créer des thread ou des bouts de code en natif.

Mais sinon tant pis, je ferai une version PhoneGap qui sera mise à jour tous les 3 mois. J'espère avoir d'autres réponses pour m'aiguiller.

Merci d'avance

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...