IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Comment créer une application MODULAIRE avec FMX ?


Sujet :

C++Builder

  1. #1
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut Comment créer une application MODULAIRE avec FMX ?
    Bonjour,

    Je souhaite créer une application FMX modulaire. (un unique projet compatible win32, macOs, iOs et Android)

    Pour une application win32 VCL, j'aurais utiliser une dll mais la... comme j'ai une contrainte avec les différents système d'exploitation....

    Quelle solution ai-je pour faire ceci, en FMX ? Quel est le principe la dessus ?

    A terme, j'ai besoin d'appeler des fonctions et des TForm qui se situe dans un autre projet FMX. En effectuant des échanges entre les 2 projets : passage de paramètre / recupération d'un résultat...

    Merci beaucoup.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    Bonjour,

    Pour un code portable, vous devez utiliser les bibliothèques FMX.
    Donc le sigle VCL ne doit plus apparaître dans votre discours.

    Après la compilation, vous devrez livrer les différents logiciels avec les librairies propre à chaque OS.

    Maintenant pour faire communiquer 2 applications entre elles, il existe plusieurs méthodes. En voici qques unes :
    - créer un serveur, et chaque application va venir interroger le serveur.
    - stocker des données dans une base de données communues (ok pour Windows et OS). Un intermédiaire sera nécéssaire pour IOS et Android.
    - echanger des informations par fichier, ce qui présuppose un serveur de fichier accéssible.

    Cordialement

    Carmichael

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 277
    Points : 638
    Points
    638
    Par défaut
    Citation Envoyé par pepito62 Voir le message
    ....
    A terme, j'ai besoin d'appeler des fonctions et des TForm qui se situe dans un autre projet FMX. En effectuant des échanges entre les 2 projets : passage de paramètre / recupération d'un résultat...
    Merci beaucoup.
    Ce qui veut dire que vous voulez avoir deux applications mobiles qui communiquent ? Dans quel contexte ?

  4. #4
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Je veux développer des applications indépendante et autonome en FMX.

    C'est à dire développer x applications/modules indépendant (form, fonction, etc)

    3- Une application peut appeler les différents modules si le client à payer ce module et si celui-ci a été installé.


    Un exemple simple :

    J'ai :
    un module produit (projet c++ builder FMX)
    un module achat (projet c++ builder FMX)
    un module expedition (projet c++ builder FMX)

    Je vends à mes clients les applications en fonction de leur besoin.
    Si le client a payé et a installé le module produit et le module expedition, alors le module expedition pourra utiliser le module produit pour créer des produits mais aussi pour les sélectionner, pour visualiser des produits (tform...) : écrans qui ne sont pas présent dans l'application expedition.

    Avantage :
    les applications sont moins lourde (en mémoire et sur "disque")
    lors d'une évolution ou d'un correctif, il est plus rapide de déployer la modification
    etc.

    les applications chargent les autres applications si nécessaires et appelle des écrans ou des fonctions.



    Les applications = exe, apk, ipa ou pkg

    On peut les lancer directement ou elle peuvent être utilisé par d'autre "application".

    J'espère avoir été clair.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 277
    Points : 638
    Points
    638
    Par défaut
    Citation Envoyé par pepito62 Voir le message
    Je veux développer des applications indépendante et autonome en FMX.
    ....
    D'après ce que je comprends de votre projet vous avez trois solutions :

    - regrouper vos différents modules en une seule application téléchargeable gratuitement et permettre à l'utilisateur d’accéder à chaque fonctionnalité payante via une API de paiement in-app par exp. chez de Google :
    https://developer.android.com/google..._overview.html
    Perso j'en n'a pas encore utilisé cette api, je suppose que cela doit être possible sur Builder/delphi.
    Existe aussi pour l'AppleStore.
    Vous pouvez gérer vos TForm statiquement ou dynamiquement si il y en a beaucoup, mais sauf cas particulier l'encombrement mémoire n'est plus contraignant aujourd'hui. L'essentielle est d'avoir une architecture cohérente et facile à maintenir : cela sera nettement plus simple en regroupant tout sur un même projet.

    - concevoir une version gratuite (produit d'appel) et une (ou des) version(s) payante(s) téléchargeables séparément : c'est en générale la meilleure stratégie et la formule la plus simple à gérer.
    L'application payante reprenant bien sur l'intégralité des fonctionnalités de l'appli gratuite.

    - passer par un développement client/serveur : il y a risque d'usine à gaz

  6. #6
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Vous me proposez des solutions mais tout ceci n'est pas modulaire.

    Je veux avoir x applications.

    Comme dans mon exemple,

    1 application produit
    1 application expédition

    Pas de duplication de code.

    Si le client possède les 2 applications, alors il pourra jongler de façon transparente de l'une à l'autre.

    Depuis l'application expédition : il peut ouvrir la fiche produit qui se trouve dans l'application produit



    Un peu à la mode .dll sous Windows
    Un peu à la mode .so sous Linux

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 277
    Points : 638
    Points
    638
    Par défaut
    Citation Envoyé par pepito62 Voir le message
    Vous me proposez des solutions mais tout ceci n'est pas modulaire.
    Si le client possède les 2 applications, alors il pourra jongler de façon transparente de l'une à l'autre.
    Dans le cas d'une application mobile sur tablette ou smart il ne jonglera pas avec deux applications mais avec une seule qui lui offrira tout ou partie des fonctionnalités en fonction des achats.
    On alors on est dans la cas d'une application client serveur par exemple pour une entreprise qui met à disposition de ses clients une appli sur tablette permettant de communiquer avec une base de données centralisée gérée par un serveur distant qui lui va utiliser différents modules...
    Je crois qu'il faut vous poser la question de l'intérêt réel de la modularité dans le cas de votre projet.

    C'est juste un avis perso, d'autres auront peut-être une autre approche ?

  8. #8
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Citation Envoyé par yvslms Voir le message
    Dans le cas d'une application mobile sur tablette ou smart il ne jonglera pas avec deux applications mais avec une seule qui lui offrira tout ou partie des fonctionnalités en fonction des achats.
    On alors on est dans la cas d'une application client serveur par exemple pour une entreprise qui met à disposition de ses clients une appli sur tablette permettant de communiquer avec une base de données centralisée gérée par un serveur distant qui lui va utiliser différents modules...
    Je crois qu'il faut vous poser la question de l'intérêt réel de la modularité dans le cas de votre projet.

    C'est juste un avis perso, d'autres auront peut-être une autre approche ?
    Je ne demande pas comment je peux faire autrement, je vous demande si la modularité sur mobile ou tablette existe. (Et la meilleur méthode, de façon identique à ios, mac, android, windows) vu que ce sont des applications cross-platform.

    Si oui, comment est l'approche, comment faire.

  9. #9
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut
    Au lieu de compiler les fichiers / fonctions communs dans une dll, il faut simplement importer les fichiers / fonctions communs dans chaque projet...

  10. #10
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut
    Bonjour,
    je ne sais pas si j'ai bien compris ta question.
    J'ai créé une petite application (calculatrice dédié) sous Seattle avec des bibliothèques FMX en multi-platform.
    Lors de la compilation, j'ai les choix: Windows, android ou ios.
    En utilisant les mêmes codes sources, je peux créer *.exe, *.apk, ....

    A+
    Xavier

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    Bonjour,

    La vérité, c'est que personne ne sait comment créer une application FMX modulaire comme le demande pepito62.

    Cordialement

    Carmichael

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/02/2010, 12h00
  2. comment créer une application avec des switchs
    Par abderrahim_05 dans le forum Débuter
    Réponses: 5
    Dernier message: 28/12/2007, 20h07
  3. Réponses: 0
    Dernier message: 11/05/2006, 09h19
  4. Réponses: 0
    Dernier message: 24/03/2006, 09h33
  5. Réponses: 0
    Dernier message: 17/10/2005, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo