Porter une app iOS pour Windows est plus simple que pour macOS

Nicolas Furno |

Complete Anatomy [2.2.0 – US – Gratuit (achats in-app) – iPad – 915 Mo – 3D4Medical.com, LLC] est une app conçue pour l’iPad et spécialisée, dédiée aux étudiants en médecine et autres chirurgiens. Elle rassemble une mine d’informations sur l’anatomie, le système musculaire, l’ossature et tout ce qu’il faut savoir sur le corps humain. Apple s’en est notamment servie en guise d’exemple pour montrer la puissance de son iPad Pro en 2015.

Ses concepteurs ont ensuite réalisé une version pour macOS et ensuite une déclinaison pour Windows. Rien d’exceptionnel jusqu’ici, mais ce qui est intéressant, c’est la méthode utilisée pour créer ces deux variantes. Sur l’iPad, les développeurs ont utilisé UIKit pour créer l’interface, mais ce framework n’est pas disponible sur Mac. À la place, ils ont certainement utilisé AppKit, l’équivalent de macOS.

On pourrait croire que le travail a été plus complexe pour Windows, mais c’est en fait plus facile que sur macOS. Microsoft a créé une passerelle qui simplifie le passage d’iOS à Windows 10, notamment en convertissant UIKit pour le framework d’interface du système. Ce pont est disponible gratuitement et il simplifie considérablement le travail… à tel point qu’il est plus facile de porter une app iOS pour Windows que pour macOS.

Complete Anatomy sur Windows 10. Cliquer pour agrandir

Est-ce qu’Apple a prévu de simplifier le passage d’un système à l’autre ? Il y a deux ans, on découvrait UXKit, un framework compatible avec macOS et iOS, mais il n’a jamais été exploité au-delà de Photos et les développeurs ne peuvent toujours pas l’utiliser dans leurs apps. Est-ce que ce sera l’une des nouveautés d’iOS 11 et macOS 10.13 ? Réponse en juin !

avatar McDO | 

Windows progresse pendant que macOS est à la traîne.
Mis à par l'ergonomie de macOS qui est plus agréable (ça reste subjectif), d'un point de vue technique ils ont des années de retard. Rien que leur système antique de "changement d'OS complet" par an, date d'une autre époque, omg...

avatar alfatech | 

@McDO

"Windows progresse pendant que macOS est à la traine. Mis à par l'érgonomie de macOS qui est plus agréable (ça reste subjectif) d'un point de vue technique ils sont des années de retard. Rien que leur système antique de "changement d'OS complet" par an, date d'une autre époque omg..."

J'en ai lu des conneries sur ce site mais toi t'as fait fort!

avatar McDO | 

@alfatech

J'ai lu des argumentations, mais toi tu fais encore plus fort !

avatar C1rc3@0rc | 

@McDO

Tu parles de la superiorité d'usage de Windows par rapport a MacOS... Ok, c'est ton ressenti, apres on peut rentrer dans un vrai debat avec des arguments et voir ce qu'il en sort. Mais ici tu reagis de maniere inappropriée a un article sans l'avoir lu (pourtant il est court) et ton commentaire est totalement a coté du sujet.

Le commentaire de @alfatech est pitoyable mais releve du meme probleme que le tien.

On va donc se recentrer sur le debat en 3 questions simples: en quoi pour toi Islandwood est superieur UXKit, cela dans le principe et non dans la realisation.

Et consideres tu que l'ancienne et traditionnelle approche de développement croisé de Microsoft soit plus pertinente qu'une convergence d'API construite sur un systeme dont les bases sont unifiées mais qui divergent sur l'UI ?

Autre question relié a cet article: qu'est ce que tu trouve de plus pertinent dans la version Windows de Complete Anatomy ?

