Quelle est la facon la plus judicieuse de stocker l 'equivalent d'une base de données PC sur mobile

Toutes les questions sur le développement Mobile, y compris la partie script.
lmo92
Messages : 35
Inscription : 09 Sep 2023 11:10

Quelle est la facon la plus judicieuse de stocker l 'equivalent d'une base de données PC sur mobile

Message par lmo92 » 27 Sep 2023 14:16

Bonjour,
Je suis nouveau sur Unity ainsi que sur mobile.
J'ai besoin de creer une base qui reprends une liste d'animaux avec diverses caracteristiques.
Je serai naturellement parti sur une base de données ( nom, type, couleur, race, X, Y , Z .. ) , ayant besoin apres de faire des recherches basées sur ces criteres.
Sur mobile, pas de Mysql ni MS SQL, j'ai lu que l on pouvait utiliser postgres par ex.
Quelle en est la fiabilié ? est ce vraiment la meilleure option ?
Autre point assez important : si un petit bidouilleur arrivait a recuperer le ficher postgres, il aurait acces un une grosse partie de la valeur ajoutée de l'app, d'ou mon deuxieme doute sur l utilisation d'une base ?
Merci pour vos retours avisés et expérimentés

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Quelle est la facon la plus judicieuse de stocker l 'equivalent d'une base de données PC sur mobile

Message par boubouk50 » 27 Sep 2023 14:35

Pour les BDD intégrées, j'utilisais SQLite4Unity sur mobile il y a 8-10 ans. Ça fonctionnait bien, c'était simple d'utilisation et à mettre en place. Par contre, la bdd n'était pas intégrée à la compilation, mais dans un dossier StreamingAssets qui était accessible par les "petits malins". Élément externe (asset bundle), elle était mise à jour simplement par l'utilisateur, en téléchargeant une seule fois la dernière version du bundle (ensuite, elle est en cache).

Tu as aussi la possibilité d'intégrer la BDD directement dans Unity, avec des scriptableObjects, mais toute modification nécessite une recompilation, donc une mise à jour de l'application entière.

Enfin, et là ce n'est pas mon rayon, la solution la plus fiable reste le serveur distant. Les données ne sont pas dans l'appli donc aucune MàJ nécessaire pour une modification en BDD, appli moins lourde aussi (même si généralement ce n'est pas lourd une bdd) et un contrôle des accès.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

lmo92
Messages : 35
Inscription : 09 Sep 2023 11:10

Re: Quelle est la facon la plus judicieuse de stocker l 'equivalent d'une base de données PC sur mobile

Message par lmo92 » 27 Sep 2023 14:58

Bonjour !
Les informations devront etre dispo offline, donc pas de possiblité pour un serveur centralisé en live.
J'ai omis un point important : le contenu de la base peut etre mise a jour ( et la pour le coup, une connection internet peux etre un requirement de base ). De ce que tu ecris, j'en deduis que seule l option d'une base accessible dans "SreamAssets" ?
Pour l exemple, il y a 50 animaux et avec un achat en ligne, on en rajoute 10 qui viennent d ajouter la liste existante.
Les 60 sont donc sur la device, mais disponibles que la device soit connectee ou non a internet.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Quelle est la facon la plus judicieuse de stocker l 'equivalent d'une base de données PC sur mobile

Message par boubouk50 » 27 Sep 2023 16:02

Pour les achats en ligne, je ne peux t'aider.
Il va falloir se documenter auprès des systèmes d'achat en ligne, mais je pense que les solutions sont mises en place par ces sytèmes. Par ex, un token qui permet de savoir si tel ou tel achat a été fait.

Il faut aussi faire le distinguo entre l'achat et l'élément acheté.
Ce que tu externalises, c'est plutôt l'achat, pas forcément l'élément acheté. Se connecter à une BDD en ligne permet de savoir quels achats ont été faits, mais c'est dans l'application que tu décides d'accéder à du contenu ou non.
Donc si l'accès en ligne est possible, tu vérifies sur la BDD en ligne, sinon, tu lis sur une donnée stockée localement (encryptée/hashée/offusquée) pour le savoir.

Pour moi, les données sont déjà présentes dans l'application, et ce sont les achats qui décident si tu y accèdes ou non. Ou alors, passer par des asset bundles à télécharger.
Cela permet de gérer des simples clés indéchiffrables pour gérer les accès aux ressources.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »