Killer les Zombies
Mercredi 09 septembre 2009 à 10:51:58

Mettre à mal vos zombies

Voici un lien pour mettre à mal vos Zombies dans vos applications Cocoa

http://www.tomwhitson.co.uk/blog/2009/04/debugging-with-nszombiesenabled/

http://www.fromconcentratesoftware.com/2007/08/09/nszombieenabled-for-the-debugger-adverse/


Petit Framework Cocoa pour la mise à jour de vos applications
Mercredi 20 mai 2009 à 11:32:40

Je sais qu'il existe des Frameworks Cocoa qui sont dédiés aux mises à jour des applications, mais je les trouve trop lourdes et ne répondant pas à mes besoins. (Qui sont très simples :)). Je viens donc de finir un Framework Cocoa très simple, pour automatiser les mises à jour de vos applications. C'est Open Source et le code source est fourni.

Une page entière est dédié à ce Framework : AppUpdate Framework.

Ce Framework est largement inspiré du projet donné en exemple sur le site d'Apple.

Bonne mise à jour :p.


Recherche textuelle et Algorithmes
Lundi 23 mars 2009 à 10:32:14

Je commence à diffuser un petit framework Cocoa sur la "recherche textuelle". C'est un peu mon dada, et dans cette première version, vous pouvez trouver l'algorithme de Knuth Morris et Pratt implémenté (KMP). D'autres sont à venir ;).

Au cours de ma formation, j'ai pu rencontré de très bons profs d'algorithme.

Beaucoup de leurs algorithmes sont diffusés et utilisés sans même le savoir :p.

Pour bien faire, je commence un framework où le but est d'implémenté ces différents algorithmes.

Pour pouvez télécharger les sources ici Cocoa Framework.

KMP Algorithme

Si vous voulez des informations sur comment fonctionne l'algorithme imlémenté ici (KMP), jetter un oeil sur ce site KMP ou encore ici KMP.

Une fois que j'aurai implémenté une bonne série, je ferai une analyse des performances des différents algorithmes, d'ici la bonne utilisation ;).


Parser du Xml avec Cocoa
Mardi 17 juin 2008 à 22:06:28

Je vais vous montrer comment parser du Xml de manière intuitive avec Cocoa.

Commençons par expliquer le format Xml.

Le format Xml est un langage issu du SGML ( langage à balise ) comme le HTML.

Par définition si l'on représente le contenu d'un fichier Xml, on le représenterait par un arbre ( avec des feuilles et des nœuds ).

Maintenant, passons à Cocoa ;).

En utilisant l'objet NSDictionary on peut "parser" l'initialisation de cette objet avec la méthode "initWithContentOfUrl".

Cette classe fonctionne par le mécanisme de clef <-> valeur. Donc si vous voulez obtenir la valeur pour une clef, vous n'aurez car faire :

NSString* valeur = [monDictionnaire objetForKey:@"maClef"];

Si vous voulez obtenir un noeud :

NSDictionary *noeud = [monDictionnaire objetForKey:@"maClef"];

Voila, c'est très rapide, mais Cocoa facilite encore une fois pas mal les choses.

Je vous donne un petit exemple de projet sous Xcode que vous pouvez télécharger ici projet Xml Xcode.

Si vous ne voyez pas encore l'interet, je vous donne juste un exemple :

Vous pouvez mettre par exemple un fichier Xml sur un serveur web, contenant les informations pour une application avec numéro de version par exemple.

Le tout sur un serveur, et qui vous permettrez de mettre à jour vos applications sans trop de difficultés.

Voila, bon code.


Utiliser une bibliothèque du monde Open Source dans Xcode (Cocoa)
Mercredi 16 avril 2008 à 19:18:33

Voila, je me suis cassé la tête pas mal de temps pour incorporer une bibliothèque C provenant du monde Open Source dans XCode. En voici enfin la procédure qui fonctionne comme il faut ;).

Dans un de mes projets, je nécessitais la présence d'une bibliothèque C (libexif pour ne pas la nommer :)).

