Xcode sur iPad : un concept et un vœu pieux

Mickaël Bazoge |

Maintenant que l’iPad est devenu (presque) un ordinateur comme un autre, pourquoi n’aurait-il pas droit aux mêmes applications ? Cela fait plusieurs années maintenant que de nombreux développeurs rêvent d’un portage de Xcode sur iPadOS. Certes, il existe bien Swift Playgrounds, mais il s’agit d’une application d’apprentissage du code (même s’il est possible de bidouiller des petites choses amusantes avec).

Concept : Parker Ortolani.

Développer une application pour une des plateformes d’Apple nécessite un Mac. Ce qui peut représenter un investissement de taille et un frein pour bien des développeurs qui voudraient se frotter à l’App Store et ses déclinaisons. Une version de Xcode pour iPad serait de nature à démocratiser un peu plus le développement d’apps pour l’iPhone, l’iPad et consorts !

Et à en croire les rumeurs, notamment du fameux et prolifique Jon Prosser, Xcode est « présent dans iOS et iPadOS 14 », ce qui « ouvre la porte aux applications Pro sur iPad » (et pourquoi pas Final Cut Pro). Le fuiteur s’est fait reprendre par Steve Moser : Apple a inséré dans iOS 13 une app Xcode Preview qui fait office de compagnon pour afficher des aperçus de développements provenant d’un Mac.

Mais qui sait, peut-être qu’Apple va effectivement finir par proposer Xcode sur iPadOS. Ce serait une belle annonce à faire durant la WWDC virtuelle, en juin… En y ajoutant Le support tout récent du pointeur des souris et des trackpads, ainsi que des gestes tactiles depuis ces périphériques, on peut effectivement croiser les doigts. Tout en gardant en tête que Xcode est un logiciel particulièrement complexe… et très gourmand en mémoire vive. Les 6 Go des derniers iPad Pro pourraient être limites.

Si Apple devait effectivement lancer Xcode pour iPad, il s’agira très certainement d’une version complètement repensée pour la tablette, qui tapera moins sur la RAM, et qui conserverait une « expérience tactile ». Le designer Parker Ortolani s’est amusé à imaginer ce à quoi ressemblerait l’environnement de développement d’Apple sur un iPad Air et un iPad Pro. C’est assez convaincant !

avatar tamu | 

Merci pour l’article ! Une immersion 100% iPad pour les développeurs permettrait de faire gagner beaucoup de temps et augmenter le testing et donc la qualité des applications ‘

avatar tamu | 

Merci pour l’article ! Une immersion 100% iPad pour les développeurs permettrait de faire gagner beaucoup de temps et augmenter le testing et donc la qualité des applications !

avatar Florent Morin | 

La limite du Xcode actuel pour passer sur iPadOS est son historique.
En imaginant un Xcode Swift-only et donc SwiftUI pour l’interface, on peut faire pas mal de choses. Sans trop charger la mule.
Et ça ouvre aussi la porte aux solutions serveurs, de type Vapor.
Après tout, ce serait un Swift Playgrounds amélioré.

avatar Amaczing | 

@FloMo

Ou une nouvelle expérience NAISSANTE !

avatar M4c f0r life | 

C'est très utile les développeurs pouvez acheter un iPad pro et Magic keyboard sans devoir a acheter un MacBook

avatar Florian Innocente | 

@M4c f0r life

Ça revient au même prix 🙂

avatar raoolito | 

@innocente

comme par hasard ? (pourtant je ne joue pas au complotisme mais avec apple ca semble si evident)

avatar Florian Innocente | 

@raoolito

En même temps. Un iPad Pro 12 pouces avec son clavier ce n’est pas si différent d’un MacBook Air/Pro. Je veux dire, au niveau des composants, ce sont deux produits plutôt semblables.

avatar raoolito | 

@innocente

D'un air je veux bien croire, d'un pro aussi ??

avatar Tibimac | 

Une version allégée de Xcode mais permettant au moins de pouvoir coder et aovir un simulateur ce serait génial !
C'est clairement ce que j'attends pour acheter un jour un iPad Pro !

avatar Maliik | 

@Tibimac

De même

avatar kiddsoso | 

@Tibimac

Pourquoi avoir un simulateur si on peut directement tester sur l’iPad ? 😭

