iWork pour iCloud contient de vrais morceaux d'iWork à l'intérieur
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, 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.
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.
Toujours pas écrit en swift?
@fousfous
Parce qu’il est pas encore multiplateformes je suppose !
@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.
@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...)
@dodomu
Intéressant, merci !
@pim
Le plaisir est pour moi 😉
@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.
@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.
@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.
@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.
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 ...
@thefutureismylife
Non, c’est encore bien trop loin d’être universel pour dire que c’est universel 😅
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…
@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
@thefutureismylife
AppleTV et Apple Music sont dispo en version Web.
https://music.apple.com
https://tv.apple.com
J’avais pas remarqué que le pathfinder était possible sur les formes. Merci de l’info 👍🏻
@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.
On peut donc utiliser cette suite sur un Chromebook.