Une info quand meme par rapport a ce que tu affirmes: « Rien que leur système antique de "changement d'OS complet" par an, date d'une autre époque, omg...»
Il n'y a pas et jamais eu de changement d'OS complet par an chez Apple. La preuve on retrouve des bugs qui trainent pendant plus de 5 versions, a l'exemple des bugs de Wifi ou de l'instabilité de fonctions comme airdrop... ;)
A l'inverse chez MS on a pris l'habitude de casser beaucoup de choses d'un grand coup (meme si ce n'est pas une fois par an non plus):
Windows XP => Windows VISTA
Windows VISTA => Windows 7 (qui est le successeur de Windows XP, développé avant VISTA)
Windows 7 => Windows 8, on garde le moteur de 7 mais on remplace l'UI par Metro et ses tuiles
WIndows 8 => Windows 10... on saute Windows 9, on casse l'habitude incrementale, Windows devient un service et plus un OS, les mises a jours majeures laissent la place a des patch majeurs...
WIndows RT => succede a rien et n'est suivi de rien (ou peut etre que si...).
Windows devient gratuit... mais non, mais en fait si, quoiqu'en fait non..
...

avatar en ballade | 

@alfatech

Dans le genre en sortir t'es en catégorie champion toi

avatar tekikou | 

Cool.

avatar noooty | 

@McDO

Toa y la sait parlé lo Frances?

avatar McDO | 

@noooty

Toi savoir comprendre la France ? O_o

avatar BeePotato | 

@ McDO : « d'un point de vue technique ils ont des années de retard. Rien que leur système antique de "changement d'OS complet" par an, date d'une autre époque, omg... »

Et mis à part ce fabuleux « omg, leur système de mise à jour annuelle ne porte pas le même nom que le système de mise à jour annuelle de Windows 10 ! », aurais-tu des exemples réels de retard de plusieurs années d’un point de vue technique, stp ?

avatar macfredx | 

@BeePotato

Don't feed the troll... ?

avatar McDO | 

« omg, leur système de mise à jour annuelle ne porte pas le même nom que le système de mise à jour annuelle de Windows 10 ! »

Déjà ça c'est complètement faux. Les mises à jours de Windows 10 sont continues et transparentes toute l'année, comparées à celles de macOS qui sont ponctuées à travers les mois jusqu'à une grosse fracture en septembre (qui met parfois les anciens Mac sur le bas côté...)
Antique cette manière de faire. On est plus en 2005.

Sinon les techo vieillissantes:

- OpenCL d'un autre age
- OpenGL moyen-ageux
- Système de fichier préhistorique (heureusement que le nouveau va arriver (mais quand ?))
- Non optimisé pour le SSD (sur le même support, Windows 10 démarre 5X plus rapidement)
- L'aberration de l'article (même si ça fait pas parti de l'OS à proprement parlé, ça démontre le retard de la Pomme)
- D'autres trucs que j'avais lu dans un article mais flemme de chercher, Google est ton friend

avatar Malouin | 

Bonsoir...
Yes, j'ai bien fait de venir ! C'est la première fois qu'un utilisateur windows peut me confirmer que 15 jours après son achat, un PC sous windows démarre 5 fois plus vite qu'un Mac utilisé depuis plus d'un an ! Non... Vraiment, je ne connais pas un seul utilisateur de Windows qui ne galère pas au démarrage... Même avec le dernier HP INTEL SSD qu'il est trop bien !

avatar en ballade | 

@Malouin

Tu sais de quoi tu parles?

avatar mattoo64 | 

@Malouin

Perso j'utilise les deux sur la même machine et ils bootent à peu près aussi vite l'un que l'autre (après ya le temps d'ouverture de session à prendre en compte aussi, mais ça reste très rapide sur les deux).

Je n'ai pas de raison de trouver l'un ou l'autre totalement has been par rapport à son concurrent (Enfin si on peut dire que macos concurrence Windows arf) perso je trouve macos beaucoup plus élégant / agréable à utiliser, et Windows quand même plus productif et mieux adapté aux grosses entreprises mais bon c'est chacun ses goûts.

En revanche il est indéniable qu'Apple multuplie les initiatives horipilantes ces dernières années, enfermant l'utilisateur dans sa vison monothéiste et sa tyrannie du design (beau c'est mieux qu'utile, apparemment), verrouillant les développeurs et demotivant ses fans de la première heure (dont photographie, montage...).

