# Systmes > Apple > Dveloppement iOS >  Besoin d'un avis concernant la stratgie des donnes de carte pour mon app

## Mexson

Bonjour,
Je remercie d'avance ceux qui prendront un peu de leur temps pour m'orienter et m'aider dans le dmarrage de mon projet  ::): 

Je vais dvelopper une (premire) application ios. J'ai des bases en C++ et j'ai fait plusieurs recherches concernant l'environnement de programmation apple, donc coder l'application sera un petit challenge mais je pense que je peux y arriver. L o je coince, c'est plutt au niveau de la stratgie que je vais utiliser pour que mon app fonctionne comme je le souhaite, et c'est ici que j'aurais besoin de quelques pistes pour m'orienter.



*Supposons* que mon application permette d'afficher, sur une carte ou sous forme de liste, les friteries les plus proches du lieu o on se trouve (ce n'est pas le cas, mais cet exemple fonctionne  merveille).
Tout d'abord, vu que les friteries ne sont gnralement pas rfrences dans Apple maps, Google maps etc, l'application utiliserait sa propre base de donne. Ensuite, si un utilisateur se trouve  une friterie non rpertorie, il pourrait la soumettre  la base de donne.

Afficher une dizaine de repres sur une apple carte etc, point de vue programmation, OK. Mais,  partir du moment ou il y aurait plusieurs centaines de repres, *comment grer la base de donne ? O et de quelle manire stocker celle-ci et comment la rapatrier ?*

Je ne m'y connais pratiquement pas en base de donnes, je n'ai donc mme aucune ide du format que je devrais utiliser (mais je me dis que pour des coordonnes et des noms, a ne doit pas tre trop compliqu).
Je ne sais pas non plus comment stocker ma base de donne: 
- je pensais d'abord la stocker quelque part sur Internet (dropbox public,...) et que l'app tlcharge la nouvelle version toutes les 2 semaines, mais a risque vite de consommer beaucoup de bande passante et surtout d'tre lent. 
- Utiliser une base de donnes distante, sur un serveur, interroge  chaque affichage de la carte, mais cela signifie que je dois trouver une solution d'hbergement efficace, donc srement payer (alors que mon app serait gratuite...) et de plus je doute que j'ai les comptences requises.
- Stocker la bdd dans mon app, mais a vaut dire que je ne peux mettres  jour les points de la carte que via une mise  jour sur l'app store, c'est lourd. 

... Comme vous le voyez, je suis un peu paum sur la partie "gestion de mes repres carte" si vous voyez ce que je veux dire ... 
Quel serait le moyen le plus simple pour afficher tous ces repres tout en tant en mesure d'actualiser rgulirement ces lieux ?
Un dbut de solution ou quelques liens humainement comprhensibles seraient vraiment plus que les bienvenus, car mes recherches m'ont men vers des explications trs compliques voire hors sujet...



En fait, cette partie l du dveloppement de mon application me dcourage beaucoup... Est-ce rellement trs difficile  mettre en place ? Est-ce que je ne me rend pas compte des difficults auxquelles je vais tre confront ? :/


Merci beaucoup d'avance !  ::):

----------


## foetus

1) J'avais vu un article sur Internet en 2012. Je n'arrive pas  le retrouver  ::wow:: 

Mais en gros, en fonction du niveau du zoom (plus tu zoomes, moins tu auras de marqueurs), il faut faire des statistiques (quelques formules de mathmatiques) pour dcouper ta carte et calculer des zones plus ou moins gales de marqueurs et ensuite n'afficher qu'un marqueur spcial avec le nombre de marqueurs rels au centre de chaque zones calcules.


2) Il faut faire des mises  jours incrmentales  ::mrgreen:: 
CoreData le permet, mais plus tu auras de mises  jour plus cela va tre compliqu ( moins que tu obliges l'utilisateur  faire certaines mises  jour dans un ordre prcis)

----------


## LeBzul

> 1) J'avais vu un article sur Internet en 2012. Je n'arrive pas  le retrouver 
> 
> Mais en gros, en fonction du niveau du zoom (plus tu zoomes, moins tu auras de marqueurs), il faut faire des statistiques (quelques formules de mathmatiques) pour dcouper ta carte et calculer des zones plus ou moins gales de marqueurs et ensuite n'afficher qu'un marqueur spcial avec le nombre de marqueurs rels au centre de chaque zones calcules.


