Comment ça marche : la programmation

Arnaud de la Grandière |
Pour beaucoup, la programmation peut sembler assez intimidante : des signes cabalistiques abscons, des formules mathématiques rébarbatives, un jargon technique incompréhensible, et le mythe du petit génie de l'informatique, ont beaucoup fait pour effrayer le commun des mortels : ces diableries ne seraient pas pour eux. Pourtant, malgré les apparences, avec un petit bagage technique la chose n'a vraiment rien de sorcier, moins encore aujourd'hui où Mac OS X facilite tellement la vie des développeurs.

Fondamentalement, un programme, réduit à sa plus simple expression, repose sur un algorithme : il s'agit des différentes étapes permettant la résolution d'un problème par le calcul. Ces étapes se résument essentiellement à des tests de conditions, et à des actions. À l'aide de ces briques, il est possible de résoudre toute sorte de problème, du plus simple au plus complexe.

Nous mettons tous au point des algorithmes au quotidien, sans nous en rendre compte. Ceux-ci sont plus ou moins efficaces, mais ils n'en fonctionnent pas moins, pour la plupart. Que ce soit pour le tri de vos papiers, le chemin le plus court entre deux points, ou toute systématisation d'une tâche répétitive, nous sommes donc tous des programmeurs en puissance, le tout étant d'apprendre à formaliser ces algorithmes, et à les découper en petites briques essentielles.

algo
L'algorithme d'un lecteur de MacG


Typiquement, un programme sera exécuté instruction après instruction, ligne par ligne. Cependant, tous les langages de programmation permettent de jouer les aiguilleurs : on demandera l'exécution ou non de telle ou telle ligne, la répétition d'une commande jusqu'à ce que des conditions soient remplies, ou le lancement d'une fonction spécifique.

On appelle ces aiguillages des structures de contrôle, puisqu'elles vont modifier la manière dont le code sera exécuté. D'autre part, le développeur peut demander à ce que certaines instructions soient exécutées à l'intervention d'un événement : un clic de souris sur un endroit donné, la frappe d'une touche du clavier, le déplacement d'une fenêtre, etc. Une autre pierre angulaire de la programmation est la variable, en fait un espace de la mémoire associé à un nom, dans lequel le développeur pourra stocker différentes valeurs. Pour faire simple, c'est comme un tiroir, sur lequel on met une étiquette, et à l'intérieur duquel on peut mettre des éléments susceptibles d'évoluer, comme le score dans un jeu vidéo.

Lorsqu'un programme sera susceptible de faire appel à un même groupe d'instructions à plusieurs reprises, plutôt que de les recopier à chaque endroit nécessaire, il vaudra mieux créer une fonction unique, qui sera appelée depuis divers endroits du code.

Ainsi, lorsque des modifications sont nécessaires sur cette fonction, il suffira de les effectuer sur un seul endroit du code plutôt qu'à chaque endroit où ces instructions sont nécessaires. La fonction peut recevoir un ou plusieurs paramètres, exactement comme en mathématiques, par exemple : f(x) = x+1, donc f(1) = 2, f(2)=3, etc. On peut donc facilement créer une fonction qui calculera la TVA, qu'on pourrait définir en pseudo-code comme suit:

CalculeTVA(PrixHorsTaxe, MontantTVA) {
PrixTTC = PrixHorsTaxe * ( 1 + (MontantTVA / 100))
Renvoie PrixTTC
}


Lors de l'exécution du programme, chaque appel à la fonction CalculeTVA, avec les paramètres associés, par exemple CalculeTVA(29,99, 19,6), sera remplacé par son résultat effectif.

Les programmes peuvent effectuer les tâches les plus simples comme les plus complexes, et naturellement tous les développeurs ne se valent pas, mais le mérite ou l'intérêt d'un logiciel ne se mesure pas nécessairement à la virtuosité de son code. D'autant que tout le sel de la chose consiste parfois à tirer le meilleur parti des ressources matérielles, grâce à un algorithme élégant, c'est à dire qui donnera naissance au plus petit programme possible pour effectuer une tâche donnée.

Un code qui sera exécuté étape par étape, ou en appelant des fonctions, relève de la programmation dite procédurale, mais Objective-C, le langage de programmation de Mac OS X, permet de faire de la programmation orientée objet. Derrière ce nom énigmatique s'abrite un concept très puissant qui permet de grandement simplifier la vie des développeurs.

