PaintCode : l'Interface Builder de Core Graphics

Nicolas Furno |
Xcode (Gratuit) est livré avec un outil de création d'interfaces. Interface Builder suffit pour les applications relativement simples et qui n'ont pas besoin de modifier les ressources par défaut d'iOS ou de Mac OS X. Pour aller plus loin, il faut programmer l'interface en utilisant Quartz, ce qui peut s'avérer parfois très long.

PaintCode [1.0.0 – US – 62,99 € – OS X 10.7 – PixelCut s.r.o.] simplifie considérablement ce travail. Cette application est une sorte d'Interface Builder qui ne crée non pas des fichiers XIB (du code xml décrivant l'interface), mais des lignes de code en Objective-C. Quand vous aurez fini votre interface complète ou simplement un bouton dans l'application, vous pourrez copier le code et le coller dans votre projet complet.

PaintCode

Vous pouvez construire une interface complète sans taper la moindre ligne de code dans PaintCode : cette application WYSIWYG reprend tous les outils d'un éditeur vectoriel. Vous pourrez très rapidement dessiner des formes géométriques de base (y compris une étoile), mais aussi du texte ou même n'importe quelle forme libre grâce aux courbes de Bézier. On retrouve même des opérations avancées sur les formes (union, intersection ou différence de deux formes).

PaintCode génère et modifie en direct son code. Modifiez un élément, les modifications seront répercutées immédiatement sur le code, tandis qu'un aperçu s'affiche en bas à droite. L'application se veut en outre souple : un clic suffit à obtenir du code pour Mac ou iOS. On peut également définir des variables, comme une couleur que l'on pourra changer très rapidement dans toute l'interface. Vous pouvez aussi dériver une couleur d'une autre et les modifications sur la première seront répercutées sur la dérivée.

PaintCode

PaintCode est conçu pour sortir du code, mais l'application permet d'exporter des images en TIFF ou PDF. Le code ne peut pas y être modifié, mais vous pourrez toujours le faire de retour dans Xcode. L'application n'est compatible qu'avec OS X Lion, mais elle ne prend pas en charge son mode plein écran ; on retrouve en revanche Versions et la sauvegarde automatique.

Si ce n'est sans doute pas le meilleur moyen d'obtenir un code parfaitement optimisé, PaintCode permet de générer très rapidement du code assez pénible à générer à la main. Pour les développeurs qui n'utilisent pas Interface Builder, c'est indéniablement un très bon moyen de dégrossir une interface, quitte à la modifier dans un deuxième temps.

PaintCode

[MàJ 15/03/2012@18h23] : l'éditeur nous a indiqué qu'une version de démonstration sera disponible prochainement sur le site.
avatar françois bayrou | 

Excellent !

avatar oomu | 

intéressant.

avatar havox79 | 

Énorme !

avatar Sic transit | 

Incroyable!

avatar lord danone | 

Stupéfiant !

avatar redchou | 

Sympa..
Voir si le code généré est modifiable facilement.../pas trop compliqué...

avatar Domsou | 

La description me surprend : cette application permet en effet de créer du contenu vectoriel directement exploitable dans les vues sous forme de code. Ce n'est donc pas la même chose qu'Interface Builder si je ne m'abuse.

Cette application est intéressante car elle peut compléter voir remplacer Opacity. Ce dernier permet entre autre de générer directement des classes Objective-C à partir de dessin vectoriel. L'interface est un peu austère mais l'outil fonctionne bien.

J'attends avec impatience les versions de démonstration.

avatar oomu | 

"La description me surprend : cette application permet en effet de créer du contenu vectoriel directement exploitable dans les vues sous forme de code. Ce n'est donc pas la même chose qu'Interface Builder si je ne m'abuse.
"
c'est intéressant quand on veut aller au delà du look standard de cocoa. Ce n'est pas la même chose que IB. On pourrait dire que c'est son complément.

avatar sabearts | 

c'est intéressant, mais quand même fort cher

avatar tekikou | 

Très intéressant ! Y'a t-il possibilité d'être prévenu lorsque la démo sera disponible ?

avatar niko34 | 

Peut-être pas si cher par rapport au temps gagné. A suivre...
Merci pour cette info ;)

avatar pacou | 

Amazing ...

avatar eric210766 | 

@oomu
Si c'est développé à l'aide d'instances NSBezierPath, il s'agit bien d'une production vertorielle. Pour le reste, il faut voir, si ce n'est simplement des API de plus bas niveau. Par exemple les boutons gradients sont construits à l'aide d'une instance NSGradient et d'une vue pour la hiérarchie visuelle.

avatar Sergio_bzh | 

oui, sacrément intéressant ! Mais assez cher tout de même.

avatar sebvs | 

Pour ceux qui suivent ce fil et qui ne seraient pas au courant, la version de démo est dispo.
http://www.paintcodeapp.com/

avatar sebro | 

une fois le code généré modifié/optimisé, on fait comment si on veut modifier l'UI à nouveau dans PaintCode ?

CONNEXION UTILISATEUR