Une liseuse de BD ? Oui mais comment ?

Bonjour à  tous,


 


Ca fais un moment que j'ai en tête de faire un petit programme iOS pour lire des BD. Plusieurs existent déjà  mais il manque (à  mon avis) au moins une fonction importante que je n'ai pu trouver au sein de ces logiciels.


 


J'aimerais donc me lancer mais avant même d'écrire les premières lignes de code, j'aurais une question car je n'ai aucune idée de comment traiter les fichiers zip, cbz et cbr. Comment, d'après-vous, faut-il procéder ? Décompresser l'archive ? Ou existe t'il une API pour lire à  l'intérieur ?


 


J'ai fais quelques recherches sur le sujet mais pour le moment infructueuses.


 


Après j'imagine que c'est assez "simple", il suffit d'avoir la liste de toutes les images dans un tableau et au swap de l'utilisateur avancer ou reculer en fonction ? Reste le travail graphique de l'interface... (en gros)


 


Merci pour votre aide et bon fin de week-end à  tous.


Réponses

  • AliGatorAliGator Membre, Modérateur
    Pour le zip (et donc le cbz aussi) t'as zlib qui devrait te permettre de lire dans les Zips sans tout desarchiver.

    Tu as aussi certainement plein de Pods qui doivent fournir des wrappers autour de la zlib pour te permettre de l'utiliser avec une API plus sympa en ObjC plutôt qu'en C pur. Ne pas hésiter donc comme d'hab à  faire un `pod search` " ou chercher sur cocoapods.org


    Après pour le reste ce n'est pas si simple non plus, si tu veux juste afficher les images ouais tu peux juste les lire et changer l'image au swipe de l'utilisateur. Mais vu que tu vas manipuler beaucoup d'images potentiellement volumineuses il faut aussi s'assurer de la bonne stratégie :

    - Chargement : mettre en cache toutes les images au risque de consommer un Max de mémoire ? Ne garder en memoire que l'image courante au risque qu'à  chaque swipe à  la page précédente ou suivante ça lag un peu le temps de charger l'image depuis le disque ? Un compromis entre les deux ?

    - Affichage : une grande scrollView paginee avec autant de pages que de pages de ta BD : très mauvaise idée (consommation memoire, aucun recyclage, Bad design), une collectionView (beaucoup mieux !), un UIPageViewController ?


    Vu le sujet (logiciel manipulant beaucoup d'images) il va falloir faire gaffe à  la consommation memoire et optimisation en conséquence. Instruments va vite devenir ton meilleur ami.


    Et puis évidemment il y a les challenges d'implementation des petits détails, genre si tu souhaitais développer une telle feature, comment détecter automatiquement les cases de la planche BD pour zoomer dessus quand l'utilisateur veut un peu zoomer pour lire plutôt que voir la pleine page mais en trop petit ? Etc.
  • novembre 2014 modifié #3

    Merci Ali pour cette analyse. Concernant les performances, j'avais pas vu ça sous cette angle et du coup, je comprends pourquoi l'App que j'utilise actuellement s'accade de temps en temps.


     


    Je vais voir du côté des pods et de la zlib. Après oui, l'implémentation des "petits détails" va prendre un moment, c'est souvent le cas.


     


    Pour finir, je ne prévois pas d'aller si loin, je parle au niveau du zoom, dans les feature de l'App. Je lis pas mal de BD et je ne zoom que très rarement. Après, chaque utilisateur à  bien sur ces besoins et ses manipulations. De toute façon je veux voir comment ce passe le début du dev de cette App et je reste ouvert à  toute évolution et/ou idée.


     


    A oui, pour l'affichage des BD, je suppose qu'on passe par un CollectionViewController ? Enfin, du moins ça me parait le plus adapté non ?


     


    Merci.


     


    EDIT : j'ai trouvé ce pond : https://github.com/talk-to/CocoaZ mais j'ai bien peur que ce ne soit que pour compresser ou décompresser. Sinon peut-être celui-ci : https://github.com/flyingdolphinstudio/Objective-Zip/blob/master/GETTING_STARTED.md


     


    Rien trouvé sur les rar pour le moment mais je vais continuer de chercher.

Connectez-vous ou Inscrivez-vous pour répondre.