Je pense pas que l’iPad pourrait faire tourner un simulateur et puis y’aurais juste a adapter l’aspect ratio de l’app à tester

avatar Saussau083 | 

@kiddsoso

La question c’est pourquoi avoir un simulateur iOS... sur iOS... 🤓

avatar bugman | 

Sans demander un environnement de développement aussi complet que Xcode, un compilateur avec une bibliothèque de fonctions allégée (parce qu’il est clair qu’Apple ne permettra pas le bas niveau) et adaptée à la distribution d’application (sans passer par le store ou l’installation de certificats), serait déjà, pour ma part, bienvenue. Une sorte de Pythonista mais orienté langage compilé made in Apple.

avatar en chanson | 

Il faudrait commencer par permettre l’affichage sur un écran externe et non une simple copie d’écran...après peut être que l’iPad ressemblera à la surface

avatar pim | 

@en chanson

C’est clairement l’étape suivante, maintenant que claviers et souris sont supportées.

avatar BeePotato | 

@ en chanson : « Il faudrait commencer par permettre l’affichage sur un écran externe et non une simple copie d’écran »

Ah ben ça tombe bien : c’est déjà fait !

avatar Eratic | 

Je ne suis pas développeur, juste un simple utilisateur de swift playground... détenteur d’un iPad Pro et dépourvu de Mac:
J’adorerais que Xcode soit accessible sur tablette et il est certain que ça démocratiserait encore plus la programmation (c’est quand même bien plus sympa de voir jusqu’où on peut aller et de voir « sa propre app » fonctionner)

avatar yurt | 

C’est amusant comme les illustrations d’un Xcode sur iPad montrent toujours des tout petits projets avec 3 ou 4 fichiers.

J’attends de voir ce que ça donnerait sur un iPad 10 pouces quand on utilise Xcode sérieusement, avec tous les panneaux nécessaires de chaque côté, le simulateur etc.

avatar tamu | 

Merci pour l’article ! Une immersion 100% iPad pour les développeurs permettrait de faire gagner beaucoup de temps et augmenter le testing et donc la qualité des applications !

avatar loupsolitaire97 | 

Hello tout le monde !

Je souhaite mettre à profit le confinement pour me tourné vers le développement, j’en suis au niveau 0 et je me demande par où commencer.
Puis je commencer par apprendre les bases et évoluer avec Swift ? Où vaut t’il mieux que j’apprenne un langage plus universel voir carrément apprendre le développement web avec HTML ?

Mon but dans un premier temps est de voir si le développement me plait, et si c’est le cas, dans un second temps de me professionnaliser et me reconvertir dans le développement, Web, d’application ou autre.

Je prend tout conseil pour débuter et tout conseil d’application ou de formation à suivre pour un débutant totale comme moi :)

Merci !

avatar Link1993 | 

@loupsolitaire97

En général, faut commencer avec un objectif de projet, sinon on ne va pas jusqu'au bout.
C'est une expérience perso sur du VBA ^^

Maintenant, quoi faire, la, je ne peux pas t'aider plus ^^

avatar loupsolitaire97 | 

@Link1993

Mon objectif est de comprendre, comprendre comment tout ce monde informatique que j’utilise depuis des années fonctionne.

Après je suis quelqu’un qui se passionne très vite et qui y mets du coeur et du temps, une fois pris dans quelque chose je sais que je peux y passé plus de 10H par jour.

Disons que mon objectif premier est de comprendre comment tout cela fonctionne, puis de crée un site web.
Ensuite j’aimerais savoir crée une petite application à soumettre à l’App Store.

Merci pour ta réponse en tout cas :)

avatar Rajindael | 

Faire du dev sur l’ipad, ce serait chouette, enfin du dev d’appoint pq avec 12’’ max y’a un risque de finir borgne xD

@loupsolitaire97

Juste pour préciser, il y a des différences entre coder pour le web, pour mobile ou pour desktop. C’est inhérent aux plateformes. Certes tu peux faire du cross-plateforme, avec les contraintes que ça apporte.

Etape n° 1 : les algorithmes.
La plupart des langages objet utilisent les mêmes briques de base (classe, méthode, propriété, variables, boucles, condition, etc...).