L'objet est une sorte de programme dans le programme, une entité propre, avec ses propriétés et ses comportements. Par exemple, le procédé permet de définir un objet Voiture, qui aura des propriétés marque, nombreDePortes, année, etc. Ainsi, à partir d'une seule définition de l'objet voiture, le développeur pourra en créer en mémoire différentes instances, c'est à dire des émanations suivant le même gabarit mais dont les propriétés pourront être différentes.

De plus, les objets pourront interagir entre eux spontanément sans que le programme général n'ait à s'occuper d'eux, puisqu'ils disposent de leurs propres comportements. Mieux encore, les objets eux-mêmes peuvent instancier d'autres objets, créant des relations parent-enfant et transmettant leurs propriétés en héritage. Cette approche permet de rendre le code plus autonome et de ne pas avoir à faire de la micro-gestion à s'en donner des maux de tête : les problèmes complexes en deviennent autrement plus simples à résoudre, grâce à cette approche organique.

skitched

Et de fait, nombre des éléments clé-en-main fournis dans Mac OS X pour les développeurs sont eux-mêmes des objets, ce qui a permis de les intégrer dans Interface Builder, un logiciel qui permettait de créer l'interface d'une application entièrement à la souris, en liant simplement les éléments aux actions et valeurs intégrées dans le code, et qui a depuis été intégré directement dans Xcode.

Pour la petite histoire, il s'agit là directement d'un héritage de NeXT, lui-même inspiré par les travaux du Xerox Parc sur Smalltalk, comme en témoignait Steve Jobs lui-même dans le documentaire de Robert X Cringely, Triumph of the Nerds, en 1996.



Quoi qu'il en soit, Apple a toujours porté beaucoup d'attention au travail des développeurs tiers. La force du Macintosh des premières heures a été la cohésion de son interface, alors que sur Windows une tâche similaire dans deux logiciels donnés pouvait avoir des raccourcis claviers différents, par exemple. On doit beaucoup de cette cohésion à la "bible" qu'Apple fournit aux développeurs : un épais livre (à l'époque du moins) appelé Macintosh Human Interface Guidelines.

Apple ne s'est pas arrêtée en si bon chemin, puisqu'elle a intégré à chaque nouvelle version de Mac OS X de nouvelles fonctions permettant de simplifier la vie aux développeurs, et donc de créer des applications plus fiables, plus puissantes, et plus élégantes. A tel point qu'aujourd'hui, Cocoa peut pratiquement être abordé comme un langage de haut niveau, de type script. Typiquement, les langages scripts sont des langages plus faciles d'accès, car ils se vouent à commander un moteur d'exécution qui se situe au-dessus du système d'exploitation, sans avoir besoin d'une compilation. Et de fait, la création d'interfaces à la souris, et les commandes relativement simples s'apparentent beaucoup à des environnements de développement comme Flash, par exemple.

La syntaxe même en Objective-C permet d'éviter les erreurs (par exemple, les paramètres d'une fonction sont appelés nommément pour éviter les confusions), mais mieux encore, Mac OS X est livré avec une kyrielle de fonctions qu'il fallait autrefois mettre au point soi-même : ainsi, le framework Core Image dispose de tous les effets visuels dignes d'un Photoshop, qu'une seule commande permet d'activer. Core Animation gère les interpolations et variations de vitesse permettant de beaux effets dynamiques, autrefois hors de portée des développeurs les moins aguerris.

