iWork pour iCloud contient de vrais morceaux d'iWork à l'intérieur

Stéphane Moussie |

Fin mars, Pages, Keynote et Numbers ont reçu une mise à jour significative sur Mac, sur iOS, mais aussi sur le web. On ne l'avait pas évoqué, mais la suite iWork pour iCloud, comme elle s'appelle, a évolué.

Pages pour iCloud

Pages, Keynote et Numbers accessibles sur iCloud.com disposent de presque toutes les nouveautés des versions 10.0 sur Mac : nouveaux modèles, partage de dossier iCloud Drive, lettrines, arrière-plan personnalisable… Il manque tout de même quelques nouveautés à ces web apps, comme la possibilité d'imprimer les documents en incluant les commentaires.

Outre ces fonctions supplémentaires, il y a aussi eu du changement sous le capot. Un développeur d'Apple indique sur Twitter qu'iWork pour iCloud inclut maintenant des fonctionnalités extraites de la base de code native d'iWork. Cela veut dire qu'il y a du code C++ et Objective-C dans les versions web de Pages, Numbers et Keynote. C'est le cas par exemple de la fonction permettant de combiner des figures qui a été directement extraite de la version Mac.

Pages pour iCloud

Cela est rendu possible par l'emploi de WebAssembly, un standard initié en 2015 par les éditeurs des principaux navigateurs. WebAssembly permet d'exécuter du code écrit depuis différents langages sur le web avec des performances similaires aux applications natives. WebAssembly est un bytecode, c’est-à-dire un code intermédiaire, précompilé, entre le code source et les instructions-machine.

avatar fousfous | 

Toujours pas écrit en swift?

avatar MrMeteo | 

@fousfous

Parce qu’il est pas encore multiplateformes je suppose !

avatar fousfous | 

@MrMeteo

Bah il me semble que c'est le principe du swift justement d'être multiplateforme. Et de toute façon la version macOS et iOS n'est par définition pas multiplateforme.

avatar dodomu | 

@fousfous

Dans le cas d’un langage de programmation, être multi plateforme signifie pouvoir être compilé (ou interprété) sur n’importe quelle architecture matérielle (processeurs principalement) et n’importe quel système d’exploitation. Dans les fait personne n’est multiplateforme à 100%, mais les plateformes courantes sont en général supportées.
En l’occurrence, un navigateur web est un interpréteur JavaScript, il n’accepte donc que le JavaScript (et le web assembly depuis peu).
SWIFT ne pourra donc pas être exécuté dans un navigateur, à moins d’avoir un navigateur qui le supporte (mais ça ne serait pas standard), ou de d’abord transformer le SWIFT en JavaScript/webAssembly, ou d’interpréter le SWIFT par du code JavaScript/webAssembly (possible, mais très contraignant et pas forcément très performant...)

avatar pim | 

@dodomu

Intéressant, merci !

avatar dodomu | 

@pim

Le plaisir est pour moi 😉

avatar Tibimac | 

@dodomu

Et Swift Server avec swift-nio, Vapor etc... ?
Certes c'est pas le navigateur qui interprète le code et l'exécute mais au final le code écris par les dev est en Swift et c'est ce qui compte. Tout comme ici le code est écris en C++/Objective-C.

avatar dodomu | 

@Tibimac

J’ai du mal à saisir ce que vous voulez dire : si le code est côté serveur, il peut être écrit en n’importe quoi tant qu’il existe un compilateur ou un interprèteur disponible pour le dit langage, le serveur ainsi que sa configuration matérielle et logicielle.
Si le code est destiné au navigateur, ce dernier n’accepte au final que du JavaScript et du webAssembly. Mais il existe un tas de techniques permettant d’y aboutir avec du code d’autres langages : dans le cas présent, du code Objective-C et C++ a été compilé en webAssembly pour pouvoir être exécuté dans le navigateur web.

avatar RedMak | 

@MrMeteo

Je crois pas que c’est la raison, objC ne l’est pas nn plus.

Mais je crois que la raison est qu’ils voulaient pas réécrire le code en Swift.

avatar valcapri | 

@RedMak

Objective-C peut fonctionner partout où GCC ou Clang est fonctionnel donc principalement macOS et Linux. Le gros problème d’Objective-C est que Foundation (la librairie standard d’Objective-C n’est disponible officiellement que sur macOS).

Concernant swift, il est aussi disponible sur macOS et Linux (principalement Ubuntu). Avec la prochaine version de Swift, il devrait le porter sur Windows aussi. Normalement, la version swift de Foundation devrait être disponible sur Windows aussi (elle l’est déjà pour macOS et Ubuntu) et elle est open source.

avatar thefutureismylife | 

Petit à petit macOS iOS padOS et iCloud.com ont beaucoup en commun.
Un écosystème plus simple, interrocompatible et (presque) universel (iCloud.com permet au moins de retrouver son écosystème Apple sur PC (c’est pas extraordinaire) mais c’est pas mal pour le bureau aussi (pendant les pauses bien sûr) ;)

Au passage je ne serai pas contre retrouver d’autres app : Apple Music (même si c’est déjà le cas hors iCloud.com), Apple TV ...

avatar armandgz123 | 

@thefutureismylife

Non, c’est encore bien trop loin d’être universel pour dire que c’est universel 😅

avatar switch (non vérifié) | 

On est à des années lumières d'une suite bureautique multi-plateformes, et même M$ Office n'est pas parfait dans ce domaine…

avatar mat16963 | 

@switch

Office ? MDR

Office sur le web est une vaste blague: inutilisable pour la conception de document l’interface est à peine capable de permettre de consulter un document (pas de table des matière, le document est considéré comme une image donc si on zoom, il est pixelisé,...)... et la version Mac est tellement leeeeeeeeeeeeente et à des années lumière de la version Windows

avatar Tibimac | 

@thefutureismylife

AppleTV et Apple Music sont dispo en version Web.

https://music.apple.com
https://tv.apple.com

avatar GaelW-Mac | 

J’avais pas remarqué que le pathfinder était possible sur les formes. Merci de l’info 👍🏻

avatar iPop | 

@GaelW-Mac

C’est toujours plus intéressant d’utiliser un logiciel de graphisme pour ses graphiques et de les importer. De plus ça allège le document.

avatar pim | 

On peut donc utiliser cette suite sur un Chromebook.

CONNEXION UTILISATEUR