menu
  Home  ==>  articles  ==>  delphi  ==>  delphi_xe4_ios   

Delphi XE4 iOs iPhone iPad - John COLIBRI.

  • résumé : le lancement de Delphi Xe4, la version de Delphi permettant le développement d'applications pour iOs (iPhone, iPad) depuis l'IDE Delphi : les compilateurs, le matériel nécessaire, les nouveautés du langage (ARC, Strings), les nouveaux composants FireMonkey, l'IDE, les bases de données. Liens vers les démos et les tutoriels. Android à l'horizon
  • mots clé : Delphi XE4 - iOs - iPhone - iPad - Ib Lite, Ib ToGo - SqLite - FireMonkey - Android
  • développeur Windows, Mac Intosh et iOs (iPhone, iPad)
  • plan :




1 - Lancement de Delphi Xe4 iOs

1.1 - Le lancement officiel

Delphi Xe4 a été officiellement lancé le 23 Avril 2013. Le produit est disponible, ainsi que des versions d'essai, depuis cette date.

Essentiellement il s'agit d'une version Delphi qui en plus des fonctionnalités de Delphi Xe3 permet essentiellement la création d'applications pour iPhone et iPad.

Le nouveau compilateur ARM permet de réaliser les applications depuis l'IDE sous Win32, puis télécharger l'exécutable sur le Mac pour simulation ou sur un mobile iOs (iPhone / iPad), avec possibilités de mise au point depuis l'IDE Delphi sous Win32.



Bien que cette nouvelle version concerne essentiellement des personnes souhaitant développer des produits pour iPhone / iPad, elle ébauche certaines évolutions qui seront aussi utilisées pour Android, et à plus long terme, les versions Delphi pour des applications Win32 / Win64 ou Mac OsX



1.2 - Compilateurs

Lorsque nous lançons une compilation depuis l'IDE Delphi, cet environnement lance le compilateur lui-même, qui pour les applications Win32 normales s'appelle DCC32.EXE (situé dans le répertoire BIN\ de Delphi)



Pour créer les applications iOs, Delphi Xe4 propose de nouveaux compilateurs. Sont donc proposés

  • les compilateurs déjà présents avec Delphi Xe3:
    • DCC32 (Win32)
    • DCC64 (Win 64 bits)
    • DCCOSX (Mac OsX))
  • et pour iOs:
    • DCCIOS32 : compilateur pour générer un exécutable destiné au simulateur iPhone / iPad du Mac
    • DCCIOSARM : compilateur pour générer un exécutable placé sur les mobiles iPhone / iPad
ce que nous pouvons représenter ainsi :

ios_architecture



Les deux nouveaux compilateurs utilisent la technologie LLVM, qui a pour but de compiler en deux étapes

  • du source Delphi vers une représentation intermédiaire (Intermediate Representation)
  • puis IR est compilé vers le code natif du processeur


Le premier compilateur Turbo Pascal était écrit en assembleur et générait de l'assembleur. Ce compilateur a évolué à travers les années en remplaçant peu à peu l'assembleur par des langages de haut niveau. Par exemple, pour Turbo Pascal 5.5, un squelette en Turbo Pascal pilotait des modules en assembleur pour accélérer le traitement de phases coûteuses en temps.



L'utilisation d'une représentation intermédiaire permet essentiellement de faciliter les adaptation du langage. Sont en effet séparés la transformation de constructions syntaxiques Delphi en langage intermédiaire, et la conversion du langage intermédiaire vers les différents processeurs cible.



Nous pouvons donc nous attendre à une meilleurs réactivité pour adapter Delphi à de nouvelles évolutions. Peut être au prix de légers ralentissement de la compilation, qui, vraissemblablement seront absorbés par les progrès des vitesse des processeurs.



Néanmoins le choix de cette technologie de compilation va aussi influencer les primitives du langage. LLVM motive le choix de certaines techniques de gestion mémoire (comptage de référence), de threads, d'exceptions. Et c'est ainsi que les compilateurs mobiles vont utiliser la libération automatique des objets alloués par comptage de référence (ARC = Automatic Reference Counting).



1.3 - Natif ou pas natif ?

Depuis la sortie de Delphi Xe2, une controverse concernant le terme "natif" s'est engagée :
  • les tenants du Natif considèrent une application comme "native" si elle encapsule les composants liés à la librairie de base d'un OS.

    Pour Windows, un bouton est géré par les API Windows (CreateWindow, RegisterClass etc). Delphi a encapsulé les paramètres de chacun des composants de Windows dans une fine couche objet, et cette couche constitue la VCL. Lorsque nous modifions Button1.Left, c'est l'un des 14 paramètres de Record Windows que nous modifions.

    Pour Mac, iOs ou WinRt, Sont donc "natives" les mécaniques qui encapsulent les composants du Mac, de iOs, de WinRt.

  • pour Embarcadero, est considéré "native" une mécanique qui génère du code assembleur, et qui ne passe pas par un interpréteur.

    Sont donc considérés comme "non natifs" les pages Web (utilisation d'un Browser) ou les mécaniques qui utilisent des scripts (les applications Client en JavaScript sur les mobiles, par exemple). En effet nous écrivons un script, qui traité par un interpréteur qui invoque le code binaire du processeur

Il y a un an les noms d'oiseaux ont volé assez bas, avec des accusation de tromperie sur la "nativité" de Delphi.



L'important est de bien comprendre ce que nous utilisons. Dans le cas de Delphi pour Mac OsX et iOs:

  • Delphi est capable de générer du code binaire correspondant au processeur utilisé (Arm dans le cas de iOs). Donc natif affirme Embarcadero
  • les composants graphiques sont pour la plupart dessinés via FireMonkey en utilisant un moteur graphique accéléré (Direct2D etc). Donc pas natif pour les tenants de l'encapsulation de tous les composants de la plateforme cible. Mais l'utilisation d'un processeur graphique n'est tout de même pas la même chose qu'un interprète tel que JavaScript. Donc natif ?
  • attendez, ce n'est pas fini : pour Mac OsX ainsi que pour iOs, Delphi a néanmoins encapsulé les composants visuels pour lesquels cette encapsulation offrait un véritable bénéfice (vitesse, présentation etc). C'est le cas pour des listbox et des calendriers de iOs. Alors donc, demi-natif ?


1.4 - Les Strings

Pour rapprocher les programmes Delphi des programmes utilisés sur iOs, Delphi a aussi fait un pas vers les String avec un indice commençant à zéro. Pour un prenom 'JOE', prenom[0] est le caractère 'J'.

Ce choix est le choix par défaut, mais

  • nous pouvons, en utilisant des options, forcer l'utilisation de la mécanique historique du premier indice égal à 1
  • nous pouvons même, pour nous préparer à partager du code entre Win32 et les autres plateforme, utiliser (à l'aide des options) des chaînes avec un premier indice 0 pour nos applications Win32 ou Win64
Il y a aussi une suppression, pour iOs, de certains types chaîne historique, et l'introduction de chaînes "immutable" (non modifiables).

Nous ne détaillerons pas ici ces nouveautés, qui pourraient affecter plus tard les chaînes pour nos applications Windows.



1.5 - ARC

LLVM a incité les compilateurs mobiles à utiliser ARC (Automatic Reference Counting) pour libérer les objets alloués.

Tout d'abord mentionnons que Delphi utilisait déjà le comptage de référence pour la libération automatique

  • des Strings
  • des tableaux dynamiques
Un variable locale ARRAY OF Integer, par xemple, alloue les cellules lorsque nous appelons SetLength, et ces cellules sont automatiquement libérées lorsque nous quittons la procédure.



ARC généralise simplement cette mécanique à tous les objets Delphi:

  • nous allouons par un CONSTRUCTOR
  • chaque référence vers les données allouées augmente un compte de référence
  • lorsque nous quitons la portés ou affectons NIL à une des variables ou paramètre référençant l'objet, le compte de référence est diminué, et lorsque ce nombre atteint 0, les données sont rendues au système.
En résumé, plus besoin d'appeler Free.

Actuellement ARC n'est en place que pour le code des mobiles. Cette technique pourrait éventuellement être portée pour les applications Windows, mais la gestion du code historique doit d'abord être évaluée avec soin.

Néanmoins certaines primitives ou mécaniques String ou ARC sont ici ou là possible dans le code Win32 (sans en modifier nécessairement le fonctionnement traditionnel), en vue de préparer des migrations ou des partages avec du code utilisable par des applications mobile.



Directives et Attributs

Pour gérer les nouveautés String et ARC Xe4 a introduit

  • de nouvelles options de compilations, parmi lesquelles $ZEROBASEDSTRINGS et $EXTENDEDCOMPATIBILITY
  • de nouveaux attributs ont été introduits [VOLATILE], [WEAK] et (REF]



2 - Développement iOs iPhone iPad

2.1 - Le matériel nécessaire

Pour construire des applications pour iPhone / iPad, il FAUT un PC Mac
  • les applications sont construites par l'IDE Delphi sous Win32
  • elles sont transférées sur le Mac
  • puis du Mac vers un téléphone ou tablette iPhone / iPad
Côté Windows
  • Windows 32 bits
  • avec Delphi Professional avec composants Mobile ou version Delphi supérieure
Côté Mac
  • un un Mac Intel, avec au moins 2 GB RAM
    • un Mac Mini suffit, et est la solution minimale préférée
    • un Macbook Air / Pro peut naturellement aussi être utilisé mais n'est pas obligatoire
    En fait la partie matériel Mac n'a pas besoin de grande resources pour être utilisable par Delphi Xe4
  • pour l'Os Mac: OS X 10.8 (Mountain Lion) or 10.7 (Lion)
  • avec une communication réseau utilisant SSH, VNC or Windows file sharing solution
  • les outils Xcode 4.3 pour iOS 5.1, Xcode 4.5 pour iOS 6 ou Xcode 4.6 pour iOS 6.1. Ces outils sont utilisés pour le sandboxing et le codesigning (signature du code).
  • les outils en mode ligne de commande.
  • les certificats (Apple Developer Account) pour avoir le droit de déployer une application sur le téléphone ou la tablette iOs


En revanche
  • Mac virtuel
    • nous ne pouvons pas utiliser OsX sur une machine virtuelle, sauf si l'Os virtuel tourne sur un appareil Apple
    • OSX Server peut être virtualisé par
        http://pubs.vmware.com/fusion-5/
        index.jsp?topic=%2Fcom.vmware.fusion.help.doc%2F
        GUID-474FC78E-4E77-42B7-A1C6-12C2F378C5B9.html
    • Il est possible de louer du temps de traitement sur un mac virtuel distant : http://www.macincloud.com
  • XCode et ses outils ne fonctionnent pas sur un iPad (par conséquent il FAUT un Mac, pas seulement un iPad)
  • Delphi ne génère PAS de projet xCode (comme il le faisait dans la première implémentation de construction pour iOs fournie avec Delphi Xe2)


2.2 - Installation initiale

L'IDE Delphi Win32 génère le code binaire (x86 pour le simulateur du Mac ou Arm pour le code qui sera placé sur le mobile).

Ce code doit dont être déployé de Windows vers le Mac, et éventuellement vers le mobile ensuite.

Pour cela, Delphi installe sur le Mac un Serveur, et l'IDE Delphi effectue les transferts, packaging, signatures et debugging via ce serveur.

Ce serveur, appelé PAServeur (Platform Assistant) doit être placé sur le Mac connecté au PC avant de pouvoir déployer le code compilé sur Win32.



Il y a donc une première étape de préparation pour pouvoir faire fonctionner une application sur le simulateur du Mac ou sur un mobile.

Cette étape

  • a été démontrée en quelques minutes par Sarina DUPONT pendant la conférence vidéo
  • est décrite par le menu détail dans l'aide
  • il y a même une vidéo de présentation


2.3 - Changements de l'IDE Delphi XE4

  • nouvel expert "Fichier | Nouveau | Application mobile FireMonkey"

    wizard

    permettant de sélectionner

    • une application vide - sans composants prédéfinis
    • une Application 3D - sans composants prédéfinis
    • En-tête / pied
    • En-tête / pied avec navigation
    • Onglets
    • Onglets avec navigation
    • Maître-détail pour téléphone
    • Maître-détail pour tablette

  • possibilité d'utiliser des modèles d'applications mobiles (projets avec des fiches préconfigurées avec des composants)
  • nouvel expert pour créer des fiches mobile FireMonkey
  • nouveau concepteur de fiche iOs

    form_designer

    avec possiblité d'utiliser des périphériques mobiles réels (affichage à la taille réelle)

  • sélection de la plateforme cible (Gestionnaire de projet):

    target_platform

    avec

    • deux cibles (Simulateur iOS sur le Mac ou Périphérique iOS)
    • pour ces plateformes, diverses options (debug, App Stor etc)
  • les profils distants ont été séparés en deux pages
    • Profils de connexion (accès à un PA)
    • SDK définissant une liste de chemins des plate-forme cible
  • options des projets : les icônes des applications mobiles et de bureau FireMonkey peuvent être maintenant définies en utilisant "Projet | Options | Application" (.ICO pour Windows, .ICNS pur Mac OSX, .PNG pour iPhone et iPad)
  • "Options de projet | Informations de version | UiDeviceFamily" : permet de filtrer les applications dans l'App Store (iPhone, iPad ou les deux)
  • "Options de projet | Informations de version | onglet Orientation" : permet de spécifier une ou plusieurs orientation (Portrait, Paysage etc)
  • configuration des Approvisionnement (Provisioning) : possibilité de sélectionner Debug, Ad-Hoc, AppStore
  • "Options | Compilateur": pages spéciales pour les nouveaux compilateurs


2.4 - Nouveaux Composants FireMonkey

  • TCameraComponent permettant de gérer la caméra (appareil photo) avant et arrière et le flash
  • TMagnifierGlass pour des effets de loupe
  • PhoneDialer permettant de lancer des appels, récupérer des informations sur le fournisseur de téléphone ou l'appelant
  • composant natif iOs encapsulé par Firemonkey (molette rotative, Alerts). Des tutoriels présentent le composant tCalendar ou des Pickers (zone de liste déroulante)

    native_controls

  • les composants descendants de TCustomEdit et de TMemo supportent les actions d'édition standard : Couper, Copier, Coller, Sélection avec deux points de sélection, modification de la position du curseur (avec une loupe).
  • divers types de claviers virtuels pour iOs : numérique, alphanumérique, URL etc. Le clavier peut être doté d'une barre d'outils
  • TWebBrowser : navigateur Web pour iOS pour charger et présenter des pages web ou des pages locales. Un tutoriel spécial présente ce composant (aussi la démo de la conférence vidéo)
  • FireMonkey possède à présent des tFrames
  • Touch et Gesture:
    • Appuyer de façon prolongée (Appuyer et maintenir, Appuyer de façon prolongée ou Appuyer) - NOUVEAU, pour iOS uniquement
    • Appuyer deux fois (double tap) - NOUVEAU, pour iOS uniquement
    • Panoramique (pan)
    • Pivoter (rotate)
    • Cliquer avec deux doigts (Two-Finger Tap
    • Zoom et Pincer (Zoom and Pinch)
  • deux composants Liste
    • TListView optimisé pour les listes longues, défilables et liées à des données (en-têtes, tri
    • TListBox pour les listes courtes pas défilables (possibilités de coins arrondis)
    Les deux peuvent avoir des liaisons à des données
  • FMX.MediaLibrary.Actions permet les actions multi média :
    • TTakePhotoFromCameraAction pour prendre des photos et les gérer
    • TTakePhotoFromLibraryAction : récupération de photos de la bibliothèque locale
    • TShowShareSheetAction pour partager les photos ou le texte via des SMS, la messagerie électronique, les réseaux sociaux (Facebook, Twitter, etc.)
    Ces actions sont accessibles depuis l'éditeur de liste d'actions
  • les composants ont le support de style iOS natif (boutons, barres d'outils, zones de liste, scrollbars, contrôles à bascule, ListBox étendues pour iOS)
  • FMX.Sensors pour les détecteurs (sensor):
    • emplacement et localisation par GPS et triangulation
    • détecteur de mouvement pour l'accès à l'accéléromètre sur iOS et Windows
    • Détecteurs d'orientation (gyroscope /compas gyroscopique) sur iOS et Windows
  • la nouvelle unité FMX.TextLayout offre plus de possibilités pour la disposition du texte. Possibilité de texte sur un Canvas par RenderLayout et possibilité de conversion de texte en TPathData
  • les actions de ITextActions permettent le traitement du texte sélectionnée, la manipulation du curseur, le tracé de ligne
  • services de plate-forme : permet d'interroger la plateforme pour tester le support de fonctionnalités
  • centre de notifications permettant à une application en arrière plan de communiquer avec l'utilisateur iOS
  • inversion de Margins et Padding (similaire à CSS et la VCL)
  • la propriété Caret de TEdit, TClearingEdit et TMemo est PUBLISHED
  • HScrollBar et VScrollBar sont maintenant protégées dans TScrollBox
  • éditeur de liste d'actions : affichage de l'arborescence hiérarchique des noms des propriétés Actions.TContainedAction.Category
  • le moteur de défilement TAniCalculations fournit les mêmes fonctionnalités de défilement physique sous toutes les plates-formes supportées par FireMonkey (récupération des fonctionnalités propre à la plateforme, mais possiblités d'émuler des défilements d'autres plateforme).
Et pour le Mac
  • Mode plein écran Mac OS X (icône avec 2 flèches pour basculer en mode plein écran ou en sortir)


2.5 - Bases de Données

Sur un mobile, nous pouvons
  • utiliser une base locale (les données sont sur le mobile, et gérées par notre exécutable qui inclut le code de gestion de ces données)
  • utiliser un client sur le mobile qui communique avec un serveur distant sur un PC (DataSnap etc)


Pour la partie base locale, nous pouvons utiliser
  • SqLite qui est déjà intégré au mobile (rien à installer, télécharger etc). Le code SqLite fait partie de iOs (pas besoin d'incorporer le code dans not applications)
  • des moteurs Interbase
    • Ib Togo :
      • moteur Sql incorporé dans nos applications (embedded), fonctionnalité Sql-92 complète; Cryptage sécurisé (accepté sur l'AppStore Apple)
    • Ib Lite
      • version moins complète de Interbase For Ios (pas de cryptage et pas d'outils en mode ligne de commande)
      • également incorporé au code de notre application
      • peut être intégré dans des applications gratuites ou payantes (= acceptés sur AppStore). Certaines versions de Delphi Xe4 incluent des licences pour Ib Lite
      • Ib Lite n'est disponible que pour les mobiles
      • est supporté par Firedac



Mentionnons que Ib Togo (Interbase), a plusieurs formes
  • pour les applications Windows, une .DLL
  • pour les applications Mac OsX, une DyLib (aka les .DLL du Mac)
  • pour les mobiles iOs, le code est intégré à nos .EXE (pas de .DLL sur iOs)


Pour l'accès aux bases de données, nous pouvons utiliser
  • pour les bases locales
    • Les composants d'accès IBExpress
    • tClientDataSet
  • les composants d'accès FireDAC
    • sont fournis pour iOs
    • ces composants peuvent être téléchargés
      • par les utilisateurs iOs (Rad Studio Pro, Delphi Pro avec l'ajout "Mobile")
      • par les utilisateurs de Windows, Mac, Ios (Rad Studio, Delphi Entreprise ou Ultimate)
      ou achetés comme un produit séparé
    • actuellement il n'existe pas de version d'essai Firedac. Elle sera disponible lorsque Firedac sera mieux intégré à Delphi
    • pour Delphi Xe3 / Delphi Xe4, il a été mentionné que FireDac offrait um meilleur support FireBird 2.5 que dbExpress
    Ed : mentionnons aussi que Marco CANTU a insisté que Firedac était la solution d'avenir (par rapport à Dbx, je suppose)

  • pour les bases distantes
    • les Connecteurs DataSnap (composants sur le mobile dialoguant avec un serveur Datasnap sur un PC distant)
    • et, indépendamment des connecteurs DataSnap, des Clients DataSnap natif pour iOS via HTTP, HTTPS, TCP/IP et REST.


Le tout peut se résumer ainsi

database_and_remote



LiveBindings pour XE4

  • Capacités ListBox améliorées et étendues pour iOS
  • Recherche incorporée ajoutée
  • Support LiveBindings étendu pour ListBox


Nous pouvons aussi créer des applications iOs utilisant Rest, Azure, ainsi que Json

cloud

Notez que HTTP, HTTPS sont aussi possibles (Indy fait partie des composants utilisables pour iOs)



2.6 - RTL Delphi XE4

Pour supporter les nouveautés des compilateurs mobile, la RTL a été adaptée
  • support de chaînes Unicode immuables, optimisées, basées sur zéro. TStringBuilder est recommandé pour modifier la chaîne, et TStringHelper pour les manipulations de chaînes (CompareText, DeQuotedString, Parse, ToBoolean, ToDouble etc)
  • les compilateurs MOBILE supportent les Class Helper, similaire aux Record Helpers pour les types prédéfinis tels que Integer (donc des TIntegerHelper, TByteHelper etc. Ces Helpers ne sont disponibles que sur les mobiles, car ils utilisent ARC pour gérer et libérer les objets auxiliaires générés pour utiliser ces Helpers
  • il est recommandé d'utiliser TCharHelper plutôt que TCharacter
  • pour transférer les données iOs depuis et vers les bibliothèques API externes, il est recommandé d'utiliser TMarshaller ou, à un niveau plus bas TMarshal.


2.7 - Divers

  • pas de notifications Push pour le moment, mais c'est prévu
  • outil de déploiement de nos applications : rien n'est fourni par Embarcadéro
  • gestes pour les applications 3D : pas actuellement, mais prévu
  • gestion des paramètres des applications iOs : David Clegg a un article sur EDN le démontrant
  • composant .RTF (Ed: Wordpad / RichEdit) : pas actuellement, mais sur la roadmap
  • pour les éditions, la version Delphi de FastReports est fournie
  • accès aux primitives non encore intégrée à Delphi : comme pour Windows, les sources Delphi présente comment l'accès aux primitives de iOs sont effectuées, et nous pouvons donc adapter ces techniques pour accéder à qu'autres informations de iOs. Des librairies tierces pourront aussi offrir des solutions
  • même réponse pour voir comment interfacer avec des librairies iOs tierces (par exemple des librairies pour gérer un lecteur de carte de crédit, d'empreinte digitale etc): la lecture des sources FireMonkey et la RTL montrera comment est effectuée l'interface avec les types ObjC
  • support iCloud : prévu


2.8 - Debugger XE4

Le débogueur de l'IDE supporte les application exécutées
  • sur le simulateur iOS du Mac
  • sur le périphérique mobile iOS.
Changements relatifs aux exemples d'applications pour XE4



2.9 - Code

Des "codes snippets" spécifiques à iOs FireMonkey ont été créés et facilitent la compréhension de fonctionnalités de base d'iOS telles que l'accéléromètre, le gyroscope et les notifications.

Ces snippets sont situés dans

  C:\Utilisateurs\Public\Documents publics\RAD Studio\<numéro_delphi>\Samples\iOSCodeSnippets



2.10 - Demos iOs

Une fois Delphi Xe4 installé, ces démos se trouvent en

  C:\Utilisateurs\Public\Documents publics\RAD Studio\<numéro_delphi>\Samples\FireMonkeyMobile



2.11 - Tutoriels

Plusieurs tutoriels existent. Voici ceux mentionnés actuellement (la traduction Française existe, mais les URLs sont encore pires que les URLs anglaises)

Tutoriels pour la définition de l'environnement

  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorials:_Delphi_iOS_Application_Development
      iOS Tutorials: Delphi iOS Application Development
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Set_Up_Your_Development_Environment_on_the_Mac
      Set Up Your Development Environment on the Mac
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Set_Up_Your_Development_Environment_on_Windows_PC
      Set Up Your Development Environment on Windows PC
Snippets de code pour iOs
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Creating_a_FireMonkey_iOS_Application
      Creating a FireMonkey iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_a_Button_Component_with_Different_Styles_in_an_iOS_Application
      Using a Button Component with Different Styles in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_a_Calendar_Component_to_Pick_a_Date_in_an_iOS_Application
      Using a Calendar Component to Pick a Date in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_Combo_Box_Components_to_Pick_Items_from_a_List_in_an_iOS_Application
      Using Combo Box Components to Pick Items from a List in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_the_Web_Browser_Component_in_an_iOS_Application
      Using the Web Browser Component in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_Tab_Components_to_Display_Pages_in_an_iOS_Application
      Using Tab Components to Display Pages in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_ListBox_Components_to_Display_a_Table_View_in_an_iOS_Application
      Using ListBox Components to Display a Table View in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_Layout_to_Adjust_Different_Form_Sizes_or_Orientations_in_an_iOS_Application
      Using Layout to Adjust Different Form Sizes or Orientations in an iOS Application
Utilisation de périphériques iOs
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Taking_and_Sharing_a_Picture_in_an_iOS_Application
      Taking and Sharing a Picture in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_Location_Sensors_on_the_iOS_Device
      Using Location Sensors on the iOS Device
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_the_Notification_Center_on_the_iOS_Device
      Using the Notification Center on the iOS Device
Bases de données
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_InterBase_ToGo_in_an_iOS_Application
      Using InterBase ToGo in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_SQLite_in_an_iOS_Application
      Using SQLite in an iOS Application
  • http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Connecting_to_an_Enterprise_Database_from_an_iOS_Client_Application
      Connecting to an Enterprise Database from an iOS Client Application



3 - Et à part iOs ?

3.1 - Android

Voici les réponses concernant Android
  • le développement suit son cours. La version Android de Delphi Mobile est toujours prévue vers la fin de l'année. La roadmap précédente est donc encore valable.
    Sur Internet, Allen BAUER a mentionné
    • une beta vers Août
    • que l'écriture de la RTL pour Android était en cours actuellement
  • pour les personnes envisageant d'attendre la version avec Android, Embarcadero indique que
    • le marché Apple est plus important (75 % iOs, 25 % Windows Phone, BlackBerry, Android) (Ed : le marché Store / Market je suppose, pas à notre avis le marché des applications sur mesure)
    • même Google et Facebook développent pour iOs d'abord
    • les applications développés pour iOs et et les concepts appris à cette occasion seront réutilisables ("portables") pour Android


3.2 - WinRt, BlackBerry

Windows Mobile 8 : rien actuellement. Sur la roadmap, Win/RT vient après Android

Blackberry : pas prévu actuellement



3.3 - Linux

DataSnap (server) pour Linux: cf la roadmap.



3.4 - RoadMap

La roadmap devrait être mise à jour dans les semaines qui suivent

De plus des enquêtes (surveys) sont prévues pour permettre aux développeurs de donner leur avis ou indiquer leurs souhaits.



3.5 - Prism

Delphi PRISM ne fait plus partie de RAD Studio. RemObjects vend à présent ses produits pour .Net, iOs et Android séparément




4 - Conditions Delphi Xe4

4.1 - Packaging

Pratiquement la majorité des questions posées portaient sur les conditions commerciales: quelles versions sont disponibles, que contiennent-elles, quelles sont les prix compte tenu des versions déjà achetées etc.

Pour résumer les possibilités, voici un tableau présenté pendant le Séminaire vidéo:

prices



Notez que

  • les prix en France sont naturellement différents (environ 1 dollard= 1 euro semble-t-il)
  • il y a aussi, par rapport à ces prix de base des promos

  • RAD Studio XE4 comprend Delphi, C++Builder and HTML5Builder. Prism (programmation en langage "Delphi" pour des applications .Net) ne fait plus partie de Rad Studio.
  • rien n'a été précisé pour sur "Delphi Starter" (la version lite de Delphi)
  • Embarcadero semble aussi soucieux de promouvoir la vente de Rad Studio. D'après certains, Rad Studio représenterait de l'ordre de 20 % des ventes
  • Embarcadero promeut aussi la vente de contrats de maintenance (une sorte d'abonnement payant pour les mises à jour gratuites, et les nouvelles versions). Naturellement un flux régulier de rentrées automatiques est préférable à des commandes décidées au coup par coup en fonction de l'intérêt perçu des nouvelles version. Nous n'avons pas pris connaissance des conditions de ces contrats.



5 - Remarques

5.1 - Le Webminar de 24 Avril

J'ai suivi la conférence vidéo de lancement. La session à laquelle j'ai assisté souffrait d'un décalage entre le son et l'image assez important. Néanmoins l'ensemble était intéressant, tout en apportant moins d'informations nouvelles que la conférence du 21 Février 2013. Il me semble aussi que JT, Marco CANTU et Sarina DUPONT étaient moins à l'aise que lors de la conférence précédente.



Quoi qu'il en soit, les questions posées m'ont permis de préciser certains points ci-dessus.

Cette conférence devrait être disponible en téléchargement dans les jours qui viennent.



5.2 - Sans iOs, sommes nous concernés ?

N'étant pas à ce jour utilisateur d'un iPhone / iPad, pourquoi nous intéressions-nous (= devriez vous peut être vous intéresser) à cette version Delphi ?

Deux raisons majeures

  • certaines des nouveautés vont, pour certaines, progressivement être introduites dans les versions Delphi pour Windows
  • le développement sur Android utilisera beaucoup de composants déjà utilisés pour iOs (composants FireMonkey entre autres, y compris certains composants utilisés pour encapsuler l'accès aux senseurs)


5.3 - Android, ah Android ...

Lorsque le Mac est sorti, j'ai acheté un Lisa (obligatoire pour développer sur Mac) et un Mac, le tout pour plus de 100.000 Francs, pour me rendre compte au bout de quelques mois que ce système n'était pas pour moi: le Mac est destiné à des utilisateurs, avec des logiciels fournis par quelques éditeurs spécialisés. Pas de développement de comptabilités, de gestions de production, de pilotages de bancs de tests, d'utilitaires pour passer d'Excel à Oracle etc. Pas de livres, de magazines, d'articles, de sites de développement. Pas de sociétés avec des équipes programmant du matin au soir, intéressées par des développements, des utilitaires, de la maintenance ou de la migration, des formations, des audits, des transferts technologiques. Donc pas de marché pour ma modeste personne. Le Mac est un appareil admirable, qui m'a été très utile pour caler quelques livres.



Mon opinion sur l'iPhone / iPad est quasiment la même.

Tant que l'iPhone était pratiquement le seul téléphone programmable, ils occupaient le haut de pavé.

Mais voici qu'arrive Android: appareils plus nombreux, moins chers, plus ouverts, tout en source, de nombreux livres, tutoriels, exemples, sites.

Imaginons une société qui a besoin de doter ses équipes de mobiles pour se déplacer dans ses usines, visiter ses clients, faire des relevés de terrain, remplir des formulaires, passer des commandes, relever des stocks etc. Mais que va-t-elle choisir: un mobile Apple ou un mobile Android ?



Face aux questions récurrentes concernant Android, Embarcadero a insisté sur le fait qu'en terme de montant, le chiffre d'affaire des logiciels du market Mac représente 75 %. Donc si votre but est de créer des applications placées sur App Store, la solution Xe4 est très utile, et Delphi Xe4 a été créé pour cela. Et j'espère qu'Embarcadero vendra de nombreuses versions de Delphi Xe4. Ce qui leur permettra de continuer à prospérer.

Mais je persiste à penser que si votre but est de créer une application développée pour votre entreprise ou vos clients directs, Android va laminer Apple. Comme le PC a laminé le Mac sur le marché des développements sur mesure. Bien sûr vous pourrez placer vos applications Delphi Android sur Google Play (aka Android Market) au milieu des 200.000 qui existent déjà. Mais pour ma part, c'est la partie développement d'applications "non-market" qui m'intéresse.

Vous êtes naturellement en droit de penser le contraire, et ces affirmations, pas très originales sans doûte, sont tout à fait personnelles.




6 - Références

Quelques liens:

Bases de données

Prism

Téléchargement

Et quelques articles de notre facture:
  • Première Application Delphi Xe3 FireDAC Embarcadéro offre depuis le 28 Février FireDAC, un ensemble de composants générique d'accès aux données (Multi-Device Data Access Library). Présentation de l'installation, première application utilisant tAdConnection et tAdQuery
  • Webminar Mobile Studio iOs Preview : résumé de la présentation - perspectives marketing des mobiles, démonstration de contrôles natifs, téléchargement et exécution sur Mac et le simulateur, bases de données (SqLite, Interbase, DataSnap), lecteur de flux RSS utilisant Indy et Rest pour DelphiFeeds
  • 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)
  • FireMonkey :
    • les animations FireMonkey : choix de la propriété à animer, vitesse, type d'interpolation entre les valeurs début et fin, répétition - Animation 3D. Que choisir: Vcl ou FireMonkey ?
    • Explorateur de Style FireMonkey : création d'objets tFmxObjects à partir de leur nom de classe, création de leur style défaut, affichage de la hiérarchie de style dans un tTreeView, présentation de chaque élément de style dans un Inspecteur d'Object qui peut être utilisé pour modifier les valeurs des propriétés.
    • Inspecteur d'Objet simple avec FireMonkey : création d'un Inspecteur d'Objet simple, présentant les composants présents sur la Forme et affichant les noms et valeurs de ses propriété, avec modifications possibles des propriétés à l'exécution. Utilisation de la RTTI, version pré et post Delphi 2010
    • Architecture FireMonkey : la hiérarchie tComponent <- tFmxObject <- Fmx.tControl <- tStyledControl. Diagramme de Classe UML avec les principaux composants et explication de l'emplacements des fonctionalités de base (le Canvas, la Souris, le Clavier).

  • nos formations incluent aussi la présentation FireMonkey


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" :
    Nom :
    E-mail :
    Commentaires * :
     

  • 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.
Created: jan-04. Last updated: mar-2020 - 250 articles, 620 .ZIP sources, 3303 figures
Contact : John COLIBRI - Tel: 01.42.83.69.36 / 06.87.88.23.91 - email:jcolibri@jcolibri.com
Copyright © J.Colibri   http://www.jcolibri.com - 2001 - 2020
Retour:  Home  Articles  Formations  Développement Delphi  Livres  Pascalissime  Liens  Download
l'Institut Pascal

John COLIBRI

+ Home
  + articles_avec_sources
    + bases_de_donnees
    + web_internet_sockets
    + services_web_
    + prog_objet_composants
    + office_com_automation
    + colibri_utilities
    + uml_design_patterns
    + graphique
    + delphi
      – delphi_8_vcl_net
      – d8_windows_forms
      – turbo_delphi
      – les_versions_delphi
      – roadmap_delphi_6/7
      – ide_delphi_2006
      – rad_studio_2007
      – roadmap_delphi_4/8
      – raccourcis_clavier
      – delphi_prism
      – roadmap_delphi_8/10
      – demos_sourceforge
      – delphi_xe
      – migration_unicode
      – delphi_xe2
      – delphi_xe2_tour
      – roadmap_2011
      – maj_delphi_xe2_1
      – delphi_xe3_lancement
      – delphi_xe3_et_apres
      – delphi_xe3_infos
      – delphi_xe3_recap
      – roadmap_mobile_stu
      – delphi_xe4_ios
      – delphi_xe4_android
      – roadmap_delphi_2014
      – rachat_embarcadero
      + reunions_delphi
    + outils
    + firemonkey
    + vcl_rtl
    + colibri_helpers
    + colibri_skelettons
    + admin
  + formations
  + developpement_delphi
  + présentations
  + pascalissime
  + livres
  + entre_nous
  – télécharger

contacts
plan_du_site
– chercher :

RSS feed  
Blog