Etape n° 2 : le langage.
Un des langages les plus en vogue et versatile : javascript. Avec lui tu peux tout faire, mais cela dépend beaucoup des outils autour (jquery, nodejs, angular, react, ionic, electron, webpack, etc...) qui requière chacun un apprentissage particulier (et dépendent de la cible de ton projet). Attention, ce n’est définitivement pas le plus simple à appréhender.

En ce qui me concerne, j’ai appris seul sur vb.net avec du front winform/wpf. Ce sont des techno microsoft pour faire du desktop, mais le langage est simple. (Ok c’était il y a une dizaine d’années...).

Open Classroom a de très bon tuto pour commencer. Choisis une plateforme (web, mobile, desktop, cross-plateforme), puis voit le langage le plus adapté.
Enfin dernier conseil, faire du dev sur plateforme apple est couteux en équipement, clairement pas par la qu’il faut commencer.

avatar loupsolitaire97 | 

@Rajindael

Merci également pour ta réponse que je vais conserver et me renseigner sur tout ça.

Concernant le fait que faire du Dev Apple soit coûteux, c’est à dire ? Il faut une machine puissante ? Ou il faut plusieurs machines afin de tester ce qu’on crée ?

avatar Rajindael | 

@loupsolitaire97

Pour faire du dev sur iOS et macOS, il faut un mac pour compiler. Compliquer de cracher 2000 EUR pour une machine qui ne va potentiellement servir qu’a « expérimenter le dev ».

Pour du dev en général, les config doivent être bien doté en ram, le cpu est important mais seulement à la compilation. Quant au stockage, qu’il soit rapide, mais pas besoin d’un gros volume. (Note, dans le cas de dev de jeux, ces remarques ne sont plus valable).

Enfin, élément indispensable : les écrans, perso j’en ai 3, et ce n’est pas un luxe !

Si t’es déjà équipé, fait toi plaisir ;)

avatar Nesy | 

Ma recommandation en termes d'écran est de prendre un big écran de minimum 32" et 4K, éventuellement accompagné de petits écrans sur le côté pour des choses statiques (dans mon cas, iTunes par exemple).
Je travaillais avant sur du multi-écran et maintenant sur un seul 32" 4K; ce dernier équivaut à 4 écrans full HD de 16,5" sans bordure. À l'usage, c'est moins fatiguant au niveau du cou et plus productif (ca peut paraître bête, mais on perd moins de temps à bouger sa tête).

avatar loupsolitaire97 | 

@Rajindael

J’ai déjà quasi tout car je fait tourner des solver sur un Hackintosh dans un boitier de Macpro, ça doit valoir 3k€+
Et j’ai deux énormes écrans, je me penche sur tout ça.

En tout cas sacrés bonne communauté ici.
Ça fait plaisir d’avoir des réponses claires à mes questions de débutant, par des gens pro.

Merci !

avatar Onoulade | 

@loupsolitaire97

Salut ! Je te conseille d’apprendre d’abord les langages du web qui sont les plus accessibles, tu sera rapidement capable d’avoir un beau résultat fini qu’avec une programmation logicielle. En plus de ça les langages étant simples ils te permettront de comprendre le « fonctionnement » de la programmation (nan j’ai pas trouvé de meilleur mot) et si cela te plaît ça te permettra d’apprendre plus vite et de mieux comprendre les langages plus complexes. Je te recommande l’excellent cours html5 / css3 sur openclassrooms qui est vraiment très chouette !

avatar loupsolitaire97 | 

@Onoulade

Parfait ! Je me lance là dedans :) merci

avatar mbritto | 

Le HTML et le CSS sont des langages géniaux pour faire de la description et de la mise en page web mais je ne suis pas certain qu'on puisse parler de programmation avec ces langages. Le Javascript serait bien de la programmation mais je crains toujours de recommander le JS à des débutants, ou n'importe quel autre langage interprété.
Par expérience, j'ai pu remarquer que les personnes autodidactes qui ont commencé dès le début avec des langages comme le JS ou le PHP risquent de récupérer des mauvaises habitudes difficiles à perdre par la suite.
Si on apprend en autodidacte, c'est positif d'avoir un compilateur qui te force à organiser un peu ton code (à défaut d'avoir un professeur).
Les langages interprétés sont au contraire très souples et sont efficaces une fois que le développeur est expérimenté et a trouvé un style de programmation qui lui convient.
Pour toutes ces raisons, je pense qu'il vaut mieux un langage compilé pour débuter en programmation ; si possible assez récent pour que ça reste simple : Swift, Kotlin, C#, Java, etc.

avatar IceWizard | 

@loupsolitaire97

« Puis je commencer par apprendre les bases et évoluer avec Swift ? Où vaut t’il mieux que j’apprenne un langage plus universel voir carrément apprendre le développement web avec HTML ? »

Les cours de Maxime Britto sont devenus gratuits pour le confinement. Ce sont d’excellents supports d’apprentissage, meilleurs que les cours d’Udemy (mais nettement plus onéreux d’ordinaire).

https://www.purplegiraffe.fr

Il y a des cours pour apprendre à programmer en Swift pour iOS, et d’autres pour Kotlin sous Android.

Vas voir, en quelques heures tu pourras créer une application en Swift (une toute simple, pour débutant, avec quelques mécanismes de base).

avatar BeePotato | 

@ loupsolitaire97 : « Puis je commencer par apprendre les bases et évoluer avec Swift ? »

Oui.
Il ne devrait pas y avoir plus de problème en débutant avec Swift qu’avec JavaScript ou Python.

En revanche, ce qui peut engendrer assez vite beaucoup de frustration, c’est le développement d’applications à interface graphique — parce qu’il y a d’un coup une tonne de trucs à assimiler en plus des bases de la programmation. Et le fait qu’un framework comme Cocoa s’occupe de beaucoup de choses peut facilement donner une impression de magie qu’on ne maîtrise pas.
Mais on peut s’en tenir pendant un bon moment à des choses simples en termes d’interface (par exemple dans un playground ou en se limitant à une interface textuelle) tout en s’amusant avec les concepts de base de la programmation.

Cela dit, pour quelqu’un qui est intéressé aussi par le développement web, le mieux est peut-être d’apprendre les deux en même temps. Ça présenterait l’intérêt de pouvoir plus facilement prendre du recul par rapport aux spécificités de chaque langage et mieux distinguer les concepts génériques de la programmation.

Bon amusement ! :-)

avatar bugman | 

@loupsolitaire97

Pourquoi pas une petite formation sur le jeu vidéo ? Je te propose Gamecodeur (200€ à vie en ce moment) où tu peux apprendre quelques languages comme le Lua et le C#. David est très pédagogue et c’est un véritable développeur emplit de passion.
Je te promet que ce sera très formateur.

avatar Onoulade | 

Je ne comprends pas quel est l’interêt d’acheter une tablette pratiquement pour faire le boulot d’un ordi, pratiquement au même prix mais avec moins de puissance et une moins bonne ergonomie qu’un Mac ? Alors certes ils ont rajoutés clavier / souris mais du coup ça rend sans intérêt le côté tactile de l’objet (parce que oui c’est plus pratique une souris avec un petit pointeur plutôt qu’un gros doit pour travailler précisément) et par conséquent je ne voit absolument aucun avantage à acheter un iPad pour effectuer de la programmation. Outre le fait qu’un MacBook Air ferai largement le café mais le ferai même mieux, avec un écran plus grand, pas besoin d’accessoires hors de prix pour avoir une interface précise et la même chose a une vache près en ce qui concerne le poids / batterie de la chose. Vraiment je ne voit à aucun endroit où c’est avantageux.

De plus pour utiliser Xcode tous les jours il est infiniment plus pratique de pouvoir tester son app avec Xcode ouvert en monitoring de code (breakpoints) avec Instruments ouvert pour des donnés en temps réel sur les performances de l’app, l’utilisation de la RAM, etc... sans parler du fait que Photoshop est souvent ouvert en arrière plan ainsi que mes 3000 onglets safari branchés sur stackoverflow. Rien que pour afficher tout ça (et oui tout afficher en même temps c’est plus pratique et ça fait gagner du temps) il me faudrait 3 écrans en plus de celui que j’utilise pour faire tourner l’app que je code.

Bref sur un iPad même si tout ceci reste possible c’est infiniment moins pratique et pour le même prix, alors je ne comprends pas bien quel serai « l’avantage » d’une telle app sur iPad? pourquoi remplacer le Mac avec un appareil moins puissant et moins pratique (a moins de payer pour un vrai interface) ? Pourquoi ne pas simplement offrir une app qui ferait office d’écran externe et de table de. On trime pour le Xcode du Mac (comme l’app Logic remote qui donne une vraie plus value a l’app Mac) ?

avatar fifounet | 

@Onoulade

"Je ne comprends pas quel est l’interêt d’acheter une tablette pratiquement pour faire le boulot d’un ordi, pratiquement au même prix mais avec moins de puissance et une moins bonne ergonomie qu’un Mac ?"

Pour toi l’ergonomie ne se résume qu’à la souris ?

« parce que oui c’est plus pratique une souris avec un petit pointeur plutôt qu’un gros doit pour travailler précisément) « 

Ça c’est juste parce que tu imagines que l’interface de la tablette reste la même que sur macOS. Et donc effectivement c’est pas optimisé pour le tactile.
Mais là tu parles des surface, et effectivement ça n’est pas l’idéal loins de la.
Mais pour l’iPad il faut peut être envisager que ce sera repensé, sur ce point Apple n’est pas MS

avatar Onoulade | 

@fifounet

Pas seulement la souris mais l’interface qu’elle autorise à afficher sur un écran, par exemple sur mon mac je peux avoir pleins de petits boutons alors que sur mon iPad je vais avoir une myriade de sous menus, et ce même avec la souris puisqu’elle est en option

avatar fifounet | 

@Onoulade

"Pas seulement la souris mais l’interface qu’elle autorise à afficher sur un écran, par exemple sur mon mac je peux avoir pleins de petits boutons alors que sur mon iPad je vais avoir une myriade de sous menus, et ce même avec la souris puisqu’elle est en option"

J’ai complété mon message précédent sur ce point. 😎

avatar Onoulade | 

@fifounet

Yes exact il faut pas porter l’interface tel quel comme MS, on va dire qu’ils l’ont pas fait exprès, mais justement je me demande si ça vaut bien le coup de le faire, et surtout si le résultat sera vraiment plus intéressant que sur Mac... j’ai un iPad aussi et je l’adore... mais pas pour le code :p !!

avatar BeePotato | 

@ Onoulade :
L’idée n’est probablement pas d’acheter une tablette pour faire du développement, mais de pouvoir y faire du développement en plus de ce pour quoi on l’a achetée. ;-)

avatar fifounet | 

Tiens il me semble avoir parlé de cette possibilité il y a quelques temps ici. Que rien n’empêchait matériellement un iPad d’avoir son outil de développement.
Que m’a-t-on répondu ? Je sais plus tien 😱

Mais je suppose que si ça se fait, les avis sur l’iPad vont miraculeusement basculer : ha ben maintenant c’est un ordinateur c’est plus une tablette 🤔
Comme si delà dépendait uniquement de ça.

avatar Rajindael | 

En soit, un outils comme Visual Studio Code serait bien pour commencer. Par rapport à d’autres IDE, l’interface est assez légère et je pense serait adapté pour du swift.

Ce qu’il manque le plus, c’est l’interpreteur/compilateur. Pq au fond, des éditeurs de texte il y en a qq’un sur l’appstore (des bons et des moins bon ok).

avatar Nicolas. | 

@ Rajindael

Effectivement un portable de VS Code sur ipad je ne dirait pas non pour tester le potentiel. Après on va être limité par d'autres aspects, il faudrait que l'iPad puisse faire tourner nodeJS, un installateur de package etc

avatar Rajindael | 

@Nicolas.

NodeJS sur iOS, j’en rêve 😍

Pythonista à porté un environnement python quasi complet (j’avais réussi à créer une petite API via Flask). Ca doit être possible de faire pareil avec node.

Au delà de la simple prouesse technique, il y a quand même la question de l’investissement. Qu’est ce que cela peut rapporter de porter tel ou tel langage/framework/environnement sur iOS.

Il reste que, d’après ma compréhension, des institutions et entreprises veulent initier la population au code. C’est une très bonne chose. Et c’est juteux à long terme si tu fais tes armes avec les techno de l’un plutôt que de l’autre.

Je pense qu’il y aussi la transition ARM qui va pousser à revoir et éprouver les outils. On a eut l’exemple récent avec Catalyst, reservé un temps à apple. Ou plus lointain, la transition vers Final Cut Pro X.

Bref, on verra bien :)

CONNEXION UTILISATEUR