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

Python Discussion :

[AVIS - Conseils] Application Desktop crossPlatform en Python (avec BDD local, installeur, et design sympa)


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 76
    Points : 58
    Points
    58
    Par défaut [AVIS - Conseils] Application Desktop crossPlatform en Python (avec BDD local, installeur, et design sympa)
    Salut à tous,

    Je souhaiterais développer une application cross-platorme (Windows, Mac, Linux) au design moderne et utilisant une base de données locale. Le besoin pourrait paraitre simple mais j'aimerais éviter au maximum de changer d'outil en cours de route et parfois les nuances et les détails sont importants. Et n'étant pas un développeur Python de base je me permets de vous solliciter.

    Étant déjà développeur web, j'ai quelques notions qui m'ont permis d'avoir fais une petite sélection. Malgré tout, ne venant pas du monde Python j'aurais apprécié avoir des retours d'avis concernant mes choix et directions techniques, avec quelques petites questions en prime.

    Ainsi, pour le moment, je part sur une solution de la sorte :
    • Python
    • GTK+ (ou PyQT)
    • PyInstaller
    • MySQL (SGBDR)
    • Django
    • MongoDB


    Néanmoins quelques petites questions restent en suspens afin de bien sélectionner mes outils. Pourriez-vous donc me conseillers, donnez votre avis, conseils et retours d'expériences sur le fait de développer une App CrossPlatform en Python ?

    • Le framework Django est de style MVC. Est-ce adéquat d'utiliser une framework web MVC pour concevoir une application desktop ?
    • Python et MySQL on t-il une intégration naturelle entre eux comme PHP - MySQL par exemple ou d'autres moteur de base de données sont conseillés (je souhaite une base SGBDR) ?
    • Python gère t-il aisement le NoSQL ? MangoDB est-ce le choix le plus naturelle et logique pour Python ?
    • Je suis débutant dans l'univers Python mais je souhaiterais malgré tout faire une GUI sympa. Dois-je me tourner plutôt vers GTK ou PyQT ?
    • Concernant la base de données j'ai besoin de faire un livrable (un installeur de mon application) qui puisse fournir le moteur de base de données en même temps en toute transparence pour l'utilisateur ainsi que gérer de manière précise l'installation ou l'update de mon application. Est-ce que PyInstaller peut répondre à ce besoin ?
    • Pensez-vous que l'éco-système Python soit préférable à Java pour développer cette application ? Nombre d'outils, de framework, de tuto à disposition ?

    Le besoin ou la question peut paraitre rédhibitoire et on trouve beaucoup d'infos sur le net mais parfois de simple avis en français peuvent apporter un gain de temps assez conséquent. Surtout sur les petites nuances et détails.

    Alors je remercie chaque développeur Python qui prendrait la peine de m'apporter son avis afin d'établir au mieux la direction technique à prendre pour mon application.

    Merci à tous,

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Django permet de développer des serveur Web, rien à voir avec une application Desktop avec une interface graphique.

    MongoDB n'est pas un SGDB-R. C'est utile pour balayer des tonnes d' enregistrements JSON ou XML (du semi-structurés) à partir du moment ou on dispose d'une infrastructure qui permet un scaleout (l'ajout de capacités de stockage et de serveurs).

    GTK+ ou PyQt sont de bons GUI mais comme tous les bons outils, apprendre à les utiliser prend du temps. Si vous n'avez pas de temps, vous ne pourrez faire que des interfaces "basiques", autant utiliser tkinter (livré avec Python)!

    sqlite vient de base avec Python, c'est assez bien pour une base de donnée mono-utilisateur. Mais peut être que le choix de MySQL est motivé par le besoin d'une base de données "partagée"... auquel cas, votre description n'est pas très claire.

    Pensez-vous que l'éco-système Python soit préférable à Java pour développer cette application ? Nombre d'outils, de framework, de tuto à disposition ?
    Le bonhomme qui sait programmer en Java le fera en Java, celui qui connaît C++ le fera en C++ et celui qui connaît Python le réalisera avec Python.

    L'écosystème est important pour le débutant: où vais-je trouver de l'aide?
    Mais si vous voulez réaliser un projet un tant soit peu ambitieux, il faut être un peu plus armé que le débutant ne serait-ce que pour savoir décomposer les différentes fonctionnalités à réaliser. Car vous ne trouverez pas beaucoup d'aide côté organisation de la construction du projet mais plutôt dans la réalisation de détails d'implémentation.

    - W

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 76
    Points : 58
    Points
    58
    Par défaut
    Django permet de développer des serveur Web, rien à voir avec une application Desktop avec une interface graphique.
    Je pensais que Django serait un équivalent au duo PHP - Symfony par exemple...Avec éventuellement un système d'ORM fourni un équivalent à Doctrine sous Symfony.

    MongoDB n'est pas un SGDB-R. C'est utile pour balayer des tonnes d' enregistrements JSON ou XML (du semi-structurés) à partir du moment ou on dispose d'une infrastructure qui permet un scaleout (l'ajout de capacités de stockage et de serveurs).
    Je pense à coupler 2 systèmes de base de données pour la même application. Mais il s'agit avant tout d'avoir une SGBDR puis éventuellement regarder une petite noSQL base en local.

    GTK+ ou PyQt sont de bons GUI mais comme tous les bons outils, apprendre à les utiliser prend du temps. Si vous n'avez pas de temps, vous ne pourrez faire que des interfaces "basiques", autant utiliser tkinter (livré avec Python)!
    Je vais me tourner vers PyQt ! Et, tantpis après coup, si j'ai fais un mauvais choix je prends le risque

    sqlite vient de base avec Python, c'est assez bien pour une base de donnée mono-utilisateur. Mais peut être que le choix de MySQL est motivé par le besoin d'une base de données "partagée"... auquel cas, votre description n'est pas très claire.
    Je cherche au final à gérer une base de données relationnelle avec un système de relation entre les tables, de droit, de securité et tout ceci gérable par l'intérmédiaire d'un ORM comme Doctrine sous PHP par exemple.

    Mais si vous voulez réaliser un projet un tant soit peu ambitieux, il faut être un peu plus armé que le débutant ne serait-ce que pour savoir décomposer les différentes fonctionnalités à réaliser. Car vous ne trouverez pas beaucoup d'aide côté organisation de la construction du projet mais plutôt dans la réalisation de détails d'implémentation.
    Je suis d'accord mais j'ai besoin moi-même de bien sélectionner mes outils avant de me lancer. Les selectionner et savoir précisement pourquoi ! et ensuite les implémenter.

    En me relisant et en lisant votre réponse je m'aperçois que j'aurais dut directement parler d'ORM. Il semblerait que Django ORM soit tout à fait capable de gérer une base de données et peut-être MySQL.

    A voir maintenant si pyInstaller serait capable de créer un livrable avec tout ceci packagé...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par dorus-one Voir le message
    A voir maintenant si pyInstaller serait capable de créer un livrable avec tout ceci packagé...
    Si vous arrivez à digérer tout çà et réaliser vos projets, les "packager" avec pyinstaller ne devrait pas poser de problème.

    - W

Discussions similaires

  1. Application desktop avec JDeveloper
    Par FranT dans le forum JDeveloper
    Réponses: 2
    Dernier message: 28/02/2012, 21h42
  2. Avis creation application avec Delphi
    Par fetsa054 dans le forum Bases de données
    Réponses: 13
    Dernier message: 06/02/2009, 08h18
  3. Avis creation application avec WinDev
    Par fetsa054 dans le forum WinDev
    Réponses: 6
    Dernier message: 05/02/2009, 16h09
  4. Conseils pour une application desktop
    Par Nebelmann dans le forum Général Java
    Réponses: 7
    Dernier message: 09/12/2008, 23h35
  5. Réponses: 2
    Dernier message: 27/03/2007, 18h22

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