Vous cherchez une idée de cadeau pour vous même ou un autre développeur Mac / iPhone, voici les meilleurs idées :

Livres

S'il s'agit de développement Mac, je vous conseille de vous orientez vers Programmation Cocoa sous Mac OS X ou sa version originale Cocoa Programming for Mac OS X.

En ce qui concerne l'iPhone, orientez vous plutôt vers iPhone SDK Development: Building iPhone Applications qui est en anglais, mais qui reste très intéressant et accessible.

Logiciels

Je vous invite, si ce n'est pas encore fait, à découvrir les deux logiciels suivants :

  • Mac OS X 10.6 qui vous permettra de découvrir les dernières API disponible dans OSX (OpenCL, etc.)
  • Textmate qui reste un des meilleurs éditeurs sur Mac OS X selon moi. Même si XCode reste le plus pratique pour le développement d'applications en Objective-C/Cocoa, Textmate est fabuleux pour tous les autres langages (Python, HTML, Ruby, etc.). Je vous conseille aussi le livre sur Textmate qui permet de maitriser toute la puissante de ce logiciel.

Et pour finir, si vous avez d'autres idées cadeaux pour un développeur Mac / iPhone, n'hésitez à nous en faire part dans le commentaire.

LLVM : Quoi de nouveau ?

26 10 2009 In: C, Mac OS X, Objective-C

LLVM, le compilateur qu'Apple utilise de plus en plus (pour proposer les blocks, pour avoir un temps de compilation plus réduit) vient de sortir en version 2.6. Je vous invite si le sujet vous intéresse à lire les ressources suivantes :

Et si vous voulez suivre quelques conférences sur LLVM, il sera organisé un LLVM Camp à Paris le vendredi 20 novembre.

Snow Leopard : Quoi de nouveau ?

11 09 2009 In: Mac OS X

Snow Leopard, est maintenant sorti depuis un peu plus de deux semaines et l'on commence à avoir quelques retours de la part des développeurs sur les nouveautés :

  • Un point sur Open CL et Grand Central, chez MacBidouille vous permettra de comprendre l'intérêt de OpenCL/GrandCentral par le biais d'une interview de Christophe Ducommun le développeur de MovieGate.
  • Hidden Developer Gems in Snow Leopard revient sur toutes les nouvelles fonctionnalités de Snow Leopard dont Apple n'a pas forcement parlé sur son site, les nouveaux outils, le nettoyage de certaines API.
  • Snow Leopard excite les programmeurs aborde les nouveautés de Snow Leopard du point de vue d'un développeur. Il soulève à la fois les points positifs et négatifs.
  • Mac OS X 10.6 Source, vous permet de télécharger le code source d'une grande partie des outils qui compose Snow Leopard (le code de XNU le kernel de Mac OS X n'est quant à lui pas encore disponible).

Snow Leopard arrive

28 08 2009 In: Interview, Mac OS X

Avec la sortie de Snow Leopard le vendredi 28 août, un grand nombre de nouvelles technologies et API vont être disponible pour les développeurs. En attendant de le tester, ainsi que ses nouveautés, je vous invite à découvrir un très bon article en deux parties sur ce que pensent divers développeurs de cette nouvelle version :


Keynote de la WWDC 2009

09 06 2009 In: Conférences, iPhone / iPod Touch, Mac OS X

La keynote de l'édition 2009 de la WWDC vient de se finir avec son lot de nouveautés et d'informations. En tant que développeur, les principales informations à retenir sont :

On ne retiendra donc pas grand chose de vraiment nouveau concernant cette keynote, si ce n'est des dates un peu plus précises pour la sortie de ces mises à jour. Et sinon, il y a aussi quelques nouveautés matériels :

  • Une nouvelle version de l'iPhone 3G, nommé iPhone 3G S (le S signifiant Speed). Il propose entre autre une meilleure autonomie, une boussole électronique et un meilleur appareil photo.
  • Un renouvellement des Mac Book / Mac Boo Pro / Mac Book Air. Les Mac Book Unibody change d'ailleurs de nom pour s'appeler eux aussi Mac Book Pro. Seul le modèle blanc garde le nom Mac Book.

Pour plus d'informations, je vous invite à lire les articles de MacBidouille (iPhone 3G S, iPhone OS 3, Mise à jour des MacBook et MacBook Pro) ou de MacGeneration.

Et pour finir sur une note légère, je vous invite à regarder cette vidéo parodiant une scène du film La Chute si elle n'est pas supprimé entre temps :

Apple vient d'annoncer son projet d'abandonner le langage Objective-C en faveur de Java pour un certain nombre de raisons :

  • Il est nettement plus facile de trouver des développeurs Java que des développeurs Objective-C.
  • Java est le seul vrai langage pour écrire des applications Enterprise
  • La compatibilité des application iPhone avec les applications Android (qui utilise déjà Java).

Le SDK iPhone devrait donc rapidement apparaître dans une nouvelle version permettant l'utilisation de Java, et d'après les rumeurs, une version 4.0 de XCode basé sur Eclipse devrait être remise aux développeurs lors de la WWDC 2009.

Créer des jeux en Lua avec Löve

02 02 2009 In: Liens, Mac OS X

L'équipe de développement de Löve vient de sortir une version Mac de son moteur de jeux 2D en Lua. Lua est un langage de script qu'il est facile d'intégrer dans un programme, ce qui le rend particulièrement utilisé dans les jeux pour rendre le développement de certaines parties du jeu plus rapide. Un des jeux les plus connu l'utilisant est World of Warcraft.

Vous pourrez trouvez sur le site du projet des exemples et de la documentation pour commencer à faire des petits jeux :

L'indépendance de la résolution

20 01 2009 In: Cocoa, Mac OS X

La résolution

Commençons par rappeler ce qu'est la résolution. On l'exprime habituellement en points par pouce. C'est à dire qu'il s'agit du nombre de points — pour un écran, des pixels — alignés sur un pouce de longueur (1 pouce = 2,54 cm).
L'abréviation ppp (points par pouce) se rencontre, mais l'abréviation anglaise dpi (Dots per Inch) est la plus courante.

Paradoxe: "Plus les pixels sont nombreux, et moins on les voit".

Des pixels aux centimètres

Si vous avez bien suivi, vous pourrez tenter de répondre à cette question: combien faut-il aligner de pixels pour tracer un segment d'un centimètre de long ? Réfléchissez.

En fait il vous manque quelques données pour répondre. Alors, prenons l'exemple de l'écran de mon iMac: il affiche 1440 x 900 pixels. Sa diagonale mesure 17 pouces. Les pixels sont carrés.

Calcul des dimensions physiques de l'écran

Commençons par calculer les dimensions physiques de l'écran, grâce au théorème de Pythagore:
largeur^2 + hauteur^2 = diagonale^2

Sachant que
largeur = (1440/900) x hauteur = 1,6 x hauteur

Vous devez trouver:
hauteur = 9 pouces
largeur = 14,41 pouces

Calcul de la résolution

L'écran a donc une résolution de 900 pixels / 9 pouces = 100 points/pouce.

La réponse à la question de départ

En divisant par 2,54, on trouve que 100 ppp correspond à 39,37 points/cm. Il faudra donc aligner 39 pixels pour tracer un segment d'un centimètre de long.

Où veux-tu en venir, Renaud ?

Ça vient ! Prenons l'exemple de votre traitement de texte habituel. Le format d'impression est un A4 et le zoom est réglé à 100%. Comment se fait-il alors que lorsque je superpose une feuille A4, la feuille à l'écran est plus petite ?

Réponse: parce que le traitement de texte part du principe que la résolution de votre écran est de 72 ppp. Pourquoi 72 ppp ? C'est historique; dans les années 90, c'était une résolution courante pour un écran. Sous Windows, il me semble qu'on utilise 85 ppp, ce qui est un peu plus proche de la réalité. Tout ça n'est tout de même pas très WYSIWYG.

Donc, si je veux voir la page à la taille réelle sur mon iMac, il faut que je règle le zoom à (100 / 72) = 139%.

Pourquoi ce problème n'est pas encore résolu en 2009 ?

Notez bien que la résolution de chaque écran est différente, elle est plus dense encore pour l'écran de mon MacBook. Des API existent pour connaître la définition (en pixels) de l'écran. On peut sans doute également obtenir sa diagonale (en pouces) et procéder au calcul vu plus haut. Et le problème sera résolu: le traitement de texte fera le calcul de la résolution et affichera sur l'écran de mon MacBook la feuille A4 avec une largeur mesurant très exactement 21 cm.

Bien. Imaginons que j'ai maintenant l'idée saugrenue de brancher à mon MacBook un écran externe d'une résolution de 100 ppp, et que je place la fenêtre à cheval entre les deux écrans: ça ne va plus du tout ! La page est maintenant trop grosse sur l'écran externe !

Ce problème est insoluble au niveau applicatif. La seule possibilité est que le Window Server fasse les adaptations.

Les réflexions d'Apple sur le sujet

L'indépendance de la résolution était annoncée pour Mac OS 10.5 et ne fut finalement pas présente. Il est possible qu'elle fasse son apparition dans 10.6. Il existe pourtant déjà quelques API:

Resolution Independence Guidelines

Je vous fait un petit résumé:

  • Les ingés d'Apple ont l'air de s'embrouiller avec tout ça.
  • Il faudra dessiner à 72 ppp. Quartz effectuera ensuite les conversions pour avoir les coordonnées en pixels.
  • Il est pour l'instant possible de changer le facteur d'agrandissement à l'aide de l'application Quartz Debug, dans le menu Tools > Show User Interface Resolution. Essayez, c'est marrant.

Ce petit essai devrait vous faire comprendre la complexité de la chose: c'est moche, on voit plein de gros pixels. Il va donc falloir rendre l'interface utilisateur entièrement vectorielle. C'est un énorme travail, et il est donc compréhensible qu'Apple ne l'ait pas encore complètement implémenté.

Retour sur l'année 2008

04 01 2009 In: Cocoa.fr, iPhone / iPod Touch, Livres, Mac OS X

Tout d'abord, très bonne année à vous tous, avec pleins de projets de développements Mac plein de succès. Ensuite, je vais commencer cette année par une petite rétrospective sur l'année 2008 avec les éléments importants pour le bloc Cocoa.fr et de manière plus générale pour le développement Mac.

En ce qui concerne Cocoa.fr, cela représente 28 942 visiteurs pour 60 245 pages vues. Le billets les plus populaires ont été les suivants :

  1. Apprendre XCode, Cocoa et Objective C gratuitement
  2. Vos débuts en Cocoa
  3. Présentation de Cocoa
  4. Firmware 2.0 pour iPhone / iPod Touch
  5. Apprendre à utiliser le SDK iPhone en vidéo
  6. Mac OS X et les caractères spéciaux
  7. Les livres pour le développement iPhone
  8. Livre: Programmation Cocoa sous Mac OS X
  9. Prenez un développeur dans vos bras
  10. Interview de Olivier Chambon, développeur web sous Mac

Maintenant, concernant le développement sur Mac, les principales événements de l'année sont :

Le prochain événement intéressant, sera le salon MacWorld à partir de demain (du 5 ou 9 janvier 2009), avec on l'espère plus d'informations sur les nouveautés de Snow Leopard et de OpenCL. Et vous, vous attendez quoi pour la Macworld 2009 et de manière plus générale pour l'année 2009 ?

Pour quelles versions de Mac OS X développer ?

22 12 2008 In: Cocoa, Mac OS X

En ce moment, l'une des questions les plus présentes dans mon esprit, au sujet du développement de Marquise, est sous quelles versions du système d'exploitation mon application devra être capable de tourner. L'idéal serait de gérer le maximum de versions d'OS X. Cependant, cela présente des contraintes techniques, mais surtout économiques.

Les avantages d'assurer la compatibilité avec 10.4 (voire 10.3)

Ou plutôt, le seul avantage, mais un gros avantage: pouvoir toucher un maximum de clients. Voilà maintenant sept ans que la première version de Mac OS X est sortie. Il faut être conscient qu'il y a sûrement plus de machines tournant sous les OS 10.0 à 10.4 cumulés que Mac OS 10.5.

Il faut toutefois relativiser: la plupart sont tout de même sous 10.2 à 10.4, pour deux raisons. La première, c'est que les améliorations de 10.0 à 10.1 à 10.2 à 10.3 sont très visibles. L'autre raison, c'est que la reprise des ventes de Mac s'est faite lorsque 10.4 était le système actuel.

Pourquoi j'avais fixé le ticket d'entrée à 10.4

Une raison technologique: Core Data

Cette technologie fut introduite dans OS 10.4. Apple la présente comme une solution permettant de ne pas s'occuper de la gestion des fichiers, ni de l'Undo, avec à la clef un gain de productivité. J'ai été très déçu par Core Data (ce sera l'objet d'un autre article), que j'ai remplacé depuis par un enregistrement en XML. Aujourd'hui, j'utilise la classe NSXMLDocument, qui n'est disponible qu'à partir de 10.4.

Une raison pratique: je ne peux pas tester sous des versions antérieures

Ma machine principale est un iMac G5 sous 10.5, qui était livré avec 10.4. Je me suis donc acheté un disque dur externe et y est installé 10.4 pour mes tests. Il me faudrait une autre machine pour tester sous 10.3.

Une raison de puissance

Une machine sous 10.3, je vois ce que c'est: mon vieil iMac G3. Cette machine ne pourra jamais faire tourner Marquise qui manipule des images par dizaines. Fixer le système minimum à 10.4 permet de se limiter aux machines capables de faire tourner 10.4 correctement, c'est à dire les G5 et les tous derniers G4.

Pourquoi j'envisage de mettre le ticket d'entrée à 10.5

Comme je l'écris plus haut, je dois redémarrer pour tester Marquise sous 10.4. En pratique, cela se déroule ainsi: je copie l'application sur une mémoire USB, je redémarre avec Option appuyée et sélectionne mon disque externe pour le démarrage. Enfin, j'arrive sous 10.4, je lance Marquise, et m'écrie: "Bon dieu, ce que c'est moche !". Ce qui m'intéresse en particulier, c'est un des boutons de la barre d'outils qui devrait présenter un petit triangle, indiquant qu'un menu s'affiche, mais qui ne le fait pas. Je dois alors retourner sous 10.5, trouver un compromis sur la taille du bouton, reconstruire l'appli, la remettre sur la mémoire USB, redémarrer, etc. On peut perdre des heures sur ces manipulations. Évidemment, la solution serait de me payer une nouvelle machine, mais il va falloir que Marquise me rapporte quelques thunes avant.

D'autres développeurs, je pense à ceux de Delicious Library ou RapidWeaver, ont carrément fait le choix de ne plus développer que pour 10.5. La première raison est celle que je viens d'évoquer: maintenir leur logiciel pour deux versions d'OS X représente trop de boulot, par rapport au gain économique attendu. La deuxième raison est technologique: ainsi Delicious Library fut la première grosse application à utiliser Core Animation (introduit avec 10.5). On peut trouver cela tape-à-l'œil, mais c'est très certainement séduisant pour les clients potentiels qui essaient le logiciel.

À chaque fois que sort un de ces logiciels dédiés à 10.5, on peut lire les même commentaires aux nouvelles de MacGénération: "c'est bien dommage qu'il ne tourne pas sous 10.4". Ce que je pense, c'est que les deux tiers des gens qui laissent ce genre de messages sont sous… 10.5. Car la réalité la voici: les gens de Delicious Monster ou Real Mac Software ne sont pas suicidaires. S'ils prennent ce genre de décisions, c'est parce qu'il savent que leurs clients sont en grande majorité (au moins 85%) sous 10.5. Ils le savent par les statistiques d'accès à leur site web. Ce n'est pas contradictoire avec ce que j'écrivais plus haut: que la majorité des machines sous OS X, étaient sous 10.4 ou antérieures. En effet, un client qui est prêt à installer et payer un shareware n'est pas un utilisateur moyen.

Ma décision alors ?

À vrai dire, je n'ai toujours pas décidé. Mon code peut encore tourner sous 10.4. Mais un élément va être décisif: l'arrivée de 10.6, certainement à la même période que la première version commerciale de Marquise. Je devrai alors travailler sous trois versions d'OS X. Je me dis que limiter à 10.5 serait une bonne idée, rien que ne pas avoir de clients qui se mettent à râler quand j'abandonnerai 10.4, ce qui arrivera. Au final, je crois que je vais regarder les statistiques de mon site web quand je proposerai les premières versions béta en téléchargement pour décider.