Delphi XE3 Recap - John COLIBRI. |
- résumé : résumé des nouveautés Delphi Xe3 : FireMonkey FM2, Windows 8 Metro et Metropolis, DataBindings, Mac OsX, Mobile Studio, Html5 Builder - Compte rendu de la conférence du 13 Septembre
- mots clé : Delphi XE3 - FireMonkey - Windows 8 Metro - WinRt - LiveTile - Metropolis - DataBindings
- plan :
1 - Delphi Xe3 Tour Une brève synthèse de Delphi Xe3, prenant en compte - les informations disponibles sur le Web
- les présentations de la conférence du 13 Septembre à Paris
- le la doc Wiki à présent disponible
Mentionnons que je n'ai pas encore eu accès à Delphi Xe3. Les liens vers ces informations sont en fin d'article
2 - Delphi Xe3
2.2 - Windows 8 5.1 - Un bref résumé Ceux qui connaissent déjà Windows 8 sauteront sans nul doute cette présentation d'un béotien.
En Septembre 2011, lors d'une conférence "the BUILD", a présenté l'architecture de Windows 8. Le diagramme fondamental est le suivant :
En résumé - Windows 8 a fondamentallement 2 parties:
- la partie "Desktop" utilisant Win32 / .Net / Internet Explorer, qui permet de construire des applications comme nous le faisons actuellement
en Windows Xp, Vista, Windows 7
- la partie "Metro Style" plus orientée mobiles. Cette partie
- utilisera soit un compilateur x86 soit un compilateur Arm (le processeurs de nombreux mobiles)
- est basée sur une nouvelle librairie WinRT (cf le diagramme ci-dessus)
- aura un style nouveau, essentiellement orienté mobile, qui es très particulier compte tenu des spécificités mobile (petit écran, peu de
place pour les menus, pas de souris etc). Donc
- une application à la fois
- affichage plein écran
- utilisation de Tiles (pavés que nous pouvons tapoter) et Live Tiles (Tuiles avec mise à jour sous-jacente des textes ou images, par
exemple pour la météo)
- utilisation de "fat finger" (le toucher plutôt que la souris)
- au niveau stratégique, Windows 8 est donc une tentative Microsoft pour se
positionner sur le marché des mobiles. A ce titre, Windows 8 est accompagné par un "Windows Store" du même style que le "Mac Store" (achat d'applications en ligne qui doivent respecter des règles de conformité dictées par Apple ou Windows)
- cette nouvelle version Windows, et surtout son nouveau style n'a pas reçu un accueil unanime
- une application Desktop où tout l'écran est pris par une seule application semble pour le moins gauche
- certains classent déjà Windows 8 dans la catégorie de Vista ou Windows Phone, plutôt que dans la catégorie Win 95, Win 98, Xp ou Windows 7
- en tant que librairie, WinRt est tour à tour décrit comme une librairie
novatrice (vers un Os orienté objet, un pas au-delà de C#, offrant, par exemple, des interfaces d'application) ou un pas en arrière (utilisation de COM et la Registry)
Delphi Xe3 et Windows 8
- pour la partie Desktop, rien de différent par rapport à Delphi Xe2 (à part les nouveautés Firemonkey FM2 - cf ci-dessous)
- pour la partie style Metro
Notons - le style Metro est clairement pour les mobiles, et la mécanique des Tiles plus appropriée aux portables. Voir une application conçue pour être
multifenétrée sur un écran 22 pouces affichée plein écran, en noir, sans menu ni bordure n'est pas très séduisant. Bien sûr nous pourons alors d'un doigt aussi négligent que blasé faire valser l'affichage vers la droite ou
la gauche. Restera à demander au client ce qu'il en pensera après une journée de ce type de gyrie.
2.1 - FireMonkey FM2 - FM2 : "next generation FireMonkey application platform"
- support pour les Actions et ActionLists
- certaines fonctionnalités sont implémentées dans la RTL et peuvent dont être utilisées par la VCL et FireMonkey.
- des actions spécifiques Firemonkey sont implémentées dans des unités spécifiques à Firemonkey. Toutefois ces actions spécifiques ne peuvent être gérées par l'éditeur d'actions VCL
Les actions sont indépendantes des LiveBindings.
- Anchor pour les contrôles (conserve la distance par rapport aux bords lorsque la taille de la fenêtre est modifiée)
- layout manager :
- grid (cellules de taille fixe)
- flow (comme les mots dans un traitement de texte) et grid. Ci dessous flow aligné à gauche ou centré
- multi média
- audio-vidéo : visualisation ET capture
Pour Windows et OsX.
- composant tMediaPlayerControl
- composants capteurs
- positionnement (Windows et Mac OsX)
- mouvement (Windows)
- styles
- supporte les styles vectoriels (comme XE2) ET les styles bitmap styles "pixelperfect" (comme la VCL), utiles pour les écrans rétine (Mac Book)
- designer de style externe redistribuable (partagé avec la VCL)
- supporte les styles pour les zones non-client (barre de titre de la fenêtre, icônes min, max, fermeture)
- fenêtre transparentes
- style émulant Win8 Metro. Permettra donc d'avoir le style Metro sur
Windows XP (l'aspect, mais les LiveTiles ne fonctionneront pas)
- les styles Retina fonctionnent sur les écrans Retina et non-Retina. L'application détecte la présence ou l'absence d'un écran Rétina et adapte l'affichage
- le changement de style peut être effectué durant l'exécution
- gestes :
- gestes standards, et gestes Windows 8
- le touch est compatible en source avec la Vcl
- comme pour la VCL les gestes sont simulable par la souris (clic, tirer, lâcher), sauf pour le multi-touch
- clavier virtuel
- améliorations 3D
- support DirectX 10 et DirectX 10
- shaders
- texture
- importation des modèles 3D
- migration VCL->FMX : clic droit sur une forme Vcl et "convert"
- produits tiers :
- TMS disponible actuellement
- FastReports dans XE3
- ReportBuilder en cours
Pour les autres points - pas de RichEdit ni de Webbrowser (Ed : nécessiterait des composants natifs)
- vraissemblablement pas encore de lignes d'alignement dans le designer
- le mélange FMX-VCL pas supportée officiellement (elle a été démontrée par des articles sur le web, mais Xe3 ne supporte pas ces techniques)
- contrôles natifs : dans la plateforme mobile (cf ci-dessous)
- pas de tFrame. Prévu pour une version future
- migration DevExpress : certains blogs actuels ne sont pas optimistes sur leur implication
2.3 - Interbase
- nouvelle version InterBase XE3, permettant, entre autre, l'inclusion d'Interbase (embedding - "ToGo") dans des applications Windows 8
- inclusion d'Interbase dans iOS et Android lorsque Mobile Studio sera disponible
2.4 - DataSnap - un pilote SqlLite pour DBX
Notons - pas d'extension fonctionnelles mentionnées
- pas de déploiement serveur sur Linux actuellement
2.5 - LiveBindings - "Visual LiveBindings designer" : établissement rapide et visuelle de connections
- peut organiser des groupes de bindings en utilisant des couches à la manière de Photoshop. Peut afficher ou cacher des parties de l'affichage du designer
des LiveBinding, et sauvegarder le tout sous forme de bitmap
- il existe aussi des Wizard (experts) LiveBindings :
- le pattern Observer utiliser plus fréquemment pour éviter la création de notifications
- les LiveBindings de grilles FireMonkey utilisent des méthodes pendant la conception (pas de tDataSource comme en XE2)
- l'éditeur de colonne de grille des LiveBindings a été amélioré
- les LiveBindings sont stockées dans le .DFM, ainsi que dans un fichier .VLB (stockage des informations concernant le designer LiveBindings)
- tProtoTypeBindSource permet de créer une base prototype sans avoir à créer les tables réelle. Permet aussi de maquetter des données autres que celles provenant de bases de données
(tList <tMyObject> par exemple)
Voici un exemple avec une tColorListBox correspondant à
ou encore
Les données prototype peuvent être remplacées par les données réelles à l'exécution (ou à la conception lorsque la maquette n'est plus utile). Permet le test des données ou de la mise en page
En résumé
- les Livebindings, comme en Xe2, ont surtout été créés pour FireMonkey et les cibles Mac et téléphone, pour lesquels Livebindings est le seul moyen (via des composants de l'IDE) de se connecter aux bases de données. Mais les
Livebindings peuvent aussi être utilisé pour la Vcl et Windows en remplaçant les tDbxxx (tDbEdit, tDbGrid etc)
- le Livebindings Designer évite la frappe d'expression définissant la
propagation des données. Mais ces expressions sont encore visualisables dans l'éditeur d'expressions
2.6 - Mac OsX - support OsX "Lion" et "Mountain Lion"
Styles FireMonkey "Native Mountain Lion" - support des écrans Retina (résolution multipliée par 4)
- compatible App Store Mac (Anders Ohlsson a déjà une application FM2 dans le Mac Store)
- nouvelle page "Entitlement List" pour le "sandboxing OsX", correspondant aux opérations obligatoires pour placer des applications dans le Mac Store
- page permettant le "Provisioning" (certificats développeurs Mac)
- utilisation de Indy
- utilisation de capteurs comme les capteurs de lumière OsX
3 - Mobile Studio - iOs et Android - A venir 3.1 - Mobile Studio
- Mobile Studio est le nom de la partie chargée de construire des applications pour mobiles, iOs et Android (et peut être d'autres plateforme mobile éventuellement)
- est considéré comme un produit séparé de Delphi Xe3
- devra être acheté séparément
- fera partie de "All Access" (un mécanisme Embarcadero pour livrer des applications)
- une fois acheté, s'intégrera et fera partie de Rad Studio Xe3 comme une autre facette du studio (comme l'est c++)
- l'achat (ou la mise à jour) de license Xe3 permet de participer aux test du produit
- serait livré au premier trimestre 2013
- utilise FireMonkey, dbExpress, Interbase, SQLite, DataSnap, Indy
- le nouveau framework FireMonkey mobile
- utililsera les nouvelles fonctionnalités de gestion mémoire de Delphi
- offrira en plus des fonctionnalités spécifiques aux mobiles
- des interfaces utilisateurs iOS et Android natives, ayant l'allure et le comportement des contrôles natifs
- des contrôles custom, qui pourront partager les styles des applications Desktop Xe3
- un framework de services
- pour les capteurs hardware sensors (GPS, accéléromètres, gyroscopes, and caméras)
- pour les services de l'Os (la localisation, la publicité et les payements par application)
Cette librairie est multi plateforme
- le même code source pourra être utilisé pour tous les mobiles
- permet le débogging depuis l'IDE Delphi (ou depuis un simulateur iOs qui tourne sur OSX)
- le language Delphi (= le front-end) comportera des adaptations destinées aux
mobiles, comme la gestion mémoire (comptage de référence automatique)
- le back end de Delphi pour les mobiles (= le compilateur, linker, debugger) seront optimisés pour générer du binaire pour le processeur ARMv7
- les librairies runtime et le framework FireMonkey seront optimisées pour les mobiles (suppression d'éléments Desktop et ajout de fonctionnalités mobiles)
- contrôles natifs ou "look and feel" :
- une démo a est effectuée (en Australie) affichant un dialogue Popup iOs natif
- la réponse officielle est : les contrôles natifs seront créés "là ou cela est raisonnable" (where native controls makes sense)
- ou encore "autant que nous le pourrons, les société tierces ou le développeur en ajoutant d'autres"
- il sera possible de développer pour les mobiles Surface/ARM lorsque le compilateur Armv7 sera terminé.
- les produits mobiles (FireMonkey FM2 pour mobiles et l'environnement de développement pour mobiles)
- comporteront des parties mobiles spécifiques, mais devraient aussi pouvoir utiliser et étendre les applications Xe3 pour Windows et Mac
- permettront donc le développement pour iOs et Android en utilisant
- le même environnement de développement
- le même langage Delphi (ou C++)
- le même framework
- les mêmes sources pour le projet
De plus - rappelons que la partie iOs offerte avec Delphi Xe2 (avec le compilateur Free Pascal) est interrompue (toujours utilisable, mais ne sera pas la base de Mobile Studio)
- l'ensemble repose sur le futur compilateur ArmV7
- Delphi Xe2 générera alors du code binaire Arm (compilé sur Windows) qui sera téléchargé sur le mobile Arm. Le "Platform Assistant" sera utilisé pour télécharger l'application, et éventuellement piloter le debugging distant
(pas à pas sur Windows, exécution sur le mobile)
4 - HTML5 Builder (Rad Studio Xe3, pas Delphi) - Html5 Builder: création d'applications web HTML5 et d'applications mobiles
pour Android et iOs
- est donc bien le successeur de "RadPhp Xe2", avec un IDE relooké et des fonctionnalités étendues
- permet donc de créer des applications
- avec le front end (les langages) HTML5, CSS3 and JavaScript .
- le serveur avec PHP
Il est donc possible de créer des applications client et des applications
mobiles avec HTML5/CSS3/JavaScript sans avoir à créer de serveur PHP. Mais permet aussi de développer des serveur PHP - les types d'application développables sont
- applications Client Mobile
- applications Client Web
- applications Server Mobile
- applications Server Web
Plus - des applications Console
- des applications Server SOAP
- des unités individuelles, comme des pages Client Mobile, des pages Client
des Unités Client, des Thèmes Mobile, des Server Data Module, des Pages Server Mobile, des Pages Server, des Unités Server
- ainsi que des composants, des feuilles de style CSS, des Client REST
DataSnap REST (pour un serveur Datasnap Delphi sur Windows)
- pour Android, HTML5 Builder installe automatiquement le SDK Android et l'émulateur
- les composants HTML5 supportent le canvas, la géolocation, le stockage
local, le multimédia audio/video
- pour produire des applications mobile, utilise PhoneGap (comme le faisait RadPhp
- l'éditeur supporte de code completion pour JavaScript
Remarquons que
- Html5 Builder ne fait pas partie de "Delphi XE3", mais plutôt de "Rad Studio Xe3"
- alors que RadStudio PHP ciblait surtout le développement de serveurs PHP (écriture de code PHP, avec éventuellement des parties Javascript qui
générait des pages Web), Html5 Builder permet en plus de créer des applications client: ces applications sont téléchargées sur le client et sont exécutées sur ce client sans aucun appel à un serveur. Ces applications
client sont écrites en JavaScript, Html5 et Css3
- Html5 Builder s'appuie fortement sur des frameworks open source largement diffusés
- jQuery (un librairie de composants)
- PhoneGap (un framework de packaging des applications pour les mobiles)
- la cible est, ici encore (comme Windows 8 Metro, comme le future mobile studio) le marché des mobiles
5 - Références
Windows 8 and WinRT articles
Embarcadero à propose de Delphi Xe3
Résumé précédents de participants aux conférences World Tour
Ainsi que mes autres articles sur Xe3 (obsolètes): - Lancement Delphi Xe3 Le "Delphi XE3 World
Tour" annonce la conférence de Paris en Septembre, et laisse deviner les principales nouveautés, enrichies par les fuites Web: FireMonkey, Windows 8, Html5 (19 Août 2012)
- Delphi Xe3 perspective : les projets prévus après Xe3 : extensions mobiles de Delphi, plateforme Firemonkey FM2 pour
mobile, plateforme mobile, compilateur natif Arm, développement unifié Delphi pour iOs et Android (21 Août 2012)
- Delphi Xe3 Info la version en anglais de cet article, avec des informations supplémentaires (Windows 8, les nouvelles sur
les binaires WinRT et la tentative de nouvelle license Delphi Pro, annulée le 31 Août)
- Roadmap Mobile Studio Delphi Xe3
: la feuille de route Mobile Studio a été publiée : compilateur ARM natif pour iOs et Android - calendrier prévisionnel (21 Sept 2012)
Mentionnons aussi que depuis Septembre, nous organisons des
formations Delphi Complète, ainsi que des formations de mise à niveau dédiées spécifiquement aux
nouveautés intervenues depuis Delphi 7.
6 - Vocabulaire
Et comme je ne suis pas réellement un groupie des dernières nouveautés qui font la mode (je travaille en Delphi 6 sur XP, et utilise plutôt mon fixe que, fort rarement, mon téléphone portable classique), il va falloir me mettre à la page
concernant les nouveaux termes. Parmi ceux-ci - Windows 8
- "surface pro" : la tablette Microsoft
- "slate" : tablette Samsung
- "Windows 8" - Metro - LiveTiles - les "deux modes de fonctionnement"
- "fat finger"
- LOB "Line of Business"
- SideLoading
- Mac
- Osx "Lion" et OsX "mountain lion"
- "retina screen" : écran du MacBook
- Html5
- mobile
- "Sideloading" (+- transférer) vs "streaming" (pour une musique, par exemple, écouter à la volée, sans savegarder d'abord sur disque)
- "Photoshop Style Layers"
7 - Commentaires
Comme d'habitude:
- nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections
qui en résulteront pourront aider les prochains lecteurs
- tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même
les bienvenus à jcolibri@jcolibri.com.
- plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en
cliquant "envoyer" :
- et si vous avez apprécié cet article, faites connaître notre site,
ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.
8 - L'auteur John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le
conseil (composants, architecture, test) et la
formation. Son site contient des articles
avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et
UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client. |