Actualité

Divers

Le livre de la semaine (+Q/R) : programmation iOS 6 / T. Sarlandie & JM Lacoste

Par Didier Pulicani - Publié le

Le livre de la semaine (+Q/R) : programmation iOS 6 / T. Sarlandie & JM Lacoste
Avec les beaux jours qui arrivent, vous avez peut-être décidé de vous y mettre : la programmation iOS est à la mode et les perspectives de voir son application faire des millions titille l'âme de développeur que vous êtes. Mais par quoi commencer ? Et vers quelle littérature se tourner ?

Thomas Sarlandie & Jean-Marc Lacoste sont deux pointures du secteur. Nous avions d'ailleurs déjà interviewé Thomas lors de la première sortie de l'ouvrage Programmation iOS, dédié à iOS 3. Depuis, le bouquin s'est largement enrichi, et s'est surtout adapté aux nombreuses améliorations présentes dans les dernières versions d'iOS.

S'il fallait n'en retenir qu'un, vous pouvez vous jeter sans réfléchir sur Programmation iOS6 de nos deux compères, un ouvrage à la fois accessible et complet. Même les développeurs déjà plus engagés pourront trouver quelques astuces et façon de faire que la documentation web n'aborde pas toujours. Car si l'on achète un livre, ce n'est pas tant par flemme de lire la documentation, mais plutôt pour acquérir des méthodes et des principes que l'auto-didacte ne voit pas toujours venir à lui.

Acheter le livre sur Fnac.com (34€20)

Et puisqu'il s'agit de notre livre de la semaine, voici une petite interview de Thomas Sarlandie, où nous aborderont les grands changements présents et à venir sur iOS.

Quelles sont les grosses nouveautés d'iOS 6 côté développement ?

iOS6 a apporté des tonnes d'évolutions pour l'utilisateur et bien-sûr, aussi, son lot de changements pour le développeurs.

