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

Android Discussion :

Choix du langage et de la plateforme de développement pour une application légère et flexible


Sujet :

Android

  1. #1
    Membre régulier Avatar de AvySamaj
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 118
    Points : 75
    Points
    75
    Par défaut Choix du langage et de la plateforme de développement pour une application légère et flexible
    Bonjour à tous. Je n'ai jamais eu à faire de développement, je sais juste programmer avec un niveau intermédiaire en Python, en Javascript (pour MongoDB) et en Bash(Linux). Disons que je ne sais pas rien non plus.

    Je souhaite faire une application avant tout pour un usage personnel. Cette application a une mission simple: être un carnet de musculation. J'ai déjà téléchargé des applications pour cet usage par le passé. Elles sont si peu flexibles que j'ai fini par me tourner vers le papier: le bon vieux carnet avec un stylo et des cases préremplies mais modifiables très facilement durant la séance au besoin. Le bémol du papier c'est que ça ne fait pas les courbes d'évolution tout seul, c'est long et je ne le fais pas. Il est aussi pénible pour les calculs de poids à l'échauffement qu'il faut toujours calculer à la main auparavant alors qu'avec une application ça sera tellement plus simple car automatisé via des règles. Ça peut paraître pour de la pure flemme mais paraît-il un bon développeur est un bon fainéant.
    Ça donne une idée de l'objectif: être aussi souple que sur du papier et automatique comme une machine.

    Mon problème quant à faire un choix sur le type de langage et la plateforme de développement est que je ne veux pas une application lourde pour mon objectif. Comme je vous le disais je souhaite en faire un usage personnel pour mon loisir: il est évident que les historiques seront stockés dans le téléphone et pas sur un serveur top moumoute que je ne peux pas me payer de toute façon (donc on oublie AWS & co). Et j'ai conscience que ça peut prendre pas mal de place rien que pour cela car comme je le disais plus tôt je veux de la flexibilité donc les séances ne sont pas censées se ressembler toutes et les données non plus dans l'absolu (certaines séances contiendront plus de volume de données[Ko] clairement avec des structures différentes).
    Or pour avoir traîné depuis un moment sur des forums et groupes de développement, j'ai vu pas mal de railleries sur Android Studio qui explose la RAM (autant dire que ça serait utiliser un bazooka pour tuer une mouche à mon niveau), que les frameworks sont bien sympas mais ils mobilisent un tas de dépendances dont on n'a pas forcément besoin alors ça prend de la place pour rien, enfin que Kotlin est bien si on n'a pas d'expérience (ce qui est mon cas) mais dans le même temps je me demande s'il est beaucoup moins optimal que Java.
    Et je ne vous cite pas cela au hasard: Android Studio c'est ce qu'on nous rabâche dans les tutoriels même de débutants alors même que ce n'est forcément le bon choix.
    En somme j'ai beau débuter, je ne veux pas me retrouver à faire la même erreur que les professionnels qui n'optimisent pas leurs codes (pour des questions de coûts de production, du client qui met trop la pression, etc, qu'importe la raison). Je suis mon seul patron dans cette histoire donc je n'ai pas de raison de ne pas optimiser. D'autant plus que c'est ce qui m'agace passablement avec les applications: elles prennent vite trop de place à cause de ce fléau, ralentisse le système... et me pousse à me servir par moi-même.

    Voilà, j'espère que j'ai suffisamment éclairci mes objectifs: être très flexible sans être lourd (pas simple quand on ne s'y connaît pas). Est-ce envisageable avec un niveau débutant ? Quel langage et plateforme de développement devrais-je utiliser à mon niveau d'après vous ? Tout en sachant que j'utilise Ubuntu 18.04.5 LTS et que le téléphone sur lequel je souhaite utiliser l'application sera un Android version 8.0.

  2. #2
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Bonjour,

    Je ne suis ni pour ni contre Android Studio, car c'est le seul IDE que j'utilise. J'ai utilisé Eclipse et NetBeans il y a quelques années. N'étant pas un grand spécialiste du développement, je n'ai pas trouvé que Android Studio soit pire ou meilleur.

    Il est lourd sur le PC et nécessite beaucoup de ressources : un disque SSD et beaucoup de mémoire vive sont nécessaires pour ne pas ramer.

    Pour autant, j'ai développé (en Java mâtiné d'Android) plusieurs applications dont deux qui sont assez complexes. Chacune de ces applications comporte au bas mots une dizaine de milliers de ligne de code :

    L'une traite de simulation d'automatisme avec beaucoup de variables de types différents, fait des calculs assez complexes : elle traduit en équation des schémas graphiques de fonction de transfert et trace tout un tas de courbes de réponses temporelles et fréquentielles. Cette application pèse moins de 1.5 Mo.

    L'autre est une application GPS avec affichage de cartes, de tracés de parcours et waypoints. Cette application gère beaucoup de fichiers et l'affichage des cartes (avec rotation selon le cap) avec des niveaux de zoom différents est assez complexe. Cette application pèse moins de 3 Mo.

    Est-ce qu'on peut appeler cela des applications lourdes ?

    Maintenant, votre application qui doit gérer tout une tas de données assez diverses, les mémoriser, faire des calculs dessus et je suppose tracer des courbes est-elle une application si légère que cela ?

    Voilà, c'est un simple avis.

    Cordialement.

    Pierre.

  3. #3
    Membre régulier Avatar de AvySamaj
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 118
    Points : 75
    Points
    75
    Par défaut
    Tout d'abord, merci d'avoir répondu aussi vite. Ensuite, en effet, je ne dirais pas que 1.5Mo et 3Mo soit lourd. Je ne m'attendais pas à cela d'ailleurs.
    L'application téléchargée la plus légère de mon téléphone pesant 4.39Mo (sans les données, donc taille sur l'appstore) en ne faisant pas grand chose toutefois et que l'interface n'est pas lourde (disons que le design est moche mais efficace), par contre du Doctolib qui ne fait pas grand chose pèse déjà 40.12Mo, de même pour Facebook (sans les données, donc taille sur l'appstore), sur 16Go c'est pas énorme. Ça semble confirmer que ce vous dîtes à propos de l'application en elle-même.

    Partant de votre expérience, ce qui allégerait mon application c'est avant tout la structure des données: format des données, façon de les stocker, façon de les appeler dans l'application, etc, si je comprends bien. Cela dépend-t-il beaucoup du choix du langage ? C'est à dire utiliser Kotlin plutôt que Java peut-il avoir un impact significatif sur ce point ? Ou bien est-ce que ça n'a franchement rien à voir ?

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par AvySamaj Voir le message
    ... Cela dépend-t-il beaucoup du choix du langage ? C'est à dire utiliser Kotlin plutôt que Java peut-il avoir un impact significatif sur ce point ? Ou bien est-ce que ça n'a franchement rien à voir ?
    Je ne connais Kotlin que par ce qu'on en écrit. Ce langage présente des avantages et inconvénients par rapport à Java.

    Pour autant, si vous ne connaissez ni l'un ni l'autre (et que vous êtes jeune), il est peut-être intéressant de passer directement à Kotlin.

    Cordialement.

    Pierre.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Mon problème quant à faire un choix sur le type de langage et la plateforme de développement est que je ne veux pas une application lourde pour mon objectif.
    Il faut donc te diriger vers les solutions les plus native possible à savoir Java ou Kotlin. Tu pourrais faire des application en web , en python ou que sais je encore mais ca implique des dépendances souvent importante et lourdingues.
    Très souvent ce qui fait le poids d'une application c'est les ressources et pas le code en lui même. Une appli basique de quelques écrans c'est quelques Ko voir Mo rien de plus.
    Facebook est énorme à cause de ses dépendances C++ par exemple.

    il est évident que les historiques seront stockés dans le téléphone [..]. Et j'ai conscience que ça peut prendre pas mal de place
    Des données brutes ca risque de se compte en Ko ... donc négligeable. Tu auras 2 choix , soit stocker dans des fichiers , soit dans une base de données (sqlite est intégré par défaut). Choix à faire en fonction du besoin.

    Or pour avoir traîné depuis un moment sur des forums et groupes de développement, j'ai vu pas mal de railleries sur Android Studio qui explose la RAM
    Il n'ya pas réellement d'alternative à Android Studio. C'est aujourd'hui l'outil le plus adapté au développement android. Il est effectivement assez gourmant en ressource , mais ca n'a pas d'impact sur l'application finale qui est générée.

    que les frameworks sont bien sympas mais ils mobilisent un tas de dépendances dont on n'a pas forcément besoin alors ça prend de la place pour rien
    Quand tu commence un projet tu as quelques dépendances qui sont là pour assurer une compatibilité maximale avec tous les appareils et te faciliter la vie. Il impact(légèrement) la taille du binaire . Si c'est un vrai problème (ce dont je doute) il est tout à fait possible de s'en passer , mais ca demande plus de travail. Il y'a 10 ans un projet android était vide , je peux te dire que c'est bien plus facile aujourd'hui de développer car on ne soucie plus de plein de chose qui sont géré par ces dépendances.

    Maintenant pour le choix entre java ou kotlin ... J'ai pas d'avis sur la question les deux sont valables.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier Avatar de AvySamaj
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 118
    Points : 75
    Points
    75
    Par défaut
    Et bien merci à vous deux @ChrPR et @Grunk.

    Visiblement j'avais pas mal d'a priori. Je vais donc me renseigner sur la façon de stocker les données. Merci encore.

  7. #7
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par AvySamaj Voir le message
    ... Je vais donc me renseigner sur la façon de stocker les données. Merci encore.
    J'ai créé une petite application utilisant la base de données SqLite du smartphone. Deux constats :

    • J'ai été incapable de localiser où pouvait bien être la base que j'ai créée,
    • Lorsque j'ai désinstallé l'application, la base a été effacée.

    Donc, méfiance pour une éventuelle sauvegarde.
    Je ne suis pas un spécialiste des bases de données. D'autres pourront mieux répondre que moi.

    Cordialement.

    Pierre.

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par ChPr Voir le message
    J'ai été incapable de localiser où pouvait bien être la base que j'ai créée
    Elle est dans le dossier privée de l'application , donc non accessible depuis un simple explorateur.
    Avec android 4.1 il y'a un outil permettant de consulter/modifier la base de données de l'application : https://developer.android.com/studio/inspect/database
    Avant ca , il y'avais d'autre méthode plus fastidieuse pour la consulter

    Citation Envoyé par ChPr Voir le message
    [*]Lorsque j'ai désinstallé l'application, la base a été effacée.
    Comme toutes données liée à une application. C'est un comportement normal. Ce qui ne l'est pas c'est de laisser des fichiers sur le téléphone après désinstallation.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par grunk Voir le message
    ... Comme toutes données liée à une application. C'est un comportement normal. Ce qui ne l'est pas c'est de laisser des fichiers sur le téléphone après désinstallation.
    Oui, je l'avais vu, je voulais le vérifier. C'est bien la raison pour laquelle il me semble indispensable de pouvoir faire une sauvegarde de la base de données.

    Cordialement.

    Pierre.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/05/2013, 04h14
  2. Réponses: 0
    Dernier message: 10/03/2013, 17h33
  3. Choix d'un langage de programmation pour une application orientée web
    Par Mick DG dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 12/07/2006, 13h45
  4. Pertinence du choix de javascript pour une application
    Par deudtens dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/04/2006, 10h54
  5. Choix d'un langage pour une application de gestion
    Par mister3957 dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 18/02/2006, 04h39

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