Et ça fait vraiment mal de les voir s'entêter dans cette vision bornée, ce jusqu'au boutisme normalement réservé au luxe / à la mode, et dont ils s'inspirent tant désormais :(

avatar BeePotato | 

@ McDO : « Déjà ça c'est complètement faux. Les mises à jours de Windows 10 sont continues et transparentes toute l'année, comparées à celles de macOS qui sont ponctuées à travers les mois jusqu'à une grosse fracture en septembre »

Ah ? N'étant pas un grand spécialiste de Windows, j'ai dû mal comprendre ce qu'étaient la mise-à-jour « anniversaire » et la mise-à-jour « des créateurs » (que personne ne vienne m'expliquer que ces noms sont moins tartes que « Sierra » ou « El Capitan » !). Ça ressemble pourtant bien à des mises-à-jour plus grosses que les autres, avec ajout de nouvelles fonctions qui font donc que certains logiciels ne seront pas juste « compatibles avec Windows 10 » mais « compatibles avec Windows 10 des créateurs ou plus récent ». Le tout, sorti pour l'instant au rythme d'une de ces mises-à-jour majeures-mais-qu'on-n'appelle-pas-majeure-parce-que-ça-ferait-préhistorique chaque année.
Mais bon, j'imagine que tout ça n'a en fait rien de commun avec le principe de mise-à-jour de Mac OS depuis quelques années qui repose sur des mises-à-jour mineures gratuites distribuées tout au long de l'année et une mise-à-jour majeure-mais-bien-moins-majeure-qu'avant-en-raison-du-rythme-annuel distribuée gratuitement chaque année. Rien à voir. D'ailleurs, la preuve est simple : est-ce que les mises-à-jour annuelles chez Apple s'appellent « anniversaire » et « des créateurs » ? Non — voilà donc bien une preuve irréfutable que ça n'est pas du tout le même principe. ;-)

« On est plus en 2005. »

Et heureusement pour les utilisateurs de Windows, d'ailleurs ! Parce qu'en 2005, ce n'était pas vraiment la joie pour eux. :-)

Mais pourquoi 2005, au fait ? Est-ce là la dernière année où Microsoft a sorti une mise-à-jour majeure payant de Windows avant de passer au modèle actuel de mise-à-jour continue de Windows 10 ? Fichtre, moi qui croyais pourtant qu'il y avait eu Longh… Vista, Windows 7, Windows 8 et Windows 10 entretemps…
Mais j'imagine qu'écrire « on n'est plus en 2015 » aurait fait tout de suite un peu moins « préhistorique ». :-P

« Sinon les techo vieillissantes:
- OpenCL d'un autre age
- OpenGL moyen-ageux »

Mouais.

« - Système de fichier préhistorique (heureusement que le nouveau va arriver (mais quand ?)) »

Non. Surtout par rapport à Windows.

« - Non optimisé pour le SSD (sur le même support, Windows 10 démarre 5X plus rapidement) »

Ah, oui, le fameux démarrage. C'est tellement important, le démarrage. Surtout sous Windows. ;-)

« - L'aberration de l'article (même si ça fait pas parti de l'OS à proprement parlé, ça démontre le retard de la Pomme) »

Non, en fait c'est surtout un rappel du retard de Microsoft dans un autre domaine (les systèmes pour mobiles), qui l'a conduit à développer cette passerelle pour tenter d'attirer quelques applications malgré ce retard.

« - D'autres trucs que j'avais lu dans un article mais flemme de chercher »

Ah, ouais, c'est pratique, la flemme.

« Google est ton friend »

Non, pas vraiment.

Bon, bref, à part le quasi-abandon d'OpenGL et OpenCL par Apple et une différence de vitesse sur une partie du démarrage (je doute que l'ouverture de session soit comptée là-dedans) sur un SSD, tu n'as absolument rien de concret à présenter pour expliquer à quoi correspondent des fameuses « années de retard d'un point de vue technique ».

avatar LeGrosJeanLou | 

@BeePotato

En parlant du démarrage "rapide" de Windows 10, j'aurais bien quelques point à ajouter puisque j'ai l'immense joie de travailler avec régulièrement.

D'abord le démarrage rapide c'est rien qu'une resucée de la mise en veille prolongée. Et très régulièrement le système est obligé de refaire un démarrage en bonne et due forme beaucoup plus long pour remettre un peu d'ordre.

Ensuite le démarrage rapide c'est bien qu'en t'as pas une mise à jour obligatoire qui s'est lancée avant. Je parle des MàJ horripilantes qui se lancent toutes seules pendant que tu travailles (celles là bénéficient -enfin- d'un moyen de les reporter de 3 jours) mais bien de celles qui se téléchargent en tâche de fond et qui s'installent au démarrage suivant.

Les utilisateurs Windows sont habitués depuis des décennies à ne tenir compte que des situations avantageuses de leur OS et d'en oublier miraculeusement les défauts dans les discussions. Du coup il n'y a pas moyen d'avoir des discussions objectives.

avatar en ballade | 

@BeePotato

"des fameuses « années de retard d'un point de vue technique »."

Ca s appelle drivers optimises pour le gpu Pascal, cuda....ç est pas mal non?

avatar BeePotato | 

@ en ballade : « ç est pas mal non? »

Non.

avatar jean512 | 

J'attends avec impatience un rapprochement des frameworks iOS et macOS.
Le problème de windows bridge c'est qu'il est compatible uniquement avec objective-C ...

avatar Pomme2Poule | 

Je me souviens de cet article sur UXKit, avant de devenir développeur je trouvais ça "intéressant". Maintenant, je suis extrêmement curieux et enthousiaste à cette idée et j'ai vraiment hâte de voir ce qu'Apple nous prépare avec ça (si tant est que le projet est toujours en route).

avatar occam | 

Ce qui explique donc pourquoi, dans la bibliothèque universitaire que je fréquente, je vois de plus en plus souvent Complete Anatomy tourner sur les Surface des étudiants. Surface qui commencent à remplacer en masse les MacBook et iPad qui prévalaient il y a encore deux ou trois ans.

Ayant Complete Anatomy sur Mac comme sur iPad, je dois dire que la version Windows n'a plus rien à leur envier.

Effet de souffle qui s'annonce.

avatar Jean-Jacques Cortes | 

Programmer sur Mac a toujours été une galère. Pour les anciens, Inside Macintosh reste un mauvais souvenir assimilé au côté obscur de la force.

avatar occam | 

@Jean-Jacques Cortes

Je ne partage pas ce point de vue.
Pour moi, la première édition de Inside Macintosh reste un souvenir lumineux, qui m'a décidé à développer pour le Mac.
C'est par la suite que les choses se sont gâtées.

avatar BeePotato | 

@ Jean-Jacques Cortes : « Programmer sur Mac a toujours été une galère. »

Pas du tout d’accord avec cette affirmation.

avatar marc_os | 

@Jean-Jacques Cortes :
Évidemment, si tu prends les Inside Mac originaux d'avant le système 7...
Au contraire, avec la nouvelle série des Inside Mac qui est arrivée vers 1995-96, la foc est devenue exemplaire. Et les exemples ne se contentent pas d'être triviaux comme vien souvent alors avec les MSDN !

avatar eric210766 | 

@Jean-Jacques Cortes
+1

En ce qui concerne le développement pour macOS, je dois reconnaître qu'il devient de plus en plus difficile de s'y retrouver; plus complexe pour faire moins de choses ce qui était l'inverse à l’origine ; les premières versions de 10.2 à 10.6. Je crains que le bon sens disparaisse au profit de l'émerveillement à produire des concepts complexes.

avatar Domsware | 

L'article ne dit pas ce que donne le résultat final et notamment s'il est bien intégré à l'OS final, si le portage est à l'identique ou amoindri, etc.

avatar iGeek07 | 

@Domsware

La capture d'écran sous Windows à l'air bien pixelisée, mais c'est parce que l'écran sur lequel ça a été rendu ne doit pas être très défini (et ça ne colle pas bien avec les icônes fines utilisées pour iOS…). Mais à part ça je serai curieux de voir si ça fonctionne bien effectivement.

avatar BeePotato | 

@ Domsware : « L'article ne dit pas ce que donne le résultat final et notamment s'il est bien intégré à l'OS final »

Pas besoin : c’est pour Windows. ;-)
C’est aussi pour ça que c’est plus facile que de porter vers Mac OS, où on doit faire un peu plus de boulot d’adaptation de l’interface.

avatar gilv57 | 

Juste pour rire

$ uptime
21:06 up 41 days, 9:25, 2 users, load averages: 1,17 1,25 1,31

avatar ZANTAR2054 | 

C'est quand même la honte pour mac OS si un portage iOS => windows est plus facile.

avatar BeePotato | 

@ ZANTAR2054 : « C'est quand même la honte pour mac OS si un portage iOS => windows est plus facile. »

Pas vraiment, non. Parce qu'il s'agit bien moins d'un portage vers Windows que d'une couche d'émulation d'iOS pour Windows. Quelque chose de pas bien fabuleux dans le principe, et qu'on ne veut pas voir sur Mac (en fait, il en existe une version pour Mac OS, mais c'est pour tester les applications iOS lors de leur développement).

D'autre part, cette facilité ne concerne pas toutes les applications iOS : celles écrites en Swift ne peuvent pour l'instant pas en profiter (alors qu'il est tout aussi facile d'en faire une version pour Mac qu'avec les applis iOS écrite en Objective C).

avatar pit-le-rouge | 

il faut reconnaitre que MS fait un gros effort pour les développeurs.
Et depuis la reprise de Xamarin, ils sont occupé à faire de grands pas en direction des développeurs Mac et Ios.
Ils sont en train de faire du C# un language réellement "universel".
Perso, je ne le regrette pas (ne plus trop devoir mettre son nez dans de l'objective C... :-) )

avatar MacTHEgenius | 

Xamarin est loin d'être magique... Pour l'avoir utilisé, les applications sont plus lentes et les éléments graphiques propres à iOS ne sont pas tous disponibles. À mon avis, ce n'est qu'une surcouche dans une application iOS, au même titre que Ionic Cordova.

Le C# ne sera jamais un langage universel, comme n'importe quel langage propriétaire. C'est l'open source qui prime lorsqu'on parle de langage de programmation. Les frameworks multiplateformes ça ne sera jamais aussi puissant que du natif pur.

avatar BeePotato | 

@ MacTHEgenius : Il n’y a aucun langage réellement universel de toute façon (open-source ou non).

Mais certains développeurs s’obstinent malgré tout à chercher cette chimère, accompagnée de celle du framework universel.

avatar MacTHEgenius | 

Je suis d'accord pour dire qu'il n'y a aucun langage open-source, ils ont simplement plus de chance d'être adoptés par une plus grande majorité par contre

avatar BeePotato | 

@ MacTHEgenius : « Je suis d'accord pour dire qu'il n'y a aucun langage open-source »

J’ai bien écrit : « aucun langage universel ». Parce que des langages ouverts (plutôt que « open-source », vu que ce n’est pas un code source qui est ouvert dans ce cas mais la définition du langage), il y en a bel et bien.

Et j’en profite pour préciser ma pensée : aucun langage réellement universel en pratique, c’est-à-dire aucun langage qu’on serait sérieusement tenté d’utiliser partout et pour tout parce qu’il garantirait un confort raisonnable dans tous les cas. Parce que sinon, en théorie, on pourrait bien utiliser le C comme langage universel, mais ce ne serait pas raisonnable.

avatar MacTHEgenius | 

Oups, il y a quelques mots manquants. Je voulais plutôt dire :

« Je suis d'accord pour dire qu'il n'y a aucun langage universel. Avec l'open-source, ils ont simplement plus de chance d'être adoptés par une plus grande majorité par contre »

avatar unixorn | 

Tout votre commentaire est complètement faux, aux éléments graphiques inaccessibles près.

1. Xamarin n'est pas une surcouche, c'est un framework qui recompilé en natif avec le code de l'utilisateur et embarqué avec le reste de l'application. Apple interdit des languages de programmation dynamique sur sa plateforme, c'est donc la seule façon de faire qui puisse passer la certification.

2. C# est un language open-source depuis un bon moment. Au moins une version avait été normalisée et il existe l'implémentation Mono (toolchain + CLR) libre depuis longtemps. Il y a quelques années Microsoft a open-sourcé son nouveau compilateur Roslyn et a démarré une implémentation open-source multiplateforme du CLR : dotnet core.

avatar BeePotato | 

@ unixorn : « 1. Xamarin n'est pas une surcouche, c'est un framework qui recompilé en natif avec le code de l'utilisateur et embarqué avec le reste de l’application. »

… ce qui correspond parfaitement à la définition d’une surcouche. :-)
Il n’y a pas d’implication de dynamisme dans la notion de surcouche, et on peut très bien avoir un framework compilé qui ralentit le fonctionnement par rapport à un usage des frameworks natifs de la plateforme (c’est même presque obligatoirement le cas, puisqu’on empile des appels de fonctions, mais ça n’induit pas forcément un ralentissement notable par l’utilisateur).

Là où MacTHEgenius avait faux sur ce sujet, c’était dans la comparaison avec Ionix Cordova. Mais pour le côté surcouche, il avait raison.

avatar MacTHEgenius | 

Bon bon, je me suis peut-être un peu emporté pour Ionic ;) je ne suis pas fan d'un mini-navigateur comme app (comme utilisateur et comme développeur)