J'ai pas mal cherché à savoir comment faire. Moi qui est l'habitude d'écrire mes propres Makefile ...

Bon aller on commence par compiler la bibliothèque en binaire universel (Intel et PPC).

Libexif est livré avec un configure (cf : autotools), donc il ne devrait pas y avoir de problèmes.

Mais voilà si vous tentez de surcharger les variables d'environnements CFLAGS et LDFLAGS, le compilateur vous retournera une erreur.

Donc pour éviter cela, dans un terminal taper :

./configure --disable-dependency-tracking

Maintenant la bibliothèque est prête à être compilée. Pour la compiler taper dans un terminal :

make CFLAGS="-arch i386 -arch ppc"

Et comme par magie ;), la bibliothèque est compilée en binaire universel. (double architecture binaire).

Sources Apple Developer


Voila une bonne chose de faite. Comme je n'aime pas mettre dans le "path" standard des bibliothèques que j'ai compilé par mes propres moyens, je la mets dans le chemin suivant ($HOME/Gnu/).

Et donc elle n'est pas dans le chemin standard qu'attend XCode (jusque là c'est normal :)).

Et comment faire pour configurer correctement XCode avec des chemins non standards.

Voila deux captures d'écran de la configuration de projet dans XCode pour libexif :

Pour la configuration du linker.

Pour la configuration des headers (oû XCode peut trouver les entêtes de structures et fonctions).

Voila un très court tutoriel pour vous aider à utiliser les bibliothèques du monde Open Source dans vos projets Cocoa ;).

Je reste toujours disponible pour de plus amples informations (par mail ...)

Bon code.


Connaitre vos composantes de couleur pour votre classe NSColor
Samedi 02 février 2008 à 11:14:42

Une petite application qui vous permettra de connaitre vos composantes couleurs.

Voici GetColor, une petite application pour connaitre vos composantes de couleurs (rouge, bleu, vert et alpha), pour l'ajouter ensuite dans vos codes Cocoa.

Fourni avec les sources.

capture

téléchargement


ImageInformation lecture des données EXIF et Finder d'une image ( Macos X )
Mardi 18 septembre 2007 à 15:14:01

Je suis en plein développement Cocoa en ce moment ;), et voici une application test pour lire les données EXIF et Finder contenu dans une image.

ImageInformation est une petite application que j'ai écrite et qui vous permet de visualiser les données EXIF et commentaires Finder contenus dans cette image.

 Main Window

Avec cette application, vous pourrez visualiser un grand nombre d'informations si par exemple votre image a été prise par un appareil photo numérique.

Si vous voulez en savoir plus sur ce qu'est le format des méta-données EXIF, un coup de Google .

Télécharger ImageInformation .


Encapsuler du C++ dans de l'Objective C
Vendredi 08 juin 2007 à 17:09:06

Cela fait bien longtemps que je n'ai écris dans ce blog. Il est temps de rattraper le retard en vous proposant ici un exemple d'encapsulation d'un objet C++ dans de l'Objective C. Et ce, grace à un petit exemple tout simple.

Bon bien commencer, télécharger l'exemple qui suit CplusplusTest.zip .

C'est un projet objective "C+ +" ( nous y sommes obligés car l'objective C suit la norme C99, comme le langage C, en gros :), pas de nouvelle déclaration dans le corps d'un fonction comme le ferait le "C+ +" ).

Le mieux c'est de vous laissez jeter un œil sur le code. :p

Les seules choses à retenir sont :

  • créer une nouvelle structure contenant votre objet C++ déclarée dans l'entête de l'objective C.

  • Encapsuler la gestion de la mémoire, et bien y réfléchir ( instruction new du C++ and la fonction init de Objective C, et pareil pour le delete ...).

  • si vous n'encapsulez pas vos getters et setters par des fonctions Objective C, elles ne seront pas utilisées ( ce qui semblent normales).

Si vous voulez aller plus loin je vous conseille d'aller sur l'url suivante, la référence, http://www.cocoadev.com/index.pl?CPlusPlus . Vous y trouverez même de plus amples informations, ou comment même utiliser les structures de la STL du C++ avec vos objets Cocoa ;).

Aller bon vent.


COCOA
Jeudi 29 mars 2007 à 14:03:25

Je me suis enfin mis à Objective C et son framework sous Macos X COCOA. Récit d'une aventure.

Voila, je suis enfin mis à Objective C et Cocoa.

Pour être bien armé, j'ai cherché des tutoriels sur le sujet. J'ai réussi à trouver un très bon tutoriel , écrit par Michel Saro (qui plus est très agréable). J'ai aussi acheté Cocoa par la pratique . Ce dernier est un très bon livre aussi.

Moi qui suis habitué au C+ +, j'ai été quelque peu déstabilisé par l'objective C. Le terme d'envoi de message me paraissait pas très adéquate. Mais lorsque vous réfléchissez objet, c'est à dire que fait le code lorsque vous cliquez sur un bouton ? Et bien, le bouton envoie bien un message avec ses informations. Le reste est très proche de l'approche C+ +.

J'ai déjà réussi à faire par mal de petites interface, mais je ne vais pas m'arréter là. Le grand test va être de porter une de mes applications en objective c avec son interface, iDSK. Affaire à suivre...


Pensées...
Vendredi 09 mars 2007 à 14:40:03

Plus d'une fois je me suis posé la question de ma préference pour des machines comme le Mac ou le CPC de chez Amstrad. En voici un début d'explication :).

Et oui je viens de l'avouer, je suis un fan inconditionnel de l'Amstrad CPC. (Et sous toutes ses formes, 6128 CPC ou CPC+)

Pour le Macintosh, vous devez vous en doutez depuis le début de mon blog :D.

Mon CPC+ actuel

Mon Mac Mini

Mais qu'ont donc ces deux types de machines en commun ?

Et bien en réfléchissant, elles ont pas mal de point commun :

  • le concept une seule prise ( on branche et ça fonctionne )

  • les périphériques sont souvent faites par le constructeur, donc complétement adaptés à la machine.

En fait il y a plus que ça. Une machine simple d'utilisation ne me satisferai pas, c'est clair.

Regardons maintenant niveau OS. Le CPC est livré avec un OS en rom, le Basic locomotive.

Celà ne vous dit peut être rien, mais ce Basic, est sans nul doute, le meilleur Basic conçu.

Capable à partir de ce Basic d'élaborer des programmes complexes, mais aussi de bidouiller directement dans le Hardware de la machine (à cout de poke et de call bien sentis :D).

On peut aussi faire du développement plus élaboré point de vue performance avec de l'assembleur trés bien documenté, voir même du C, même si ce dernier reste de la bidouille sur CPC.

Et alors pour le Mac ??

Bin pariel ;).

Une interface utilisateur la plus intuitive du marché actuel, qui satisfait les novices mais aussi les développeurs comme moi qui ne perdent pas du temps à tenter de comprendre ce que peut faire un onglet ou à effectuer une tache présice rapidement.

La possibilité de l'Applescript et l'utilisation d'Automator, permettent de créer des processus automatiques pour des taches répétitives.

Mais le point fort reste, qu'une machine est livré d'emblée avec l'atiraille complet du parfait développeur.

Xcode est livré avec : Java, compilateur C, C+ +, Objective c, Objective C+ +, perl, python etc ... sans compter sur une quantité de Frameworks incroyables.

Je viens de mettre là le doigt sur le point le plus important. Les deux machines sont deux machines extremement bien conçues.

Elles permettent de satisfaire les novices qui ne veulent pas aller plus loin avec un ordinateur, mais aussi les développeurs ou autres informaticiens, qui peuvent, disposés d'une plateforme qui laissent la limite à celle de l'imagination :) .

Donc maintenant il ne me reste plus qu'à bosser un peu pour vous montrer un peu de mes productions.

Faut que je bouge les fesses pour celà :D, et c'est pas gagné.