CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Android] Modélisation & Persistance des données

dark_drow
dark_drow
Niveau 15
27 avril 2015 à 14:15:51

Salut !

J'ai un projet à faire sous Android assez basique (enfin je crois) mais j'ai une question peut être un peu simpliste pour les connaisseurs (je découvre Android depuis 3j, après 2 ans d'iOS) :

C'est une application multi-utilisateurs et l'idée est d'aller chercher un set de photos par utilisateurs. Dans un soucis d'optimisation j'aimerai sauvegarder les photos sur le téléphone pour ne pas avoir à les télécharger à chaque fois.

Côté modélisation, je me tâte à faire juste une classe Photo avec un id utilisateur et la photo associée.
Côté persistance je ne sais pas trop... j'ai vu que l'on peut faire du SQL avec Android, mais est-ce bien adapté pour si petit modèle ? Peut on faire plus simple en sérialisant juste un gros set de Photo ? Pour les images, même question, je crois qu'on peut enregistrer sur la carte SD, ça serait la meilleure solution ? Et aussi, y a t'il un moyen de restreindre éventuellement l'accès aux photos via le File Explorer si je dois faire cela ?

J'ai aussi vu une lib pour télécharger des photos avec du caching (Universal Image Loader) mais j'ai un peu de mal à connaitre les limitation de ce genre de procédé.

Merci d'avance pour vos éclaircissement :)

dark_drow
dark_drow
Niveau 15
27 avril 2015 à 14:22:33

Ah et niveau contraintes, l'app doit être native (Java :s), réactive, niveau utilisateurs ça devrait être entre 50 et 500 (niveau nombre de photos ça risque d'être tout de même assez costaud) par contre la place que pourrait prendre l'app n'est pas une contrainte si on peut stocker les data sur la SD d'une manière ou d'une autre :)

godrik
godrik
Niveau 30
27 avril 2015 à 16:52:40

Pour les images, même question, je crois qu'on peut enregistrer sur la carte SD, ça serait la meilleure solution ? Et aussi, y a t'il un moyen de restreindre éventuellement l'accès aux photos via le File Explorer si je dois faire cela ?

La carte SD sur un telephone android est typiquement formate en FAT, Donc pas de protection d'access.

Côté persistance je ne sais pas trop... j'ai vu que l'on peut faire du SQL avec Android, mais est-ce bien adapté pour si petit modèle ? Peut on faire plus simple en sérialisant juste un gros set de Photo ?

J'ai l'impression que c'est la version la plus simple. Du coup, je commencerais par ca.

Bunyan
Bunyan
Niveau 17
27 avril 2015 à 21:35:09

Pour info : vu que tu viens du merveilleux monde Apple, fait attention à la mémoire vive. Android garanti 16 Mo pour une application. C'est tout. La RAM allouée à chaque app' dépend des terminaux et des versions. Sauf sur des brontosaures, ce n'est plus vraiment un problème, mais oublie l'app' qui prend 116 Mo de RAM sur iPad ou iPhone 6 :)

Tu cherches à faire une application qui se rapproche, dans le concept, de pinterest je trouve.
Tu cherches à réaliser un cache. A déterminer ensuite si ce cache-là doit être par session ou persistant. Le goulot sur un cache par session sera la RAM et il faudra faire des écritures disque pour la conserver, ce qui créera un temps (léger) de latence qui peut habilement être masqué via divers effets ou ergonomie.
Pour un cache persistant, il faudra que tu sauvegardes sur le disque. Ici, pas de miracle, soit en "interne" à l'application, soit sur la carte SD. L'interne est limité (je ne sais pas à combien) et la SD n'est pas protégé.

Pour info, n'importe qui ayant un smartphone rooté pourra accédé comme il veut à chacune des sections, y compris au cache. Tu ne peux pas du tout protéger tes images de quelqu'un qui les veut.

Pour plus tard, quand tu seras en phase de recette (donc potentiellement tôt) : intéresse-toi à Crashlytics et active-le sur les builds de recette et de prod en mettant à ces deux buildTypes des suffixes différent dans ton build.gradle, ça pourra BEAUCOUP t'aider sur le long terme.

Pour des réponses plus précises : je ne comprends pas le projet. Il y a du multi-user, mais à part ça... Je ne comprend pas ce que ça apporte, comment ils interagissent...
De base, le projet ne m'a pas l'air "tout petit".

dark_drow
dark_drow
Niveau 15
28 avril 2015 à 10:44:21

Le 27 avril 2015 à 21:35:09 Bunyan a écrit :
Pour info : vu que tu viens du merveilleux monde Apple, fait attention à la mémoire vive. Android garanti 16 Mo pour une application.

Ahh je comprends mieux certain tuto maintenant ^^ Effectivement il me manquait quelques billes :)

Pour des réponses plus précises : je ne comprends pas le projet. Il y a du multi-user, mais à part ça... Je ne comprend pas ce que ça apporte, comment ils interagissent...
De base, le projet ne m'a pas l'air "tout petit".

Sisi en fait je peux pas trop parler du concept (car ce n'est pas le mien) mais en gros, c'est pas beaucoup plus gros ce que je viens d'énoncer... Imagine une tablette "familiale" ou chaque personne de la famille aurait un compte avec sa galerie de photo^^ (avec les photos synchro sur un serveur pour pouvoir y accéder/uploader depuis le web) Du coup, le côté encryption des datas n'est pas la priorité mais ça aurait pu être un plus.

Sur iOS je pense que ça m'aurait pris une semaine maxi à faire sans optimisation de folie, sur Android je commence doucement mais je trouve que le java rend les choses compliquées... Je suis étonné de la complexité/quantité de code à mettre en place pour faire des appels REST par exemple.

Bunyan
Bunyan
Niveau 17
28 avril 2015 à 13:23:46

C'est la différence que je vois entre Android et iOS.
Sur Android : quoi qu'il y ait à faire, c'est long et tu en chies. Le bon point est que tu ne te rends même plus compte que tu fais des trucs difficiles tellement tu t'es habitués à la difficulté. Le mauvais point est que tu galères inutilement pour des trucs de base.
Sur iOS : tant que tu restes dans les sentiers battus, tout est facile. Dès que tu en sors, c'est l'Enfer sur Terre. Le bon point est que les app' se font assez rapidement, c'est rare de devoir sortir des sentiers battus mine de rien. Le mauvais point est que dès que tu tombes sur un truc un peu complexe, tu es perdu.

Pour les appels REST, tu peux utiliser des bibliothèques. Tu as Volley, qui est pas mal de mémoire mais je crois que son développement a été arrêté. En cherchant, je tombe rapidement sur retrofit, qui m'a l'air aussi pas mal.

DirectX11
DirectX11
Niveau 6
29 avril 2015 à 00:19:43

Pas besoin de lib pour faire du rest sur android faut arrêter l'assistanat :hap:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment