Swift pour les Nuls permet de découvrir le nouveau langage d'Apple

Nicolas Furno |

La collection « Pour les nuls » s’enrichit d’un volume sur Swift, le nouveau langage de programmation. Comme tous les autres livres de la collection, ce manuel s’adresse aux grands débutants qui veulent tout apprendre, y compris comment installer et configurer Xcode, l’outil de développement d’Apple. La suite, sur près de 400 pages, permet de découvrir le playground associé à Swift, puis à créer une application dans ce langage en commençant par les bases et en découvrant progressivement les éléments les plus complexes.

Swift pour les Nuls sera commercialisé à partir du 14 janvier, mais vous pouvez le commander aujourd’hui pour le recevoir le jour J. Comptez 25 € environ en version papier, ou bien 16 € en version numérique, sur Amazon (Kindle) ou sur l’iBooks Store. L’ouvrage est entièrement traduit en français.

Ajoutons qu’il s’agit de la traduction d’un livre en anglais, publié en février 2015. L’éditeur ne précise pas si le contenu a été actualisé, mais même si c’est le cas, Swift évolue trop rapidement pour que le manuel ne soit pas rapidement dépassé. Néanmoins, l’introduction proposée devrait permettre de découvrir la programmation en Swift et le plus dur aura été fait.

avatar Seccotine | 

Il ne faut pas oublier que la syntaxe de Swift est loin d'être figée et change très très rapidement.

avatar occam | 

Les manuels « Pour les nuls » sont de qualité variée : certains sont des classiques, d'autres ne déméritent pas trop, mais il en existe aussi qui prennent le titre de la collection au pied de la lettre.

Quoi qu'il en soit, pour qui veut se mettre à la programmation, une certaine pratique de l'anglais technique paraît indispensable. Elle vient surtout en lisant. Je ne vois pas très bien l'intérêt de cette traduction.

Le manuel Swift (actuellement Swift 2.1) mis à disposition par Apple est plutôt bien fait, très accessible, et gratuit. Il existe plein d'autres manuels d'introduction chez un nombre d'éditeurs anglophones, dont certains bénéficiant d'une mise à jour continue en ligne. Pour ce genre d'ouvrage, il faudrait vraiment repenser fondamentalement le concept du bouquin d'intro et de référence.

avatar macbook60 | 

@occam :
Bonsoir
Petit question est ce que Xcode 7 est compatible avec os lion
Merci

avatar Seccotine | 

Non, il faut au moins Yosemite.

avatar occam | 

@macbook60

Bonsoir, pardon du retard pris à vous répondre, j'étais hors-ligne.
Seccotine a raison, pas de Xcode 7 en dessous de OS X 10.10.
Apple force constamment à utiliser les versions OS les plus récentes si l'on veut se prévaloir de leur outillage de programmation. Ce n'est pas toujours un avantage.

avatar Splint3r-b3n | 

Pour quelqu'un qui voudrait passer de Java à Xcode pour developper sur iOS, est-ce que vous pensez que sauter la case Xcode et passer directement à Swift vaille le coup ?

avatar Rez2a | 

@Splint3r-b3n :
Aucun rapport, Xcode c'est l'IDE, Swift c'est le langage. Tu ne vas pas "sauter" l'un ou l'autre. Peut-être que tu voulais dire Objective-C au lieu de Xcode ?

avatar Splint3r-b3n | 

@Rez2a
Au temps pour moi je voulais dire le language Objectif-C via Xcode 7.2, pensez-vous que à court terme cad d'ici 2 ou 3ans Swift va remplacer Objectif-C ou ça risque de prendre plus de temps et par ce fait mieux vaut rester sur Objectif-C pour des bases solides ?

avatar Glop | 

Les deux langages vont certainement cohabiter pendant de nombreuses années. On ne renonce pas à un langage aussi facilement. Il y a encore des gens programmant en C/C++ sur Mac.

Swift est surtout séduisant pour les nouveaux développeurs, l'Objective-C étant un langage assez compliqué à apprendre avec sa syntaxe ésotérique.

Les "bases solides" pour apprendre à créer une application c'est l'apprentissage des frameworks iOS (les composants graphiques, les gestures tactiles, la gestion du son, les accès réseaux, etc..). Cela n'a rien à voir avec un langage en particulier.

avatar BeePotato | 

@ Glop : « Swift est surtout séduisant pour les nouveaux développeurs, l'Objective-C étant un langage assez compliqué à apprendre avec sa syntaxe ésotérique. »

Pas tellement ésotérique, la syntaxe d’Objective C : c’est tout bêtement du C, plus une syntaxe tout simple (et, à mon avis, très agréable) pour l’envoi de message.

avatar Rez2a | 

@Splint3r-b3n :
Je pense qu'aujourd'hui il vaut mieux attaquer par Swift directement. Tu risques quand même d'avoir besoin de savoir "lire" l'Objective-C, car la plupart des solutions que tu trouveras à tes problèmes sur le net (Stackoverflow & cie) seront probablement en Obj-C ; normal, le langage est plus vieux.

Comme l'a dit mon collègue du dessus, de toute façon, le gros morceau c'est de connaître les frameworks d'Apple utilisés pour le développement sur iOS. Ils restent identiques peu importe que tu codes en Obj-C ou en Swift.

Enfin, Swift a un gros avantage, en plus d'être moderne, concis etc: le livre fourni par Apple sur iBooks est exemplaire pour apprendre le langage, c'est vraiment très bien fait.

Le seul problème, c'est que le langage évolue très vite, y a des chances que des trucs changent encore avec la sortie de Swift 3 cette année ; à côté, Obj-C paraît figé dans le marbre.

Bon courage :)

avatar Domsware | 

@Splint3r-b3n :
Un conseil : commence directement en Swift.
Le langage est agréable, moderne et semble être adopté massivement. Le récent passage en open-source accélérant le mouvement.

En ce moment je fais l'aller-retour entre mon dernier jeu en Swift et les autres en Objective-C : dur de revenir à ce dernier !

En ressources : StackOverflow, le site de Ray Wenderlich, Natasha the robot, NHhipster. Il y a aussi scoop.it qui regorge de ressources.

avatar Glop | 

Comme le dis Rez2a, Xcode c'est l'outil de développement d'Apple. Il supporte l'Objective-C, l'ancien langage et Swift le petit nouveau. Si tu n'as aucune connaissance en Objective-C, il sera beaucoup plus facile pour toi de commencer directement avec Swift.

Voici une série de cours en vidéo (en français) présentant les bases de la programmation en Objective-C et Swift : http://pagesperso.lip6.fr/Fabrice.Kordon/5I452-2014/

avatar macbook60 | 

Et donc on ne pas faire d'application ou sa a rien avoir
Merci pour la réponse

avatar Glop | 

Cela veut dire que tu dois avoir Yosemite ou El Capitan, pour utiliser Xcode 7 et créer des applications.

avatar macbook60 | 

Merci donc ceux qui ont les versions Xcode avant Yosemite ne peuvent plus créer d'application
Je suis totalement débutant je peux apprendre à créer des applications directement avec Swift sans objectif c

avatar occam | 

« Je suis totalement débutant je peux apprendre à créer des applications directement avec Swift sans objectif c »

Oui, et il y a même des avantages conceptuels à apprendre directement Swift, sans passer par Objective-C.
En plus, Swift 2.1 a atteint un certain degré de maturité, et la documentation en ligne ainsi que la communauté des programmateurs qui le pratiquent a rapidement pris de l'ampleur. Les débutants ne sont plus le premiers à essuyer les plâtres.

La question de Swift comme premier langage est discutée ici :
https://www.reddit.com/r/swift/comments/3z9gym/choosing_swift_as_a_first_language/

avatar macbook60 | 

@occam :
Merci

avatar Glop | 

Apple ne valide que les applications compilées avec la dernière version d'Xcode, donc le passage à Xcode 7 et Yosemite/El Capitan est indispensable pour un développeur Swift.

Si tu as des questions sur Swift, tu peux les poser sur le forum cocoacafe, fréquenté par de nombreux développeurs iOS francophones : http://forum.cocoacafe.fr

avatar melaure | 

Raison de plus pour éviter le MAS ...

avatar macbook60 | 

Merci c'est gentil

avatar expertpack | 

L'avenir est au "Write once, run everywhere"
En clair il existe des outils permettant de coder quel que soit l'os .
La est l'avenir car apple ne sera pas éternel et l'univers est peuplé d'alternatives riches et variées.

avatar BeePotato | 

@ expertpack : « L'avenir est au "Write once, run everywhere" En clair il existe des outils permettant de coder quel que soit l'os . »

Ça fait au moins 25 ans qu’on nous dit ça, et que cet « avenir » ne génère que des horreurs.
Non, merci, vraiment. :-)

avatar EBLIS | 

Apple ne sera pas éternelle mais on a facilement 1 ou 2 décennies avant que le déclin ne commence non? À moins que ça arrive du jour au lendemain notre génération ne verra peut être pas (dans sa vie professionnelle) ce changement.

avatar Glop | 

Il est certain que des spéculations sur l'avenir de l'informatique dans les années post-Apple (2040 ou 2050 ?) vont beaucoup aider les gens désireux de créer des applications iOS cette année ..

ou pas ..

avatar thebarty | 

@expertpack :
Ça c'est quand on ne raisonne qu'en couts de dev. Nivellement par le bas. Quand on se préoccupe d'UX et de fidélisation users, le Write once, run everywhere, c'est mort (ou bien trop complexe pour une UX satisfaisante).

avatar BeePotato | 

@ thebarty : « Ça c'est quand on ne raisonne qu'en couts de dev. »

Et encore : en coûts théoriques. Parce que le « write once, debug everywhere » peut vite apparaître et faire regretter de ne pas avoir choisi une autre approche.

« Nivellement par le bas. Quand on se préoccupe d'UX et de fidélisation users, le Write once, run everywhere, c'est mort (ou bien trop complexe pour une UX satisfaisante). »

En effet. Mais ça continue malheureusement de faire rêver beaucoup de développeurs (et, comme l’a dit Domsware, de gestionnaires, mais ça c’est moins étonnant).

avatar Domsware | 

@expertpack :
J'ai déjà entendu cette ritournelle plusieurs fois et force est de constater que la réalité contredit cette affirmation. Le "codé une fois, exécuté partout" c'est la tour de Babel version informatique, le rêve des gestionnaires : payer le développement une seul fois pour toutes les plateformes. Comme dit plus haut c'est le nivellement par le bas avec des applications à l'ergonomie horrible.

avatar melaure | 

Mais n'est-ce pas le cas de swift aussi ? En C on sait ce que l'on fait et on a une grande "liberté". Il faut juste être rigoureux. Je me méfie des langages de "haut niveau" trop loin du matos, qui donne une impression de simplicité, mais te cadenasse ...

avatar BeePotato | 

@ melaure : « Mais n'est-ce pas le cas de swift aussi ? »

Ben non, ça n’a pas tellement de rapport. Le « write once, run everywhere » dont parlait expertpack, c’est surtout une question de framework (ce qui conditionne partiellement le choix du langage). Swift, c’est juste un langage (et une petite bibliothèque standard), aucune framework de développement d’applications n’est fourni avec.

Pour ce qui est du risque de « cadenassage » avec les langages de haut niveau, je crois voir à quoi tu fais référence, mais je trouve qu’on ne s’y heurte pas vraiment en Swift.
En revanche, comme pour tout langage d’un peu haut niveau, il est nécessaire que les développeurs se rappellent le coût de ce qu’ils écrivent : certaines simplicités syntaxiques peuvent masquer la complexité de ce qui s’exécute vraiment. C’est notamment un risque posé par la possibilité de surcharge des opérateurs (pour ma part, je regrette que cette surcharge soit possible en Swift).

