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 :

Conseils direction projet (Web et Android)


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Conseils direction projet (Web et Android)
    Salut tous,

    Je suis novice et aimerais quelques conseils quant au chemin que j'ai choisi pour un projet. En gros je veux créer une interface de monitoring intuitive et ergonomique disponible sur mon smartphone (application Android). Les données sont entrées manuellement par l'utilisateur (moi). Ensuite l'application doit manipuler les données via un algorithme faisant intervenir des probabilités, des mathématiques stochastiques et de la méthode d'optimisation linéaire. Enfin les résultats sont représentés en diagrammes. Je souhaiterais associer l'application à un Website dont l'unique but serait d'afficher les résultats et autoriser les commentaires d'internautes enregistrés.

    Actuellement je suis féru de Matlab. J'ai d'ailleurs déjà réalisé l'algorithme en question dans cet environnement. Je cherche maintenant à élargir mes connaissances pour aboutir dans ce projet. J'avais pensé me lancer dans la prise en main (dans l'ordre) des langages/framework suivants :
    Python > Kivy > Django > html > CSS > Javascript. La démarche vous semble logique ? Avez-vous des conseils précis pour m'y prendre correctement ?

    D'avance merci,

  2. #2
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    Je ne suis pas sur de comprendre ce que vous voulez ? soit vous faites une app web sois vous faites une app tout court. Mais étant donnez que vous avez besoin d'une app web pourquoi vous ajouter du travail avec 2 sous-projets qui doivent communiquer alors qu'un eapp web ferais ça très bien.

    Python > Kivy > Django > html > CSS > Javascript
    ça semble être une très mauvaise idée.
    Django n'est clairement pas le meilleur choix ici, d'autant qu'il demande des bases solides en Python.
    Kivy: si on ne connais pas la POO idem, même s'il est 100x plus "simple" que django.

    Mais il est clair que si vous êtes novice que se soit en web ou Python il vous faudra quelques mois d'apprentissage et de maitrise.

    Ce que je vous conseillerais serais de faire une app web et de découpler back et front (ceci est mon avis personnelle, mais les moteurs de templates ont fait leur temps, l'heure est au découplage)
    Perso en front j'utilise VueJs (Javascript) et en back Tornado (Python)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse rapide. A terme j’aimerais en fait avoir une app web et une app android, oui. Mais je suis conscient qu’il faut passer par de nombreuses étapes d’apprentissage et que ça prend du temps, et c’est là que j’ai besoin d’aide pour investir mon temps comme il faut.

    Merci pour VueJs et Tornado. Est-ce néanmoins possible de faire son frontend en Python ? VueJs me demande d’apprendre JS. C’est pour cette raison que j’avais trouvé Kivy. Quant à Tornado c’est genre Django en plus simple ?

    J’aimerais d’abord me concentrer sur le frontend et uniquement webapp (pas d’Android au début), et viser juste dans mes formations. C’est un projet personnel et j’ai beaucoup de temps à mettre dedans.

  4. #4
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    j’aimerais en fait avoir une app web et une app android
    je ne comprends vraiment pas pourquoi vous vous donnez du mal, qu'est ce qu'une "app android" vous apporterais ? (à part des contraintes ? à la limite vous pouvez faire une app web et juste faire une bête application qui nous fait oublier qu'on utilise une page web)


    nombreuses étapes d’apprentissage
    sans vouloir vous décourager si vous souhaitez utiliser Django dire que ça se se compte en années ne serais pas inexacte.
    C’est pour cette raison que j’avais trouvé Kivy
    si vous voulez faire une page web pour les autres utilisateurs bah pas de kivy, donc vous allez être vite contraint d'utiliser Js, parce que bon, vous pouvez vous en sortir si vous voulez juste faire un form submit, si vous voulez faire un page un peu réactive, avec boutons, popup, ect il faut passer par la case JS, et dans se cas pourquoi s’embêter à bidouiller un bout de code avec JQuery alors que avec Vue c'est aussi simple que de faire 2 + 2.

    frontend en Python
    oui, avec un moteur de template, django fait ça, Tornado aussi, Flask aussi, à vrai dire tous les framework web le font, mais ... je ne vous le conseil pas.
    Quant à Tornado c’est genre Django en plus simple ?
    l'avantage de Tornado c'est que c'est asynchrone et que ça scale énormément, du faite de son coté asynchrone c'est sans doute le meilleur le seul à remplir le rôle de backend/api. Autrement dit parfais pour un découplage frontend backend.

    J’aimerais d’abord me concentrer sur le frontend et uniquement webapp
    C'est ce que je vous conseil, parce qu'une fois ça fait vous allez vous rendre compte que vous pouvez également utiliser une page web à la pace d'une appli android, et encore une fois, si vous voulez faire une appli android faite une page web et utiliser des outils tel que Cordova si vous voulez vraiment que ça ressemble à une application android native

    vueJs est extrêmement simple, et normalement coté front les 99% du js sera des requêtes au backend ou bien quelques opérations de routine pour vérifier que les données sont cohérentes.

    quelques liens:
    Vue, j'l'avais pas vu - Sam et Max (selon moi ce site est une référence française à connaître)
    Un petit tour des frameworks Web Python - Sam et Max
    How to build a REST API in Python with Tornado part 1 part 2
    Tornado Web Server

    ps : ce que j'ai oublié de dire c'est que même si avec un moteur de template vous construisez et envoyez votre page au client, c'est ici que python s'arrête puisque seul javascript peut être exécuté sur le navigateur.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci, et cool les liens! Suivant vos conseils voilà comment je compte m'y prendre, dans l'ordre :
    * Formation moyennement poussée en html et css. J'ai déjà fait cette étape (quoique je dois encore pousser un peu en css).
    * Formation sommaire en Java Script, juste suivant mes besoins précis pour le front-end. C'est pour une appli personnelle donc pas trop d'abus dans le front-end. Question : j'attaque direct avec le framework Vue.js ou je garde pour plus tard ?
    * Formation poussée en Python pour le back-end. Question : est-ce que je travaille directement avec Tornado ou je garde pour après, quand je gère bien python ?

    Merci d'avance !

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Citation Envoyé par Jiujiu28 Voir le message
    Bonjour, [...] Question : j'attaque direct avec le framework Vue.js ou je garde pour plus tard ? [...]
    Cela me fait penser au jeune homme qui a emprunté la Jaguar de son père avant d'avoir passé le permis de conduire. Le résultat a été digne d'une compression de César.

    Je vous conseille de ne pas négliger JS si vous voulez introduire un peu de réactivité dans une page statique, sans parler de la communication avec le serveur (AJAX).

    Débutant en python, j'ai commencé par me noyer dans Django avant d'apprendre à nager avec Flask. Je vous le recommande.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    Bonjour,

    Désolé je suis sur mobile, les exemples en code seront très sommaires.
    À vrai dire Vuejs n'est pas vraiment un framework qui ajoute du javascript en lui même (bien sur il ajoute des choses) mais ce que je veux dire c'est que contrairement à du jquery où vous allez faire quelque chose du genre
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <button id="monbouton" type="button">press</button>
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#monbouton").click(function(){
        // faire un truc au clic
    }
    avec vue vous aurez
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <button type="button" @click="fonction_appui_bouton">press</button>
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    methods: {
        fonction_appui_bouton: function() {
            // faire un truc au clic
        },
        fonction_que_jappelle_sur_un_autre_bouton: ...
    }
    vuejs écoute de nouveaux attributs html, en faite si je devais comparer vuejs avec jquery (bien sur il y a plein d'autres choses ) c'est que vuejs ajoute plein de truc qui facilite la vie mais il faut passer quelques heures sur la doc afin de comprendre la logique, et jquery ajoute plein de fonction pour faire plein de truc, mais il faut connaître la doc par coeur et c'est du bête et méchant.
    Vous aurez remarqué que le corps de la fonction que ce soit avec l'un ou l'autre pourra être la même chose (un appel ajax, un alert, ect...)

    pour ce qui est de la partie serveur n' espérez rien avant d'avoir de solide base, peu importe le framework choisi.
    Flask permet de se faire un peu la mains mais si vous voulez faire quelque chose qui a de la gueule à terme ça sera soit du Django soit du Tornado...ou bien alors écrire vôtre propre framework par dessus Flask pour y ajouter Celery, puis Cron, puis ... (c'est un peu là même chose pour Django). La seule difficulté avec Tornado par rapport à Flask c'est maitriser la POO et l'asynchrone. Mais de toute façon sans ça je vois mal comment vous pourriez faire quelque chose de potable avec Flask, en faite je dirais plutôt si vous êtes capable d'utiliser Flask à son plein potentiel (écrire vos prendres décorateurs, utiliser Celery) alors foncer sur la doc de Tornado en 1journée c'est maîtrisé

    ps : je ne vous recommande vraiment pas Flask
    Ps2 l'avantage de vuejs c'est que c'est simple et rapide mais que si y'a besoin d'allez plus loin vuejs fournis tout ça (vueX, routeur, rendu serveur, création de composants complexes, ect)

    ps3: si celui qui à mis un pouce rouge pourrais expliquer pourquoi ça ne pourra qu'enrichir la conversation

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Bonsoir,

    Désolé, je n'avais pas vu la discussion avant...

    Je vais essayer de rester , j'ai vu pas mal de fausses idées dans ce topic surtout concernant Django, Flask et même Python et surtout prendre le temps de répondre pour des lecteurs qui souhaiteraient un jour se lancer dans ce genre d'application.

    Le problème:

    En gros je veux créer une interface de monitoring intuitive et ergonomique disponible sur mon smartphone
    Ok, pas de soucis, c'est bien l'objectif principal, et je vois pas en quoi cela est inutile de créer une application Android, c'est dans l'air du temps, et toutes applications qui se respectent, amènent à se diriger vers une application mobile, c'est très souvent une finalité indispensable. La demande est donc tout à fait justifier.

    Dans une application il y a deux parties, le frontend et le backend.

    L'objectif n'est pas de savoir quel framework, quel langage je vais utiliser, mais surtout la manière dont ces deux parties vont communiquer. L'API Rest est très généralement le choix qui est fait.

    L'application Android, sera la partie frontend, il n'y a pas d'intelligence ou s'il y en a c'est vraiment peu...
    La partie backend sera un serveur attendant les requêtes de la part du client (utilisateur de l'application Android), on peut utiliser le framework que l'on souhaite, mais Flask comme Django ou un autre, peu importe... Souvent on dit que pour des API Rest, Flask étant léger, il est préféré, mais ce n'est qu'un choix, l'essentiel est que quel qu'il soit, il fasse le café.

    Le frontend:

    Avec Python, Kivy semble juste fait pour cela, mais un autre langage ne gêne pas, peu importe... il n'y a pas de choix mauvais.

    Le backend:

    Avec Flask, Django, ..., la partie intelligence sera géré ici, on peut utiliser le format JSON comme format de requêtes et de réponses et quel que soit le framework, ça se fait bien...

    Je souhaiterais associer l'application à un Website dont l'unique but serait d'afficher les résultats et autoriser les commentaires d'internautes enregistrés.
    Il faudra y ajouter comme très souvent une base de données, plusieurs choix sont possibles, je conseillerai de lire chaque documentations pour faire le choix qui lui semble adapté. Selon les frameworks choisi, les choix de la BDD peuvent varier.

    Python > Kivy > Django > html > CSS > Javascript. La démarche vous semble logique ?
    Oui, il y a d'autres choix, pas forcément meilleurs, ils se valent, il faut prendre le choix où on se sent plus à l'aise, à moins de vouloir apprendre de nouvelles technos.

    Questions:

    • Où sera hébergé le serveur ? (serveur virtuel, physique ?)
    • Où sera partagé le code source ? (Gitlab, Github, ... ?)
    • Quel outil pour l'intégration continue ?
    • Quel outil pour signaler les erreurs quand l'application sera en production ?


    Bref, il faut arrêter de se poser des questions sur la qualité des langages, des frameworks, ... mais avoir une vision sur l'intégralité du concept me semble bien plus importante.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. Conseils pour projet : application web ou non ?
    Par Magcom dans le forum Débuter
    Réponses: 4
    Dernier message: 27/08/2009, 19h24
  2. Conseils pour un bon projet Web ASP.NET
    Par sebastien00 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 14/01/2008, 01h04
  3. Conseils pour projet web
    Par vallica dans le forum Zend Framework
    Réponses: 13
    Dernier message: 02/10/2007, 11h07
  4. Réponses: 5
    Dernier message: 04/08/2007, 17h23
  5. Projet WEB : demande conseil et avis !
    Par xG-Hannibal dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 04/03/2006, 22h03

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