Naturellement, il est possible de plonger plus en profondeur dans les strates du système, afin, si nécessaire, de personnaliser le comportement par défaut de ces fonctions. C'est là que l'analogie aux langages scripts s'arrête, puisque c'est leur limite. Cependant cette approche haut niveau présente nombre d'avantages : offrir les clés de la programmation à un plus grand nombre de personnes, éviter le "mauvais code" susceptible de poser des problèmes, et offrir une interface cohérente, plaisante et dynamique aux utilisateurs finaux, que les développeurs des applications soient chevronnés ou non.
avatar bugman | 
Sympa ce type d'article. Merci. Je suis agréablement surpris par la simplicité de développement sur Mac/iMachin. Venant du C(++), j'avais un peu peur de l'objective (et de son système de messages)... a tord. Le SDK est franchement genial, armé d'un bon bouquin, ça passe comme une lettre à la poste. Rien à voir avec l'expérience désastreuse que j'ai eu avec ma NetYaroze ! je regrette juste de ne pas m'y être mis avant.
avatar fousfous | 
Le problème pour développer sur IOS c'est qu'il faut un Mac. Vous en avez en rab chez macg?
avatar martineko | 
Ouais ! facile ! Mais quand il suffisait d'écrire : Input A,B Print A+B Run c'était pas mal non plus... pour faire illusion !! M.
avatar John Paris | 
Mon côté paranoïaque ressort à la lecture de cet article: Est ce qu’Apple ne serait pas en train d’essayer d’amener de nouveau programmeurs vers eux ? Y aurait-il une fuite de cerveau vers d’autres systèmes ? Apple ne manquerait-il de programme et d’applications innovantes pour les machines qu’ils vendent ? Cela ne m'étonnerait pas car chez Apple, avec les derniers événements, on a vu se dévoiler le coté obscur de la force...
avatar Anonyme (non vérifié) | 
Nice review!
avatar Macmade | 
Aborder Objective-C comme un language de script... Très mauvaise idée... Il suffit de faire un tour sur StackOverflow pour se rendre compte du désastre que cela peut impliquer. Pour être un bon programmeur en Objective-C, il faut avant tout avoir de bonnes notions en language C, vu qu'Objective-C est une sorte de superset de C.
avatar Ielvin | 
@John Paris : le coté obscur c'est l'empreint au Jailbreak ? :p un petit regret pour l'instant, dashcode ne fonctionne plus, j'ai du rallumer le pc pour continuer.. horrible n'est-ce pas ?
avatar Adk3rn | 
Superbe article ! :)
avatar Armas | 
Merci beaucoup pour ce petit article bien sympathique. Nous savons apprécier pour la majorité des lecteurs de macgé, la qualité de la vulgarisation scientifique de vos articles.continuez comme ca, moins de rumeurs et plus d'articles.
avatar grems | 
Ok. Maintenant parlons de Java histoire que les développeurs puissent faire des applications portables toutes plateformes ;-) Oups... j'me suis planté de forum ^^ Pour de rire ! On est vendredi !
avatar makeiteasy | 
Sonio HD tu veux dire Automatic Reference Counting qui est pour l'instant dans la béta Xcode 4.2 avec iOS 5 ??
avatar Macmade | 
Pour info, tout ce qui concerne ARC est sous NDA...
avatar Christophe Laporte | 
@Macmade : Non pas tout :) http://developer.apple.com/technologies/ios5/
avatar Macmade | 
@cl97 lol ils font des progrès chez Apple... ; )
avatar Macmade | 
@Sonio HD Comme l'a justement fait remarqué @cl97, le concept d'ARC n'est pas sous NDA, comme je le pensais. Je pense que les détails techniques, dispo dans la documentation développeur, le sont par contre. Pas de soucis pour ton post donc, désolé ; )
avatar jaxx | 
ARC est aussi le nom du service juridique d'Apple pour aider à la mobilité (internationale) des employés :-) Mais c'était de mémoire à l'état embryonnaire quand j'en suis parti
avatar Vivid (non vérifié) | 
grâce à Apple, plus aucun plaisir à faire fonctionner les neurones pour programmer. Aseptisons aseptisons..
avatar Anonyme (non vérifié) | 
Mouais enfin faut pas rêver non plus les lignes de code ne se font pas d'elle même et les algos ne tombe pas du ciel comme par magie.
avatar greensource | 
Super article MacG, vraiment ça fait plaisir. D'autant que c'est assez "sombre" pour le grand public notre communauté de développeur! Pour les Rennais que ça intéresse, n'oubliez pas nos session CocoaHeads et pis aussi dans les autres villes d'ailleurs ;) @Vivid oulà oulà, là MacG explique ce qu'est la programmation, ça veut pas du tout dire que derrière c'est pas un boulot complet à part entière. Et puis des programmes c'est comme tout yen a des très bon et des très mauvais...tout dépend de la dose de neurone que tu y met justement ;-) Merci encore! Et je pousse aussi à ce qu'il y ai beaucoup plus d'analyse de ce genre, même si le boulot dois être important. C'est une vrai valeur ajouté à MacG, au même titre que les analyses de Mac+.
avatar thedarkangel | 
C'est cool de nous faire des articles comme ça, merci :)
avatar NightWalker | 
[quote=fousfous] Le problème pour développer sur IOS c'est qu'il faut un Mac. Vous en avez en rab chez macg?[/quote] Plus maintenant... On peut même développer avec Delphi (oui oui ça existe encore)... Mais ne me demandez pas ce que ça donne. Je n'ai pas encore essayé. http://edn.embarcadero.com/article/41593
avatar Lemmings | 
Bon article, mais résumer Objective C comme étant un langage de script... Vous y allez un peu fort ! Je fais du dev depuis 15 ans et Objective C est de loin le langage le plus complexe que j'ai croisé...
avatar nogui | 
@ Vivid Ouf ! il fallait la faire celle là ! Encore un fan d'assembleur 6502 ! Va d'ans un AppleStore, Mets toi devant un iMac avec le SDK (si c'est possible :-) ) Lance le SDK et on en reparle ... Pour ma part je trouve le SDK Apple très bien pensé et performant.. A mille lieu du SDK d'Android !! Et on y prend tu plaisir quand on y arrive ! :-)
avatar NightWalker | 
@Vivid... C'est ce que disait aussi les "informaticiens" lorsque Apple présentait pour la première fois la GUI au grand public.
avatar fousfous | 
@NightWalker: Il existe en français le logiciel? Y a un simulateur(j'ai pas de compte dev).
avatar Lemmings | 
@nogui : le SDK d'Android est basé sur Eclipse, un excellent IDE aussi qui a ses grandes qualités et ses quelques défauts. Seul la partie éditeur d'interface est en retrait, pour le code en lui même, Eclipse n'a rien à envier à XCode, voire même l'inverse !
avatar elmatador38 | 
et si je voudrais commencer a etudier xcode pour mettre au point une app ,savez vous m'indiquer par ou commencer?merci
avatar nogui | 
@ Lemmings Chui pas borné, j'ai tout de même essayé d'installer, à titre indicatif, ce SDK sous mon Windows virtuel (VirtualBox), et franchement ça m'a paru une véritable usine à gaz : Mise à jour de Java et j'en passe , des installations de services en mode ligne de commandes (du Windows quoi).. Franchement j'ai passé l'envie de me faire chier comme çà, j'ai plus l'habitude désolé ... ET si ça commence comme ça y'a pas de raison que le reste suive pas ... Sur le Mac çà m'a pris 5mn entre l'installation et la création de mon 1er projet ...et sans DOC ! et j'exagère pas .. Alors bien sur yen a qui vont dire que c'est du tout mâché sur Mac .. si ça me facilite la vie pour faire la meme appli aussi performante, ça me va !!
avatar bugman | 
@ elmatador38 : - le site Apple (en Anglais) - programmation cocoa sous mac os x - BecomeAnXcoder - Developpez des applications originales pour iPhone et ipod Touch (existe sur iBooks, je l'ai trouvé pas mal du tout.) - La reference du C, norme ANSI / ISO
avatar Jean-Jacques Cortes | 
Si la programmation en Objective-C était aussi simple qu'en basic, pascal ou fort, j'aurais écrit mon premier programme pour iPhone au bout de trois jours d'apprentissage. C'est loin d'être le cas. Objective-C est un langage très complexe pas vraiment à la portée du premier venu, même si le C n'a plus de secret pour lui.
avatar Lemmings | 
@nogui : j'ai installé le SDK sur Mac et sur Windows, les premières versions étaient franchement rébarbatives à installer, mais ils ont bien amélioré la chose et l’exécutable de maintenant est super simple. Il faut avoir le JDK évidement, mais pas forcément la dernière version. Quand à l’installation sur mac... Heu XCode est ENFIN sur le Mac App Store mais avant c'était un download de 4 Go à chaque release (une tannée !), et l'installation dure bien plus de 5 minutes... Même sur un mac récent. Sans même évoquer les plantages que j'ai régulièrement sur la dernière version "stable", même si on a du mieux comparé à XCode 4.0 qui était une horreur à utiliser ! Enfin, faire un projet sans doc... Heu, si tu connais pas le langage ou la logique du SDK, ça me parait impossible mais bon :D Cela dit, l'analyseur de syntaxe de XCode 4.1 est assez redoutable, bien plus rapide et plus efficace. J'aime beaucoup !
avatar VTS | 
", des installations de services en mode ligne de commandes (du Windows quoi).. " Pas crédible, juste du troll, le seul truc "chiant" c'est mettre à jour la variable path pour ajouter le chemin du sdk, pis ça se fait via la GUI donc pas besoin de cli... Si maintenant décompacter 2 archive c'est faire de la cli, lol A moins d'avoir confondu l'install sous linux et celle sous windows...
avatar nogui | 
@Jean-Jacques Cortes Houlaaa ! on est en 2011 là ! :-) Avec l'interface graphique évoluée on a enterré tous ces langages pour n'utiliser que des langages orientés objet .. Après le cap du langage Objet passé, ce n'est pas plus dur que .NET de Microsoft .. Sans POO, aucune appli performante avec une interface graphique ..
avatar bugman | 
@ nogui : Sans doc, ça m'étonne aussi. La première fois que j'ai croisé un @syntesize je n'avais pas la moindre idée de ce que c'était, je ne parle même pas de l'architecture Modèle-Vue-Contrôleur ou encore de la gestion de la mémoire en ObjectiveC.
avatar nogui | 
@ bugman Bien sur ! :-) je n'ai pas dit que j'ai pondu une appli sans DOC ! je serai pas là en train d'écrire des conneries sinon :-) juste avoir une ébauche déjà exécutable ... apres un petit bouquin et çà roule ...
avatar Lemmings | 
@nogui : tu serais surpris du nombre d'applications performantes écrites en C, sans objet... Graphiques ou non...
avatar Macmade | 
@nogui Euh... On est en 2011, certes... Mais ton OS, tu sais en quel langage il est codé? JavaScript peut-être? Ben non, c'est du C et de l'assembleur... «Sans POO, aucune appli performante» Totalement faux. La programmation objet n'a pas pour premier but d'être performante, même si elle peut l'être. Un des langage objet les plus évolué, au niveau des concepts, c'est Java. Question performance, on peut repasser...
avatar nogui | 
@VTS "le seul truc "chiant" c'est mettre à jour la variable path pour ajouter le chemin du sdk, pis ça se fait via la GUI donc pas besoin de cli... Si maintenant décompacter 2 archive c'est faire de la cli" "Chiant" oui voilà ! :-) bien sur j'aurai pu y mettre du mien je l'avoue (d'où le troll) mais j'ai assez donné sous Windows .. franchement, je veux resté zen , et pas perdre du temps avec tout çà.. ça me plait plus .. c'est un choix .. discutable peut être mais c'est comme çà... Et ça me rappelle trop le boulot :-)) "A moins d'avoir confondu l'install sous linux et celle sous windows..." Haaa c'est çà ??? merci du conseil ! Sous linux aussi j'ai donné (et depuis les installe en mode texte ! ) j'ai même saoulé des collègues avec tout çà pendant des années... et j'en suis revenu ... Quel perte de temps tout çà quand j'y pense ... et pour quoi ? :-)
avatar BeePotato | 
@ Lemmings : « Eclipse, un excellent IDE aussi qui a ses grandes qualités et ses quelques défauts. Seul la partie éditeur d'interface est en retrait » La partie éditeur d’interface… mais aussi et surtout la partie interface de l’éditeur (enfin, de l’IDE quoi) ! ;-)
avatar nogui | 
@Lemmings "tu serais surpris du nombre d'applications performantes écrites en C, sans objet." : OK mais à quel prix ? @ Macmade je m'exprime certainement pas comme il faut.. Mais j'ai jamais dit qu'il n'y avait que la POO.. et je ne parlais pas des OS où d'autres softs en assembleurs mais d'applications destinés à tourner sous Windows ou MacOS ... non pas tapé ! Quant à java : ne faut-il pas la machine virtuelle pour faire tourner une appli ?? Aucun rapport avec une appli compilée et autonome donc ... Enfin je dis ça je dis rien ... on sait jamais ...
avatar tbr | 
Bravo pour l'article. J'attends sa suite. :-)
avatar kinon2 | 
juste une remarque de beotien. je suis toujours étonné par ce genre d'article dont la première partie commence par dire que tout est devenu plus simple (sous entendu à la porté du débutant) et effectivement cela se confirme car l'auteur présente le B A BA , chouette on comprend! on se dit ca va continuer progressivement...patatras: brutalement on passe dans l'abscons avec une avalanche de termes et notions inconnues... On comprend tres bien qu'il n'y a pas de miracle il faut des bases en programmation. Alors à quoi bon procéder comme cela. Et bcp de bouquins font de même comme la programmation iPhone pour les nuls... mais ce n'est pas du tout pour les nuls...
avatar azgard | 
Commencer à développer sur iPhone n'est pas facile je trouve.
avatar Lemmings | 
@BeePotato : Eclipse est très apprécié et est un excellent éditeur. Pour l'utiliser au quotidien depuis de nombreuses années, je n'y vois aucun soucis à part son utilisation de ressource élevée. Pour tout le reste c'est un IDE exceptionnel ! Le seul à être aussi versatile. @nogui : tu as une vision très étrange de la programmation non objet... L'objet n'est pas fait pour rendre les choses performantes, bien souvent c'est même les applis non objet qui son le plus performantes (pas d’instanciation, de visibilité des variables et méthodes à gérer...). Enfin le kernel même de ton Mac est développé en C et assembleur...
avatar NightWalker | 
[quote=fousfous] @NightWalker: Il existe en français le logiciel? Y a un simulateur(j'ai pas de compte dev).[/quote] A ma connaissance, il n'existe pas en version française. Enfin, au niveau des instructions de programmation, elles sont en anglais. En revanche, les aides sont en français. Pour le moment, j'utilises encore la version Delphi 2010. Mais on devrait bientôt passer en XE2. En fait, Delphi c'est du Pascal très orienté Base de données. Tu peux télécharger la version démo. Il suffit de s'inscrire.
avatar NightWalker | 
La programmation objet a un énorme avantage d'être plus facile à maintenir. Un objet dont le rôle est bien défini est plus facile à utiliser et à maintenir. En revanche, un objet mal défini et mal documenté, qui plus est hérité d'un autre objet hérité de ??? Là ça commence à devenir un bordel innommable... Dans certains cas, un ensemble de procédures/fonctions virtuelles est plus efficace qu'une collection d'objets.
avatar monsieurben | 
@nogui pour les interfaces graphiques peu performantes sans objet, au pif : gnome (enfin, les process les plus importants). Bravo pour l'article, mais c'est vrai que la partie POO est abordée un peu vite : le concept fondamental, c'est qu'en POO, on transpose en langage informatique des objets du monde réel. Pour reprendre l'exemple de la voiture, imaginons qu'on veuille la faire démarrer puis avancer tout droit, et la faire tourner à gauche : - en programmation procédurale, on appliquerait une fonction avancer à la voiture, puis une fonction tourner à gauche. Ca donnerait par exemple : demarrerMoteur(voiture) avancer(voiture); tournerGauche(voiture) Ici, on fait passer la voiture dans un élément extérieur qui agit sur elle. Pas très naturel : dans une vraie voiture, le conducteur dit simplement à la voiture de démarrer, et ce sont les ingénieurs qui l'ont créée qui font en sorte qu'elle démarre, pas le conducteur. - En programmation orientée objet, c'est comme dans le monde réel : on donne un ordre au véhicule, et c'est lui qui se débrouille pour l'exécuter. Ca donnerait : [voiture demarrerMoteur]; [voiture avancer]; [voiture tournerAGauche]; En objective-c, l'ordre passé est toujours à droite de l'objet à qui on le passe. En fait, la POO est une logique un peu plus proche de celle de l'être humain, mais ca reste très complexe à appréhender.
avatar bugman | 
je trouve à la POO d'énormes avantages (comme les propriétés par exemple), par contre le concept a été difficile à comprendre pour moi. En parlant de difficulté, il est étonnant que personne ne mentionne les pointeurs. Ok, l'article est une introduction mais en allant un peu plus loin dans le C (ou dérivé), il est clair que l'on s'éloigne des langages de scripts.
avatar Anonyme (non vérifié) | 
"La programmation n'a rien de sorcier" C'est stupide de propager ce genre d'idées! C'est réduire le métier de développeur a un jeu d'enfant. Hélas, il ne suffit pas de savoir écrire du code pour savoir développer. De même savoir écrire ne fait pas de vous un écrivain et savoir tenir un crayon ne fait pas non plus de vous un artiste. Mais effectivement tout un chacun peut bricoler un programme dans son coin...
avatar legallou | 
@ elmatador38 J'ai documenté mon apprentissage Xcode en faisant pas à pas une application simple. http://www.legallou.com/Mac/ASS/ASSindex.html C'est une version précédente de Xcode. Il y aura probablement quelques menus de différents avec le Xcode d'aujourd'hui, facilement adaptable.

Pages

CONNEXION UTILISATEUR