avatar Vivid (non vérifié) | 

Exactement melaure, on peut comparer ceux qui tendent des éloges a tout ces langages de type POO a des bureaucrates..

Ces langages te cadenasse intellectuellement parce que il te mettent sur des rails, il y a mêmes des 'conventions' pour le nommages de variables.. 'big brother' pathétique...

L’individu qui trouve le C trop permissif, difficile ou je ne sais quelle conn... je lui recommande de prende son seau, sa pelle et direction la plage.

avatar Glop | 

Ça tombe bien, l'eau est chaude et il y a du soleil !

avatar Glop | 

L'ouvrage ne sera en vente que demain, mais on peut déjà regarder l'extrait disponible sur l'iBook Store.

Pas terrible .. Il n'a eu aucune mise à jour depuis la sortie de la version américaine de Février 2015. Le contenu est vieux d'un an (iOS8, Xcode 6, Swift 1.0), alors que le langage a beaucoup évolué.

Plus surprenant, l'auteur commence par bassiner le lecteur avec du blabla théorique sur HTML, la programmation Android, les frameworks multi-plateformes, FileMaker, Titanium et autres étrangetés.

Cela n'a pas l'air d'être un grand cru de la série "..pour les nuls".

avatar tbr | 

Désolé de déterrer ce thread mais j'ai quelques remarques à faire.

Pour poser mes questions, vous devez d'abord savoir qu'en terme de programmation, je suis un débutant — ou plutôt quelqu'un qui a des notions lointaines en la matière : du BASIC (+/- 1981 sur des ordis antédiluviens). J'ai "programmé" (les guillemets parce que ce que je faisais était plus de la bidouille) des trucs pour m'amuser, totalement inutiles, qui faisaient bouger des lignes aux couleurs changeantes sur le moniteur de mon ORIC...

Autres expériences : HTML/CSS, de la pseudo programmation > arrêté depuis, faute de temps et parce que c'est justement devenu plus imbriqué avec d'autres langages qui nécessitent ce qui justement me manque et pour lesquels je me demande par où commencer

Un peu de lecture sur ce qu'est le langage C (traduit du livre des auteurs même de ce langage) où l'on m'apprend à dire "Hello World"... Bon, ok, je mets mon prénom à la place et ça marche aussi. Pigé !
Et juste après cette mise en bouche un peu bêtifiante, pouf... des Integer en veux-tu en voilà, sans me dire concrètement le pourquoi du comment ces trucs sont si indispensables.

Bref, je me vois donc confronté à l'épineuse question qui est de savoir si je dois d'abord connaitre un langage de programmation ou bien si je dois d'abord comprendre les concepts de base que sont.. que sont quoi d'ailleurs ? La logique ? Les algorithmes ? l'âge du capitaine — non, pas Cook, mais [ ] ?

Par quoi donc commencer concrètement quand on est un débutant pur jus et qu'on veut piger le langage et les concepts employés en programmation ? Faut-il avoir un état d'esprit, des dons particuliers (mathématique, logique, je ne sais quoi) pour ce savoir-faire ?
Et, enfin, existe-t-il vraiment un bouquin qui ne commence pas invariablement par le fameux (et simpliste) "Hello World", juste avant de plonger dans le bain sans dire explicitement le pourquoi du comment > sentiment qu'on doit déjà savoir tout ça.

Merci

avatar Vivid (non vérifié) | 

>tbr

Tu as la chance d'avoir tout sur le net. Sur chacune de tes questions.

"Par quoi donc commencer concrètement quand on est un débutant pur jus et qu'on veut piger le langage et les concepts employés en programmation ? "

quel langages ?

le "hello world" c'est un exemple sans API donc marchant sous toutes les machines, maintenant tu est surement 'tomber' sur les 'struct' souvent utiliser pour contenir des données avant appel de 'fonction', 'routines' 'API' du système sur lequel est héberger ton compilateur C.

bye.

CONNEXION UTILISATEUR