Il existe pas mal de chose trouvable sur le net, de plus ou moins bonne qualit (et plus ou moins soumis  licence).. 
Voici 2 / 3 exemples trouv rapidement, je pense qu'en cherchant un peu plus on peut trouver de belles choses :

lien 1
lien 2
lien 3

----------


## Mexson

> Il existe pas mal de chose trouvable sur le net, de plus ou moins bonne qualit (et plus ou moins soumis  licence).. 
> Voici 2 / 3 exemples trouv rapidement, je pense qu'en cherchant un peu plus on peut trouver de belles choses :
> 
> lien 1
> lien 2
> lien 3


Merci pour vos reponses !
En ralit, je me disais que mon app afficherait, pour reprendre mon exemple, toutes les friteries "dans un rayon de 1km", ce qui veut dire qu'il n'y aurait qu'un ou deux lments a afficher sur la carte, et que donc, en tout cas pour le moment, je peux me permettre d'afficher les reperes "normalement", sans les rassembler.
N'empche, je retiens pour plus tard !

Ma question concernait en fait surtout la base de donne en elle-mme...




> 2) Il faut faire des mises  jours incrmentales 
> CoreData le permet, mais plus tu auras de mises  jour plus cela va tre compliqu ( moins que tu obliges l'utilisateur  faire certaines mises  jour dans un ordre prcis)


Merci de me mettre sur la piste de CoreDate. Je vais faire quelques recherches car je ne le connais absolument pas. J'ai deja jet une oeil sur google et ca a l'air tout de mme compliqu... Moi qui esprais sur ce point quelque chose de plus simple...
Et aussi, j'ai pas trop compris la dernire phrase: pourquoi les utilisateurs devraient-ils faire leur mj dans un ordre precis ??

----------


## foetus

> Et aussi, j'ai pas trop compris la dernire phrase: pourquoi les utilisateurs devraient-ils faire leur mj dans un ordre precis ??


J'avais lu un bouquin sur CoreData et justement la partie incrmentale n'tait pas trs claire  ::?:   ::?: 
Mais avec 2-3 cas concrets cela doit se clarifier  ::mrgreen:: 

Ce que j'avais compris c'est: ta base de donnes est  la version 5, tes utilisateurs de la version 1  la version 4.
Mais ta version incrmentale numro 5 ne s'applique qu' la version 4, et non pas  la version 1, 2, et 3.
C'est le principe _incrmental_  ::mrgreen:: 
C'est au dveloppeur de coder les mises  jour successives de la version de l'utilisateur  la dernire version 5.

Aprs tu peux srement faire en sorte qu'une version (par exemple la version 4) soit une grosse mise  jour, et que cela vite de mettre  jour la version 1, ensuite la 2 et enfin la 3.

D'o ma phrase  ::mrgreen:: : si ta base de donnes est  la version 11 et tu as quand mme 2 grosses mises  jour (par exemple, la 5 et la 10), il faut, au plus, appliquer la mise  jour n5 et ensuite la n10 pour passer  la version 11.

----------


## LeBzul

Je pense que le top, simplicit/efficacit, c'est d'avoir une BDD externe et un petit webservice pour permettre a ton app de rcuprer les informations dont elle a besoin facilement et de faons scuris.
Ca dpend du volume de donnes, mais s'il reste faible, en cherchant un peu sur le net, il y a des services gratuits d'hbergement de site et de BDD.

Sinon, une autre solution est de mettre de la pub et esprer que ca paye l'hbergement.
Google et Amazon propose ce genre de service en payant uniquement au volume d'utilisation/stockage, il me semble.




> - Utiliser une base de donnes distante, sur un serveur, interroge  chaque affichage de la carte, mais cela signifie que je dois trouver une solution d'hbergement efficace, donc srement payer (alors que mon app serait gratuite...) et de plus je doute que j'ai les comptences requises.


En optimisant un peu, avec un petit systme de cache par exemple, tu peux grandement diminuer le nombre de requte.
Appel un webservice qui va faire les requtes  la BDD externe, ou avoir une BDD interne et du coup faire les requtes en interne, c'est quasiment la mme difficult.

----------

