iPocket Draw

Eric P.Eric P. Membre
02:37 modifié dans Vos applications #1
Bonjour,

Je viens de soumettre une pré-version d'une nouvelle application sur AppStore : iPocket Draw http://www.adx-online.com/prog/ipocketdraw/ipocketdraw.html.
Je pense que cela va être le 1er programme de dessin vectoriel sur l'iPhone et iPod touch.
Actuellement ce n'est qu'une pré-version mais qui permet déjà  de dessiner, de sélectionner les objets, de les modifier.
Par contre, il manque :
- l'enregistrement des fichiers;
- le transfert des fichiers vers un ordi.;

Donc si vous avez des info. sur ces sujets, je suis intéressé.

Merci

Eric

«1

Réponses

  • CeetixCeetix Membre
    02:37 modifié #2
    Sympa mais en effet s'il manques l'enregistrement des fichiers c'est un peu voir beaucoup contraignant. Pour l'enregistrement de fichier une recherche devrait suffire pour t'aider ^^.
    Sinon beau boulot quand même, juste palier ce "problème" et ce sera parfait :)
  • GreensourceGreensource Membre
    02:37 modifié #3
    Bonjour! Si je puis me permettre, c'est quoi la différence entre du dessin vectoriel est du dessin "normal"?
  • Nebuchad34Nebuchad34 Membre
    02:37 modifié #4
    Un dessin vectoriel est "généré" par des courbes dont la forme est donnée par des points munis de vecteurs servant à  choisir l'inflexion de la courbe en chaque point. Ainsi le dessin généré ne dépend pas de la résolution. En bref, On peux zoomer dans un dessin vectoriel indéfiniment sans obtenir de pixellisation, à  l'inverse d'un dessin normal ou "bitmap".
    ;)
  • CeetixCeetix Membre
    02:37 modifié #5
    Par exemple GreenSource, si tu veux faire une affiche à  imprimer tu la fais en vectoriel (illustrator par exemple) comme ça plus tard si tu as besoin d'un format assez grand tu pourras agrandir ton oeuvre sans qu'elle pixellise (ce que photoshop ferait).
  • GreensourceGreensource Membre
    02:37 modifié #6
    A chaque point on associe un vecteur? Ca dois prendre une place monstre ce genre de fichier non?
  • Eric P.Eric P. Membre
    02:37 modifié #7
    Bonjour,

    En fait ça dépend du type d'objet :
    - pour une ligne, un rectangle ou une ellipse par exemple, 2 points suffisent pour les définir géométriquement;
    - pour un polygone, il faut les coordonnées de tous les sommets;
    etc...
    Bien sûr, il faut en plus les attributs de dessin : type de ligne, épaisseur, couleur du trait du fond...
    Un même dessin prend moins de place en vectoriel.
    Outre la possibilité de zoomer, tous les objets sont connus individuellement et donc sélectionnables et modifiables (géométrie et attributs).
    Voilà 

    Eric
  • AliGatorAliGator Membre, Modérateur
    02:37 modifié #8
    En fait le dessin vectoriel décrit des formes géométriques.
    Là  où le dessin bitmap (celui que tu appelles "normal") décrit chaque pixel un par un, en lui associant une couleur (donc la taille de l'image bitmap = largeur*hauteur*nombre d'octets nécessaires pour indiquer la couleur d'un pixel, en gros), le dessin vectoriel décrit que là  y'a un cercle, là  y'a une ligne, là  y'a une courbe de bézier qui va de là  à  la avec telle courbure...

    D'ailleurs quand tu utilises les NSBezierPath (ou CGPath en CoreGraphics pur et en iPhone), tu fais du dessin vectoriel avec Cocoa.

    Bien sûr le dessin vectoriel est adapté par exemple pour les dessins de diagrammes (où tu décris un rectangle, une ligne reliant ce rectangle à  un autre, un cercle à  tel endroit de tel rayon...), pas pour dessiner la Joconde ou décrire une photo prise par ton appareil photo !!
  • GreensourceGreensource Membre
    02:37 modifié #9
    Ok ok, merci les choses sont plus claire dans ma tête!
  • schlumschlum Membre
    02:37 modifié #10
    Tu peux te repérer au format aussi  :P
    .pdf, .eps, .ps, .svg -> vectoriel
    .tiff, .png, .jpg, .gif -> bitmap

    Et Wikipedia is your friend  ;)
    http://fr.wikipedia.org/wiki/Image_vectorielle
    http://fr.wikipedia.org/wiki/Image_matricielle

    Il faut savoir que tout le système graphique de Mac OS X (quartz) est basé sur du vectoriel, ce qui permet facilement de gérer les effets, re-dimensionnements etc.
    Et quand on dessine sur une NSView, tout est vectoriel (le vectoriel pouvant lui-même intégrer des images bitmap, mais ça nuit à  son redimensionnement).
  • schlumschlum Membre
    02:37 modifié #11
    Puis l'avenir est au format vidéo vectoriel aussi... il me semble qu'il y a pas mal de travaux là -dessus en ce moment.
  • CeetixCeetix Membre
    02:37 modifié #12
    Ah oui ca existe? Ca donne quoi et quelles applications pourraient en bénéficier?
  • schlumschlum Membre
    02:37 modifié #13
    Que ça existe, oui ça c'est sûr (même si c'est pas super développé et que ça consiste à  vectoriser chaque image de la vidéo pour le moment...)
    Mais il me semblait avoir lu un moment je ne sais plus où qu'ils travaillaient sur un format spécifique... je ne retrouve pas l'info.
  • Eric P.Eric P. Membre
    02:37 modifié #14
    Bonjour,
    ça y est après 8 jours d'attente la première version d'iPocket Draw est disponible sur l'Appstore.
    Et la version suivante est presque prête avec :
    L'enregistrement des fichiers;
    Le transfert par mail au format RealCADD, une chance j'avais choisi un format texte d'où la possibilité d'envoyer un fichier dans le corps du mail;
    Bon week-end
    Eric
  • Eric P.Eric P. Membre
    02:37 modifié #15
    Bonjour,

    Enfin, après une longue attente, la version 1.0 de iPocket Draw est disponible sur l'App Store.
    iPocket Draw  : http://www.adx-online.com/prog/ipocketdraw/ipocketdraw.html

    La version Lite, gratuite, est en cours de validation (que c'est long...).
    A la différence de la version complète, elle ne permet pas d'enregistrer plusieurs fichiers, ni l'envoi par mail.

    Encore merci pour votre aide.
    Mais ne craignez rien, je vous solliciterais à  nouveau.

    Eric

  • Eric P.Eric P. Membre
    02:37 modifié #16
    Bonjour à  tous,

    Voilà , iPocket Draw Lite a été validé par Apple après un rejet.

    Le lien vers iTunes : http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=315887414&mt=8&uo=6

    Vos commentaires sont les bienvenus, ici ou sur iTunes.

    Eric

  • muqaddarmuqaddar Administrateur
    02:37 modifié #17
    dans 1259938150:

    Bonjour,

    Je vous informe que iPocket Draw et iPocket Draw Lite sont maintenant disponibles en version 1.04.

    Les nouveautés sont :
    - correction d'un bug avec texte dans 1.03;
    - annuler et refaire;
    - pointillé éditable;
    - flèches possibles à  l'extrémité des lignes et arcs;
    - flèches éditables;
    - envoi par mail comme image ou sauvegarde dans album photo si OS < 3; (uniquement iPocket Draw)
    - dessin d'un réticule;
    - augmentation sensibilité attirance;
    - 2x tap sur objet affiche fenêtre attributs;
    - indicateur d'attirance avec le réticule par changement de son dessin;

    Bref une évolution très sensible.

    iPocket Draw sur l'AppStore : <http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312036802&mt=8>

    Merci.

  • muqaddarmuqaddar Administrateur
    02:37 modifié #18
    dans 1263457322:

    Bonjour,

    iPocket Draw et iPocket Draw Lite version 1.05 sont disponibles.

    Merci pour vos commentaires sur les nouveautés.

    J'ai été surpris par le délai de validation : 9h30 ??!!
  • Eric P.Eric P. Membre
    02:37 modifié #19
    Bonjour,

    Les nouvelles versions de iPocket Draw et iPocket Draw Lite viennent d'être validées.

    Au programme :
    - correction de quelques bugs dont un empêchant le lancement dans un cas particulier;
    - ajout d'un outil rectangle arrondi;
    - décomposition de l'outil ligne libre en 2 outils;
    - nouvelle icône;
    - augmentation de l'épaisseur maxi des traits;
    - augmentation de la taille maxi. des textes;
    - amélioration du fonctionnement du zoom et du déplacement du dessin;
    - enregistrement des dessins dans l'album photo (version complète seulement);

    iPocket Draw sur iTunes : http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312036802&mt=8

    Muqaddar, j'ai repris le fil...
  • Eric P.Eric P. Membre
    02:37 modifié #20
    Bonsoir,

    Une nouvelle version, 1.07, d'iPocket Draw est disponible pour iPhone, iPod Touch et ... iPad.

    La validation de cette version "universelle" a été un peu compliquée mais ça y est.

    J'ai maintenant hâte de le voir tourner sur un vrai iPad.
  • DrakenDraken Membre
    octobre 2011 modifié #21
    Merci Eric pour ton code, qui m'a permis de tester la version commerciale de ton application.

    La première chose que j'ai remarqué c'est la barre de statut opaque, en haut de l'écran. Tu devrais la rendre partiellement transparente et afficher le dessin sur la totalité de l'écran. C'est plus agréable à  regarder qu'un rectangle gris opaque de 20 pixels points de haut.

    A titre d'exemple, l'application Photo d'iOS 5 utilise une barre transparente :

  • DrakenDraken Membre
    02:37 modifié #22
    Le système de sélection des fichiers me laisse dubitatif.

    Il faut sélectionner un nom, puis presser sur le bouton "OK" en haut de l'écran. J'ai toujours trouvé anti-ergonomique les validations en haut de l'écran. La gestuelle "sélection", "déplacement du doigt/main vers le haut", "touch sur un bouton" est trop lourde, surtout le déplacement du doigt. Pourquoi ne pas charger un fichier avec un double-touch sur son nom ?

    Tu peux aussi afficher des informations sur les fichiers après un simple touch, la date de création et de dernière utilisation par exemple.

    Et ajouter la possibilité d'afficher la liste des fichiers utilisés récemment, comme sous Xcode. C'est très pratique.

  • Eric P.Eric P. Membre
    02:37 modifié #23
    Pour la barre des statuts, j'avais déjà  essayé de la masquer lors des "touch" comme je masque l'UI.
    Mais cela ne fonctionnait pas bien donc j'ai abandonné (provisoirement).
    Il faut que je réessaie effectivement avec en plus une barre transparente, cela serait encore mieux.

    Pour le système de choix de fichier, cela est nécessaire car tu peux déclencher d'autres actions depuis cet écran :
    - imprimer;
    - envoyer un fichier par mail;
    - renommer les fichiers, les dupliquer, les effacer;

    et toutes ces actions se font sur le fichier sélectionné.
  • DrakenDraken Membre
    02:37 modifié #24
    Rien ne t'empêche d'associer deux gestures à  chaque nom de fichier :

    Simple Touch => sélection

    Double Touch => chargement immédiat du fichier

  • DrakenDraken Membre
    02:37 modifié #25
    Le scrolling est très saccadé. La version Lite ne donne pas envie de dépenser 8 euros pour une application aussi peu fluide. C'est un peu mieux avec la version commerciale, sans être suffisant.

    Si je devais faire la même chose, j'utiliserais une UIScrollView afin d'avoir un scrolling fluide. L'idée est de pré-dessiner l'image dans un tampon graphique en mémoire et de laisser iOS gérer lui-même le scrolling. Cela évite d'avoir à  appeler trop souvent le moteur de dessin. UIScrollView "fabrique" un très beau scrolling fluide à  60 images/s avec gestion de l'accélération inertielle sans que le programmeur touche à  quoi que ce soit.
  • CéroceCéroce Membre, Modérateur
    02:37 modifié #26
    Ce n'est certainement pas aussi simple que ça. Créer un cache bitmap demande beaucoup de mémoire vive!

    Dans la fameuse présentation sur les Scrollviews à  la WWDC 2010, ils avaient l'air de dire qu'il fallait utiliser les CATiledLayer, mais je n'ai pas su si CATiledLayer était utilisée par UIImageView ou par UIScrollView. CATiledLayer utilise un cache sur le disque avec les bitmap rendues à  plusieurs résolutions.
    Ce que je sais est que UIScrollView utilisée avec UIImageView implémente une telle optimisation.
  • Eric P.Eric P. Membre
    octobre 2011 modifié #27
    dans 1318255482:

    Rien ne t'empêche d'associer deux gestures à  chaque nom de fichier :

    Simple Touch => sélection

    Double Touch => chargement immédiat du fichier

    Pourquoi pas mais je conserverai le bouton OK quand même.

    dans 1318258771:

    Le scrolling est très saccadé. La version Lite ne donne pas envie de dépenser 8 euros pour une application aussi peu fluide. C'est un peu mieux avec la version commerciale, sans être suffisant.

    Si je devais faire la même chose, j'utiliserais une UIScrollView afin d'avoir un scrolling fluide. L'idée est de pré-dessiner l'image dans un tampon graphique en mémoire et de laisser iOS gérer lui-même le scrolling. Cela évite d'avoir à  appeler trop souvent le moteur de dessin. UIScrollView "fabrique" un très beau scrolling fluide à  60 images/s avec gestion de l'accélération inertielle sans que le programmeur touche à  quoi que ce soit.

    Quel version d'iPhone as-tu ?
    Quel fichier as-tu ouvert ?
    Sur mon iPhone 4, même avec des gros fichiers, le scrolling est assez fluide mais peu ralentir avec un zoom arrière important.
    Le tampon graphique, oui mais il aura une limite et les dessins peuvent être plus grands d'autant plus en cas de zoom avant.
    J'ai essayé CATiledLayer : le scrolling est meilleur mais après il faut attendre que ça redessine
    Les CAShapeLayer sont limités en nombre de shape (d'après les discussions que j'ai pu lire sur certains forums).
    Alors que j'ouvre des dessins de plusieurs dizaines de milliers d'objets !
    Arrivé un certain nombre d'objets et une certaine taille de dessin, ça finit par coincer.
  • DrakenDraken Membre
    octobre 2011 modifié #28
    J'ai un iPhone 4 - 16 Go.

    Le plus efficace serait de dessiner tes objets vectoriels directement avec OpenGL. Le nouveau framework GLKit d'iOS 5 simplifie grandement son utilisation. Je ne vais pas m'attarder sur la question, le sujet étant encore sous NDA. Vas dans la documentation d'iOS 5 et regarde les vues de type GLView et l'affichage du texte dans une surface OpenGL avec CoreImage. On pourra en parler plus librement à  la levée du NDA. Le 12 peut-être, à  la sortie public d'iOS 5 ?

  • DrakenDraken Membre
    02:37 modifié #29
    dans 1318259710:

    Ce n'est certainement pas aussi simple que ça. Créer un cache bitmap demande beaucoup de mémoire vive!

    Dans la fameuse présentation sur les Scrollviews à  la WWDC 2010, ils avaient l'air de dire qu'il fallait utiliser les CATiledLayer, mais je n'ai pas su si CATiledLayer était utilisée par UIImageView ou par UIScrollView. CATiledLayer utilise un cache sur le disque avec les bitmap rendues à  plusieurs résolutions.
    Ce que je sais est que UIScrollView utilisée avec UIImageView implémente une telle optimisation.


    Le principe est valable pour les images bitmaps pas trop gourmandes en mémoire. Pour des images plus volumineuses, on peut "simuler" un cache mémoire de grande taille avec un système de tuiles, dessinées au fur et à  mesure des besoins.

    Au fur et à  mesure du déplacement de la fenêtre de visualisation, on affiche/détruit les tuiles, afin de minimiser l'occupation mémoire des bitmaps.

  • CéroceCéroce Membre, Modérateur
    02:37 modifié #30
    Hum, ça ne résout pas le problème des défilements rapides...
  • Eric P.Eric P. Membre
    02:37 modifié #31
    dans 1318266658:

    Hum, ça ne résout pas le problème des défilements rapides...


    Merci Céroce !
Connectez-vous ou Inscrivez-vous pour répondre.