Il y a beaucoup de changements au niveau des APIs UIKit qui sont le coeur du framework de développement iOS et ces changements nécessitaient une mise à jour sérieuse de ce livre. Parmi les plus importants, on peut noter l'arrivée en force des Storyboards qui existaient déjà dans iOS5 mais se sont encore enrichis et que nous recommandons désormais pour tout nouveau développement, ou bien le nouveau mécanisme auto-layout qui permet de redimensionner automatiquement une interface. Ce dernier est presque indispensable pour gérer simplement les proportions un peu particulières de l'iPhone5 et facilite grandement les développements iPad (pour lesquelles l'interface doit fonctionner dans toutes les orientations).

Au delà de ces évolutions importantes, nous notons deux tendances très importantes.

• La première est la multiplication des frameworks et libraries au sein d'iOS. En 2008 (première édition du livre), il était possible de connaître et maîtriser l'ensemble d'iOS3 - à l'exception peut être d'OpenGL, réservé aux développeurs de jeu. Avec iOS6, il y a un nombre impressionnant de librairies répondants à des besoins très particuliers et rares seront les développeurs capables de tout maîtriser. Certains développeurs se réjouiront sûrement de voir la plateforme s'enrichir et les limites tombées, d'autres regretteront de voir iOS ressembler de plus en plus à d'autres plateformes dans lesquelles il y a 10 librairies qui répondent aux mêmes besoins. Les développeurs débutants seront perdus face à tant de choix et risque de ne pas partir dans la bonne voie. Les plus expérimentés seront à terme obligés de toutes les apprendre en retouchant différents projets, au lieu de se spécialiser. Nous avons ainsi choisi le plus souvent possible de ne présenter dans notre livre que la solution moderne et populaire et de ne pas parler du reste. On aborde donc ARC mais on a supprimé tout ce qui concernait le développement avec les retain/release; on parle des StoryBoard mais plus des fichiers XIB.

La deuxième tendance, et c'est une excellente nouvelle, est qu'Apple a fait marche arrière sur certains choix. Cela montre que la pomme a encore beaucoup de caractères et en particulier le courage de reconnaître ses erreurs. Sur la gestion des rotations, sur la gestion de la mémoire (viewDidUnload a disparu par exemple), sur l'encapsulation des contrôleurs, etc il y a eu beaucoup de retours qui nous rassurent sur le fait que la plateforme va rester propre parce qu'ils font l'effort de refactorer quand c'est nécessaire, plutôt que de laisser s'accumuler des problèmes.

C'est aussi une belle leçon pour nous tous développeurs ...

Le livre de la semaine (+Q/R) : programmation iOS 6 / T. Sarlandie & JM Lacoste


Aujourd'hui, peut-on considérer un développement iOS 6-only ? Quels OS conseilles-tu encore de supporter dans les apps ?

Tout dépend bien-sûr de la cible utilisateurs et de l'historique de l'application. Il y a (malheureusement pour le développeur et heureusement pour les utilisateurs) beaucoup d'anciens devices en circulation qui ne peuvent pas être mis à jour (iPad 1, iPhone 3G, etc). Une application qui se veut très grand public gagnera quelques pourcentages de part de marché en restant sur iOS5. Cependant, le SDK iOS6 peut grandement faciliter et accélérer le développement d'applications, il faut donc comme souvent en informatique faire un compromis : vaut-il mieux supporter quelques pourcents d'utilisateurs en plus, ou bien offrir une expérience meilleure et quelques fonctionnalités supplémentaires aux utilisateurs iOS6 uniquement ? A chacun sa réponse.

Pour les débutants, mieux vaut ne pas perdre de temps à apprendre iOS5 et comprendre le passé : démarrez directement sur iOS6.

Quels sont les pré-requis pour appréhender un tel ouvrage ? Un développeur PHP autodidacte peut-il facilement se mettre à la programmation iOS ?

Le plus important est d'avoir une bonne idée de ce qu'est la programmation orientée objet. On aborde dans le livre les design-patterns les plus importants pour le développement iOS mais toute expérience en la matière sera extrêmement précieuse pour bien comprendre le fonctionnement des APIs et construire une application solide.

La syntaxe étrange, l'environnement de développement un peu old school et l'ambiance parfois un peu fanatique qui entourent iOS peuvent faire peur à certains développeurs mais une fois les premiers pas faits à travers ce voile de brume, on découvre un langage expressif et très agréable (le nommage des arguments : difficile de s'en passer quand on y a gouté !), des outils à la pointe de la technologie (LLVM pour la compilation, l'analyse statique de code, ARC, etc) et une communauté très dynamique et bien organisée (les vidéos de Stanford, celles de la WWDC, des services comme et bien sûr des tonnes de blogs, forums, etc)

Qu'attends-tu d'iOS 7, côté SDK ?

Le support de nouveaux périphériques bien sûr - déjà des années qu'on parle de la télé Apple, iOS serait un excellent moyen de développer des applications superbes, riches et dynamiques sur de grands écrans. On peut déjà le faire en partie grâce à AirPlay, il ne manque pas grand chose ...

Quel est, en tant que développeur, ton avis sur le jailbreak de manière générale, et notamment tout le buzz fait autour d'evazi0n" ?

Je suis idéologiquement contre les brevets logiciels et les lois stupides qui t'interdisent de faire ce que tu veux avec ce que tu achètes (en particulier le désimlocker). Je pense qu'on devrait pouvoir faire tourner linux sur son téléphone comme on peut faire tourner linux sur son Mac, et que de ces usages "détournés" peuvent venir beaucoup de bonnes idées qui pourront être reprises ensuite dans l'OS ou dans des applications. La course au jailbreak est une bonne chose parce qu'elle permet aussi de tester et améliorer la sécurité d'iOS. Je suis convaincu que c'est de loin l'OS mobile le plus sécurisé aujourd'hui.

En tant que développeurs d'apps, je ne jailbreak pas mon téléphone parce que j'ai effectivement constaté plusieurs fois des problèmes avec mes applications sur des téléphones jailbreakés (les notifications ne marchaient pas bien par exemple, plantages, etc). Je préfère avoir un environnement identique à celui de mes utilisateurs et pouvoir faire les mises à jour dès qu'elles sortent pour tester mon app dessus.

En tant qu'utilisateur je ne jailbreak pas non plus parce que je suis extrêmement satisfait de ce que m'offre l'iPhone non-jailbreaké et je n'ai pas encore vu de killer-feature réservés aux utilisateurs de jailbreak (lâchez vous dans les commentaires ! je les lirai avec attention !)

Finalement je pense qu'il y a pas mal de téléphones jailbreakés uniquement pour pouvoir installer des apps crackées. Je défends l'idée selon laquelle je veux bien payer pour quelque chose si l'acte d'achat est simple et si le prix est raisonnable. Apple a vraiment rendu l'achat d'applications simple et je pense qu'il y a une majorité d'applications "bien pricées" dans le store : je suis ravi de les payer et ainsi soutenir les développeurs indépendants. J'encourage fortement tout le monde à faire de même !

Acheter le livre sur Fnac.com (34€20)

Merci beaucoup pour cette petite interview ! Si vous avez des questions, n'hésitez pas à les poser dans les réactions !