avatar BeePotato | 

@ MacTHEgenius : « je ne suis pas fan d'un mini-navigateur comme app (comme utilisateur et comme développeur) »

Pareil.
Il n’y a aucune approche de développement d’interface multi-plateformes que j’apprécie vraiment, mais celle-ci est pire encore que toutes les autres.

avatar MacTHEgenius | 

Le compilateur C# est open-source, pas le langage en lui-même. Très grosse différence. Mono est .NET mais open-source comme dotnetcore sortie récemment. Cependant, dotnet = .NET, tous les packages Nuget n'y sont pas disponibles

avatar pit-le-rouge | 

Xamarin forms est clairement présenté comme une solution "plus petit dénominateur commun" entre IOS et Android. Mais Xamarin permet aussi de développer des appli tout-à-fait natives ! Y compris pour Mac OS.
Effectivement le C# et .NET sont devenus open-srouce via mono. En rachetant Xamarin, MS a même racheté le gars qui est à l'origine de ce mouvement open-source. Cela leur permet aujourd'hui de sortir de plus en plus d'outils sur Mac et Linux ! Il y quelque mois, la nouvelle version de SQL serveur a été montrée... sur un Mac.
Avant de sortir les éternels clichés du MS qui "fait toujours la même chose et qui abuse de sa position dominante" versus "apple l'innovante", faut aller faire un tour sur les sites de MS..... côté innovations et nouveaux produits, on peut dire que la comparaison avec ce qu'a sorti apple dernièrement n'est pas à l'avantage de cette dernière.... d'autant plus qu'elle a les coffres rempli de bonnes liasses... pas d'excuse donc de ce côté...

avatar en ballade | 

il est ou POcketalex pour faire du MS bashing encore?

avatar LeGrosJeanLou | 

Donc l'idée c'est que Windows a développé un genre de Wine iOS pour Windows. Bien, c'est gentil pour eux. Mais comme Wine sur Linux ça en dit surtout très long sur le manque d'intérêt des développeurs pour Windows Mobile.

Maintenant c'est vrai que c'est assez pénible quand on est amateur de développer pour macOS. Principalement parce qu'on ne fait ni gère absolument pas les mêmes problématiques dans un espace fenêtré et dans un espace plein écran (Scène, Segue tout ça). Et puis les ressources en ligne sont très nombreuses pour le développement iOS mais très chiches pour le développement macOS.

J'avais complètement oublié UXKit. J'espère que ce sera un élément clé de la WWDC 2017.

CONNEXION UTILISATEUR