Bonjour,
je travaille toujours sur mes questionnaires (QCM) Win32 et Androïd. La "mécanique" fonctionne mais évidemment d'un OS à l'autre le GUI est différent.
S'il est facile de différencier le code Win32 du code Android (par exemple, j'appelle une Form modale en Win32 : Form1.Showmodal alors qu'en Androïd cela sera Form1.Show), il est parfois (à mon avis toujours) nécessaire d'utiliser des composants différents (comme des ScaledLayouts en Androïd mais pas nécessaires en Win).
Dans le cas présent, ce sont également des TLabels additionnels pour afficher le temps qui se décrémente. En Win, il n'est affiché que dans la Form principale qui reste visible à l'écran, les questions étant des Forms modales. En Androïd, on ne visualise qu'une seule Form à la faois. Il faut donc "transférer" et afficher le temps d'une fenêtre à l'autre... ce qui suppose un Label de plus dans les Forms qui sont utilisées pour les questions. A chaque fois qu'une de celles-ci est fermée par l'utilisateur, la page principale (sur la photo sans layouts androïd adaptés) se ré-affiche (automatiquement). En clair, le ShowModal n'existe pas en Androîd mais facilite énormément le développement en Win et OS X.
La question est de savoir s'il est préférable de faire 2 projets différents (un Win et un Androïd) en partageant le code (par des includes par exemple) ou s'il est possible de différencier chaque Form dans chaque cible dans le même projet. A mon avis, ce n'est pas le cas (la différenciation dans un même projet). Bref, comment porte-t-on le plus facilement possible le design (l'UI) d'une Form d'un Win32 à un Androïd ?
Sinon, pour information l'utilisation des styles à la mode "delegate Qt" (je ne sais pas comment cela s'appelle en Delphi) est transférable de Win à Androïd mais il faut que j'affiche 2 fois la Form principale au départ (ou que je fasse une rotation du smartphone) pour que les boutons inclus dans les lignes du TreeView soient actifs. Je regarderai cela après.
D'abord je me concentre sur la méthode à employer : Un ou 2 projets sachant qu'une même Form diffère vraiment d'un OS à l'autre non pas par ses codes (i.e. c'est facilement gérable), mais par la nature même des composants nécessaires à son fonctionnement compte tenu des spécificités de l'OS considéré : il en faut plus en Androïd layout, scalelayout, label et button dans mon cas. Alors évidemment, je peux rendre les composants additionnels inactifs mais c'est mal commode quand on développe (nécessairement en Windows). En plus les fenêtres Windows n'ont pas nécessairement une taille adaptée à Androïd et n'ont pas nécessairement le même sens. Enfin, on peut concevoir 2 UIs pour les mobiles suivant l'orientation de l'écran. Le "fluide" a ses limites. Là, il y a une mécanique tout à fait spécifique à construire, déjà testée et opérationnelle.
C'est pourquoi, je penche plutôt pour le développement d'une couche "métier" FMX en Win dans un projetWin... puis la création d'un projet androïd (projetAnd) reprenant la couche métier et des composants "métiers" dans les Forms nécessaires (cela fonctionne bien par copier-coller avec les 2 projets ouverts) et une IHM-GUI typiquement mobile. Est-ce une approche adaptée... Et que propose exactement Delphi ?
Je ne sais pas si ma question est compréhensible. J'ai du mal avec le vocabulaire FireMonkey.
Sinon, le "portage" est sensationnel et vraiment plaisant. "Faire" de l'androîd dans ces conditions est épatant. Il y a certainement des limites mais... pour l'instant j'en suis loin et surtout l'application est fonctionnelle même si son design n'est pas au point. J'attends avec impatience vos conseils.
Merci.
Toujours avec mon vieux Samsung GTi9070P dont j'ai actualisé la version d'Androïd (2.3.6)
Partager