Objective-C et les tests unitaires

06122008 Dans: Objective-C

On me demandait dans les commentaires du billet précédent ce qu'était exactement les tests unitaires, je vais donc essayer d'expliquer à quoi ils servent et vous proposer quelques ressources pour aller plus loin.

Comme le nom l'indique, il s'agit de tester le comportement d'un unité d'un programme, c'est à dire par exemple une fonction ou une classe. Pour une fonction qui convertit une température de Celsius en Fahrenheit, on va tester que le résultat de la conversion pour différentes valeurs. On testera des valeurs négatives, positives, des lettres, etc. pour s'assurer que le résultat est correct et que les erreurs sont bien traités. Les tests permettent aussi d'éviter les régressions de votre programme, car lors d'une modification de votre code, vous pouvez exécuter les tests et vous assurez que le comportement n'a pas été altéré par vos modifications récents.

Vient ensuite le concept de couverture de code. Il s'agit de connaître le pourcentage des lignes de code du programme qui sont testés par votre jeu de tests unitaires. Par exemple, si votre fonction contient du code conditionnel avec l'instruction if/else, il faut que les différents tests de la fonction fassent intervenir à la fois le code dans le bloc if que dans le bloc else. Plus le pourcentage est élevé plus vous pouvez avoir confiance dans le comportement de votre code.

Pour allez plus loin, n'hésitez pas à lire les ressources suivantes :

J'espère avoir été assez clair, mais n'hésitez pas en cas de besoin à poser vos questions dans les commentaires.

Sortie de Cappuccino et Objective-J

04092008 Dans: Cocoa, Liens

280 North, l'éditeur du clone de Apple Keynote 280 Slides vient de mettre en ligne sous licence Open Source (LGPL) son framework Cappuccino ainsi que le langage Objective-J.

Cappuccino permet donc de créer des applications web à la manière de ce que Cocoa permet sur Mac OS X. Objective-J quant à lui est un langage ressemblant à Objective-C et écrit en Javascript.

Il faut donc bien se rendre compte que Cappuccino a pour but de proposer un vrai moyen de créer des applications et pas uniquement de rendre un site plus interactif comme le propose par exemple jQuery ou mootools.

Pour en savoir plus, vous pouvez :

En tout cas, il n'y a pas à dire, mais 280Slides est vraiment impressionnant, et Cappuccino devrait permettre de faire des choses sympathiques.

Apprendre Objective-C

02052008 Dans: Objective-C

Scott Stevenson de Cocoa Dev Central nous propose ici un article sur comment développer avec Objective-C. Le gros avantage de cet article est qu'il date de 2008 et que donc il prend en compte Objective-C et plus particulièrement la nouvelle syntaxe des accesseurs. Il aborde entre autre la création d'une classe, l'appel d'un méthode, la gestion de la mémoire, etc.

Lire l'article Learn Objective-C

Développer en Cocoa avec Python

20042008 Dans: Cocoa, Objective-C

Même si la manière classique pour développer une application Cocoa est d'utiliser le langage Objective-C, il est aussi possible d'utiliser le langage Python grâce à PyObjC. De plus, la version 2.0 de PyObjC est livré en standard avec Mac OS X Léopard ce qui permet de s'en servir très facilement.

Vous pour retrouver sur le site de PyObjC, quelques exemples ainsi que de la documentation. On peut aussi retrouver un article sur l'Apple Developer Connection qui est malheureusement un peu ancien.

J'essairais à l'occasion de trouvez quelques ressources sur l'équivalent dans le monde Ruby : RubyCocoa

Il n'est pas toujours facile lorsque l'on débute dans développement sous Mac OS X de bien faire la différence en Cocoa, Carbon et Objective-C. Voici donc la définition de chacun :

  • Objective-C est une langage de développement que l'on peut voir comme le langage C avec la gestion de la programmation orienté-objet. Il fonctionne par envoie de message entre les objets, et ressemble donc beaucoup plus à ce niveau là à Smalltalk qu'a C++. Pour une description détailler, la page wikipedia sur Objective-C vous permettra d'aller plus loin.
  • Cocoa est un framework de développement, c'est à dire un ensemble d'objet et de fonctions permettant de faciliter la vie du développeur. Il est écrit pour et en Objective-C.
  • Carbon est lui aussi un framework de développement mais il est conçu pour être utilisé avec C et C++ principalement. On peut le voir "en gros", comme un framework de transition entre le développement Mac OS 9 et le développement avec Cocoa.

Pour prendre un exemple d'actualité, Photoshop CS 3 et la future version 4 sont écrit avec Carbon, mais il est prévu pour la version CS 5 de le passer sous Cocoa.


Sponsors