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

Débats sur le développement - Le Best Of Discussion :

Quels sont les meilleurs langages de programmation pour développer une application mobile ?


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    9 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 9 049
    Points : 209 080
    Points
    209 080
    Par défaut Quels sont les meilleurs langages de programmation pour développer une application mobile ?
    Quels sont les meilleurs langages de programmation pour développer une application mobile ?
    Petit tour d'horizon sur les plus populaires

    Le choix du meilleur langage de programmation pour les applications mobiles peut être déroutant, surtout si vous manquez d'informations liées au monde de la programmation mobile. Certains ont de nombreuses préoccupations liées au développement d'applications. Peut-être disposent-ils d'une plateforme Web et se demandent comment faire d'un site Web une application ou quel langage utiliser pour développer une application.

    Le choix du meilleur langage pour le développement d'applications dépend en grande partie du système d'exploitation avec lequel vous allez travailler. Le fait est que différents systèmes d'exploitation prennent en charge différents langages de programmation mobiles. Par exemple, lorsque Swift et Objective C sont utilisés pour les applications iOS, Kotlin et Java sont utilisés pour le système d'exploitation Android. En revanche, React Native est idéal pour les deux. Et si nous passions en revue les langages de programmation parmi les plus populaires chez les développeurs d'applications mobiles qui les considèrent probablement comme étant efficaces ?

    Objective-C

    Objective-C est un langage de programmation orienté objet réflexif. C'est une extension du C ANSI, comme le C++, mais qui se distingue de ce dernier par sa distribution dynamique des messages, son typage faible ou fort, son typage dynamique et son chargement dynamique. Contrairement au C++, il ne permet pas l'héritage multiple mais il existe toutefois des moyens de combiner les avantages de C++ et d'Objective-C.

    Objective-C permet la création rapide d'objet NSString grâce au "@", de la même manière que le C avec les chaînes de caractères "". Les NSString sont encodés en unicode, c'est-à-dire que, contrairement au C, les caractères ne sont pas limités aux codes ASCII. Nous pouvons donc fixer la valeur de la variable surname d'une instance de Personne de cette façon :

    Code Objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // On crée un pointeur vers un objet de la classe Personne, qu'on a d'abord alloué dans l'espace mémoire, et initialisé.
    Personne *exemple = [[Personne alloc] init];
    //On envoie un message au pointeur exemple qui va le rediriger vers l'objet vers lequel il pointe, pour fixer la valeur de la clef surname.
    [exemple setValue:@"Paul" forKey:@"prenom"];

    En Objective-C, tout appel de méthode d'une classe est un passage de message. Pour appeler un message sur un objet, on place entre crochet l'objet puis le message. On peut chaîner les appels très facilement. Ainsi dans l'exemple, methode renvoie un objet et sur cet objet on appelle methode2.

    Code Objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // passage de message
    [objet methode:argument];
    // chaînage de message
    [[objet methode:argument] methode2:argument2];

    Objective-C est un surensemble du langage de programmation C. Il fournit des performances orientées objet et un runtime actif. Objective-C acquiert la syntaxe, les instructions de contrôle de flux et les types primitifs du langage C. Pourtant, il ajoute une syntaxe pour définir les classes et les méthodes. Objective-C ajoute également une prise en charge au niveau du langage.

    Malgré les avantages proposés par ce langage, actuellement, Swift a dépassé Objective-C en popularité et en utilité.

    Swift

    Objective-C est apparu pour la première fois en 1984 à l'époque de NeXT. Le langage s'est basé sur la pile du langage C et était à l'origine utilisé pour créer des applications pour macOS (qui s'appelait alors NeXTSTEP).

    Plus tard en 2011, lorsque le premier iPhone est apparu, Objective-C était le seul choix si vous vouliez développer une application ou un jeu pour iOS. Le problème avec Objective-C est qu'avec le temps, il est devenu assez ancien et pas si simple pour les nouveaux développeurs, par rapport à Kotlin, que les développeurs Android aimaient pour sa syntaxe concise et claire, car il est utilisé beaucoup plus facilement pour écrire des applications qu'avec Java.

    De toute évidence, Apple ne voulait pas que tous les développeurs mobiles passent progressivement du développement pour iOS à Android simplement à cause d'une syntaxe obsolète illisible. C'est ainsi que l'éditeur a commencé à développer un tout nouveau langage de programmation appelé Swift ! Le 2 juin 2014, Apple a présenté Swift au monde entier, consacrant toute la conférence de la WWDC à ce nouveau langage.

    Swift est un langage de programmation objet compilé, multi-paradigmes, ayant pour objectif d'être simple, hautes performances et sûr. Il est développé en open source. Le projet de développement de Swift est géré par Apple qui en est également le principal contributeur mais de nombreux membres de la communauté Swift ainsi que d'autres acteurs tels que Google et IBM participent activement à son développement. Swift est officiellement supporté sur les systèmes d'exploitation Linux Ubuntu, iOS, macOS, watchOS et tvOS. Un support non officiel (géré par la communauté) existe sur d'autres plateformes Linux telles que Debian et Fedora.

    Swift dispose d'une interopérabilité avec le langage C ainsi qu'avec l'Objective-C sur les plateformes d'Apple. Le compilateur de Swift utilise LLVM pour la génération du code machine.

    Syntaxe du langage :

    Les variables et les constantes permettent de stocker des informations. Swift supporte entre autres les types Int, Double, Float, Char, String et Bool.

    Swift infère le type de variable, c'est-à-dire qu'il n'est pas nécessaire de préciser le type d'une variable lors de sa création. Si besoin, il est possible de le préciser explicitement.

    Code Swift : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var entierImplicite = 70
    var doubleImplicite = 70.0
    var floatExplicite: Float = 70 // On précise ici explicitement le type de la variable

    Les constantes sont à utiliser pour toute valeur qui restera inchangée lors du programme.

    Code Swift : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let pi = 3.14159
    let deuxPi = 2 * pi

    Il existe plusieurs types de conditions en Swift, notamment if, switch et if let.

    Code Swift : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    switch nombreDeCôtés
    {
        case 3:
            print("Triangle")
        case 4:
            print("Quadrilatère")
        case 5:
            print("Pentagone")
        case 6:
            print("Hexagone")
        default:
            print("Nom indisponible pour votre figure")
    }

    En Swift, pour des raisons de sureté, les conditions de type switch doivent être exhaustives, c'est-à-dire qu'il est nécessaire de gérer toutes les valeurs que peut prendre la variable concernée. Pour que le switch soit exhaustif il faut ou bien tester explicitement toutes les valeurs possibles de la variable (lorsque cela est possible, typiquement dans le cas des énumérations qui n'ont qu'un nombre réduit de valeurs possibles), ou bien en ajoutant default dont les instructions seront exécutées si aucun des case précédents ne correspondait à la valeur de la variable testée.

    Il est également possible de tester plusieurs résultats à la fois :

    Code Swift : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    switch lettre
    {
        case "a","e","i","o","u","y":
            print("Voyelle")
        case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z":
            print("Consonne")
        default:
            print("Votre caractère n'est pas listé")
    }

    Contrairement au langage C, il n'est pas nécessaire d'ajouter l'instruction break après chaque cas d'un switch : celle-ci est présente implicitement. Si l'on souhaite reproduire explicitement le comportement "fall trough" de C, on peut utiliser l'instruction falltrough.

    Par ailleurs, le switch de Swift est une structure de contrôle de première classe et non pas l'équivalent d'un goto comme en C, ce qui signifie que chaque case dispose d'un contexte qui lui est propre.

    Nom : swift.png
Affichages : 171001
Taille : 49,0 Ko

    Kotlin

    Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage statique qui permet de compiler pour la machine virtuelle Java et JavaScript. Il est développé par une équipe de programmeurs chez JetBrains, l'éditeur d'IntelliJ IDEA, l'environnement de développement intégré pour Java et sur lequel est basé Android Studio, l’EDI officiel pour développer les applications Android.

    Le support officiel de Kotlin pour le développement Android a été annoncé à la conférence Google I/O 2017. Pour l’équipe Android de Google, cette décision de supporter Kotlin s’expliquait aisément. D’abord le support EDI pour Kotlin : Android Studio est basé sur IntelliJ IDEA de JetBrains et l'équipe JetBrains travaille depuis des années pour s'assurer que Kotlin fonctionne parfaitement avec IntelliJ IDEA. Google héritera donc de tout leur travail pour supporter Kotlin dans Android Studio. Mais au-delà de cet aspect, Kotlin présente bien d’autres avantages. D’après Google, « Kotlin est [un langage] expressif, concis, extensible, puissant et agréable à lire et écrire », et « il a des fonctionnalités de sécurité intéressantes en termes de nullabilité et d'immutabilité » qui s'alignent avec ses investissements pour rendre les applications sûres et performantes par défaut.

    Le plus important d’après Google, c’est que Kotlin est interopérable avec les langages officiels pour le développement Android (Java, C++) et le runtime Android. La firme a expliqué par exemple que Kotlin fonctionne avec le langage Java de manière transparente, de sorte qu'il est facile pour les développeurs qui aiment le langage Java de continuer à l'utiliser, mais aussi d'ajouter progressivement du code Kotlin et de tirer parti des bibliothèques Kotlin. En outre, l'adoption de Kotlin sur Android augmentait régulièrement au fil des années, et d’après Google, avec un enthousiasme croissant parmi les développeurs ; une des raisons pour lesquelles la société a voulu accueillir Kotlin en tant que langage officiel sur Android pour assurer à ces derniers un meilleur support de Kotlin. Ce qui a été fait à partir d'Android Studio 3.0.

    Code Kotlin : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Greeter(val name: String) {
        fun greet() {
            println("Hello, $name")
        }
    }
     
    fun main(args: Array<String>) {
        Greeter(args[0]).greet()
    }

    Code Kotlin : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    fun main(args: Array<String>) {
        cases("Hello")
        cases(1)
        cases(3)
        cases(System.currentTimeMillis())
        cases(MyClass())
        cases("hello")
    }
     
    fun cases(obj: Any) {
        when (obj) {
            1 -> println("One")
            in 2..4 -> println("Between two and four")
            "Hello" -> println("Greeting")
            is Long -> println("Long")
            !is String -> println("Not a string")
            else -> println("Unknown")
        }
    }
     
    class MyClass() {
    }

    Nom : kotlin.png
Affichages : 42942
Taille : 14,8 Ko

    Java

    Java est un langage de programmation populaire notamment pour les développements sur le système d'exploitation Android. Il a été initialement créé par Sun Microsystems, mais appartient actuellement à Oracle. Développé longtemps après C et C++, Java combine de nombreuses fonctionnalités puissantes de ces langages tout en corrigeant certains de leurs inconvénients. Les fonctionnalités les plus importantes de Java sont:
    • Facile à apprendre et à comprendre
    • Conçu pour être indépendant de la plateforme et sécurisé grâce aux machines virtuelles
    • Il est orienté objet

    Le système d'exploitation Android repose fortement sur les principes fondamentaux de Java. Le SDK Android intègre de nombreuses bibliothèques Java standard, notamment des bibliothèques de structure de données, des bibliothèques graphiques, des bibliothèques mathématiques, des bibliothèques de mise en réseau et tout ce que vous pouvez souhaiter. Les bibliothèques Android spéciales qui aident à développer de superbes applications Android sont également disponibles.

    Voici un exemple d’un programme Hello world typique écrit en Java :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     public class HelloWorld {
         public static void main(String[] args) {
             System.out.println("Hello world!");
         }
     }

    React Native (JavaScript)

    Si les langues mentionnées ci-dessus sont conçues pour créer des applications pour les systèmes d'exploitation iOS ou Android, React Native est l'un des framework utilisé pour le développement d'applications mobiles pour les deux systèmes d'exploitation. En clair, il est utilisé pour créer une application multiplateforme qui fonctionne sur différentes plateformes, au lieu de créer des applications distinctes pour chaque système.

    Pour plusieurs, le code JavaScript, implémenté dans le framework React Native, est identifié comme l'une des solutions multiplateformes de prédilection pour créer des applications Android et iOS. Grâce à React Native, il est possible de travailler sur deux OS différents en utilisant une seule plateforme.

    Le framework React Native est développé par Facebook. Il s'agit d'un framework open source qui permet de créer des applications mobiles natives à l'aide du langage de programmation JavaScript. En utilisant React Native, on peut développer des applications similaires à ce qu'elles font tout en utilisant Kotlin ou Java pour Android et Swift ou Objective-C pour iOS. Vous trouverez ci-dessous les principales fonctionnalités avantageuses de React Native!
    • Il offre des performances optimales. React Native est connecté aux composants natifs des deux systèmes d'exploitation et génère librement du code pour les API natives.
    • La réutilisabilité des codes est un autre avantage. Il est possible de réutiliser des codes et des composants pré-développés, les développeurs n'ont donc pas besoin d'utiliser des codes indépendants pour les deux systèmes d'exploitation.
    • React Native est accessible à une large communauté de développeurs. Comme il s'agit d'un langage open source, il est facile de contribuer à l'évolution du framework et également de tirer pleinement parti de la technologie


    Et vous ?

    Développez-vous des applications mobile ? Sur quelle plateforme ?
    Quel serait le langage de programmation que vous proposeriez pour un développement d'application mobile ?
    Êtes-vous plus porté vers le développement d'applications mobiles ou le développement d'applications web ? Pourquoi ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 034
    Points : 5 476
    Points
    5 476
    Par défaut
    Une application mobile ca peut être également un jeu, et du coup tous les langages cités ne sont pas les plus pertinents.
    C# permet à la fois grâce à Unity de faire du jeu, et pour de l'appli "gestion" avec Xamarin de faire de l'IOS et d' l'Android.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Points : 659
    Points
    659
    Par défaut
    Développez-vous des applications mobile ? Sur quelle plateforme ?
    Oui, principalement sur android.

    Quel serait le langage de programmation que vous proposeriez pour un développement d'application mobile ?
    J'utilise principalement Ionic (angular/cordova) pour l'hybride et java si besoin d'une appli native android (besoin de plus de puissance, rendus 3D etc..).

    Êtes-vous plus porté vers le développement d'applications mobiles ou le développement d'applications web ? Pourquoi ?
    Plutôt web, ça couvre plus de cas d'usage tout en permettant d'inclure une partie mobile si nécessaire avec des webview.
    Et puis je trouve qu'internet est devenus suffisamment présent pour pouvoir se passer de clients lourds. Laisser la charge de travail au serveur et n'utiliser que l'interface web pour gérer l'interaction et la présentation me semble plus dans l'air du temps.

    Si je suis amené à développer spécifiquement sur mobile c'est soit pour des cas précis de communication avec de l'IoT par exemple, ou alors que l'application n'est destinée qu'a un usage sur mobile nécessitant de la géolocalisation etc...

    Tout dépends des projets.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Points : 29
    Points
    29
    Par défaut Dart ?
    Déçu de pas voir Dart & Flutter dans cet article quand il est un langage/framework mobile qui connait une forte croissance en terme de popularité.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2016
    Messages : 129
    Points : 443
    Points
    443
    Par défaut
    Développez-vous des applications mobile ? Sur quelle plateforme ?
    Oui, je me suis mis tout en douceur au développement Android, sur mon temps libre.

    Quel serait le langage de programmation que vous proposeriez pour un développement d'application mobile ?
    Comme pour un collègue plus haut, j'ai fait le choix du C# pour sa souplesse ; je peux développer un jeu avec Unity3D, ou une application avec Xamarin.

    Êtes-vous plus porté vers le développement d'applications mobiles ou le développement d'applications web ? Pourquoi ?
    Je suis définitivement plus porté vers le développement d'applications mobiles. C'est uniquement une affaire de gout ; pour ma part, tant que le web impliquera l'utilisation de la stack HTML/CSS/Javascript, je vais avoir du mal à prendre du plaisir là dedans (notamment le CSS, c'est un langage tout droit sorti des enfers ce truc).

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Développez-vous des applications mobile ? Sur quelle plateforme ?
    Oui, en Xamarin. Essentiellement pour Android pour le moment mais peut être un jour pour iOS je suppose, tout dépend vers quels types de smartphone l'entreprise s'oriente plus tard.

    Quel serait le langage de programmation que vous proposeriez pour un développement d'application mobile ?
    Tout dépend, si le développeur à une plateforme de prédilection et ne compte pas faire du CrossPlateform, autant alors aller vers les langages natifs sinon, Xamarin.

    Êtes-vous plus porté vers le développement d'applications mobiles ou le développement d'applications web ? Pourquoi ?
    Je fais les deux à cause du boulot mais si j'avais le choix je pense que j'irais de plus en plus vers du mobile, plus besoin de CSS ou plus ces différences entre navigateurs etc... et la mobilité c'est l'avenir

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Points : 20 246
    Points
    20 246
    Par défaut
    Une fois de plus il n'ya pas de "meilleur" langage. Il y'a des situations auxquels on répond avec l'outil le plus adapté pour être le plus efficace.

    Une application simple , multi plateforme ? Du js avec React ou du C# avec xamarin sont surement les plus rentable.
    Des calculs importants et des besoins de perf ? On ira surement vers un mix de C++ et du langage natif du système.

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 671
    Points : 3 681
    Points
    3 681
    Billets dans le blog
    2
    Par défaut
    Je plussoie la remarque de grunk "Une fois de plus il n'ya pas de "meilleur" langage.".

    Par contre, pour le développement multi plateforme pas de JS pour moi (laissons le à ce pourquoi il est fait : le web). Et par rapport à Xamarin, pas de doute je préfère Delphi

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2019
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2019
    Messages : 485
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par gbegreg Voir le message
    Je plussoie la remarque de grunk "Une fois de plus il n'ya pas de "meilleur" langage.".

    Par contre, pour le développement multi plateforme pas de JS pour moi (laissons le à ce pourquoi il est fait : le web). Et par rapport à Xamarin, pas de doute je préfère Delphi
    Bah si ton appli multiplateforme est aussi sur pc est est au final une webapp...

  10. #10
    tlt
    tlt est déconnecté
    Membre averti Avatar de tlt
    Homme Profil pro
    Programmeur
    Inscrit en
    Juillet 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Programmeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 202
    Points : 412
    Points
    412
    Par défaut
    Développez-vous des applications mobile ? Sur quelle plateforme ?
    Il n'y a pas de meilleur langage je pense. Mais oui. je suis principalement sur du C# avec Unity pour Android et iOS. Pour les app pure, c'est parfois soit en C# avec Xamarin , soit en C++ sous C++ builder, et dans de rare cas en Java ou Kotlin. Ces derniers temps, je m'essaie à Dart avec Flutter.
    Quel serait le langage de programmation que vous proposeriez pour un développement d'application mobile ?
    Je proposerai C# ou bien Java/Kotlin

  11. #11
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 671
    Points : 3 681
    Points
    3 681
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par L33tige Voir le message
    Bah si ton appli multiplateforme est aussi sur pc est est au final une webapp...
    Bah non et pour diverses raisons : perfs, ergonomie, faisabilité...

    Par exemple, pour un client dont les employés partaient pour la journée sur des chantiers (travaux ou études) avec un appareil photo numérique, ordi portable et GPS,j'ai fait une appli (IOS à l'origine) qui permettait de remplacer les 3 appareils par des iPad. La société a par la suite changer sa flotte de tablettes par des tablettes Android. C'était dans une région montagneuse donc mal couverte par le réseau 4G. Il fallait aussi que la tablette tienne toute la journée malgré une utilisation assez poussée. La synchronisation des informations recueillies par les utilisateurs devait se faire automatiquement ensuite dès qu'une connexion réseau était possible. Une application web n'aurait pas pu répondre à cela.

    De manière générale, les applications Web n'ont pas tué les applis : il n'y a qu'à voir le succès des différents stores, les frameworks de dev Web se mettent aussi au natif (je trouve cela aberrant : cela produit des applications lourdes, gourmandes, souvent peu performantes, il faut toute une pile d'outils pour parvenir à quelque chose) et je ne parle pas des différences de comportement qui existent encore entre navigateurs dans le cas des applis web...

  12. #12
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Swift se limite principalement au monde Iphone, mac.

    Tandis que Flutter voit plus large.

    GO Flutter... (suis en train de l'apprendre)

  13. #13
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Citation Envoyé par gbegreg Voir le message
    De manière générale, les applications Web n'ont pas tué les applis : il n'y a qu'à voir le succès des différents stores, les frameworks de dev Web se mettent aussi au natif (je trouve cela aberrant : cela produit des applications lourdes, gourmandes, souvent peu performantes, il faut toute une pile d'outils pour parvenir à quelque chose) et je ne parle pas des différences de comportement qui existent encore entre navigateurs dans le cas des applis web...
    Non le web n'a pas disparu lol.
    Ni l'agriculture.

    Ils se sont transformés.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2019
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2019
    Messages : 485
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par gbegreg Voir le message
    Bah non et pour diverses raisons : perfs, ergonomie, faisabilité...

    Par exemple, pour un client dont les employés partaient pour la journée sur des chantiers (travaux ou études) avec un appareil photo numérique, ordi portable et GPS,j'ai fait une appli (IOS à l'origine) qui permettait de remplacer les 3 appareils par des iPad. La société a par la suite changer sa flotte de tablettes par des tablettes Android. C'était dans une région montagneuse donc mal couverte par le réseau 4G. Il fallait aussi que la tablette tienne toute la journée malgré une utilisation assez poussée. La synchronisation des informations recueillies par les utilisateurs devait se faire automatiquement ensuite dès qu'une connexion réseau était possible. Une application web n'aurait pas pu répondre à cela.

    De manière générale, les applications Web n'ont pas tué les applis : il n'y a qu'à voir le succès des différents stores, les frameworks de dev Web se mettent aussi au natif (je trouve cela aberrant : cela produit des applications lourdes, gourmandes, souvent peu performantes, il faut toute une pile d'outils pour parvenir à quelque chose) et je ne parle pas des différences de comportement qui existent encore entre navigateurs dans le cas des applis web...
    Oui mais en fait ça à rien à voir avec ce que je disais, j'ai dit que si t'as une webapp sur pc, un framework JS peut etre éventuellement une bonne idée pour la transposer sur support mobile, puisqu'au final des gens ont tendance à utiliser plus régulierement une appli du store qu'ouvrir le navigateur et se connecter, quand bien-même l'appli serait juste un site sur une couche hybride, en même temps "DUH" bien-sur que ça se fait au cas par cas celons les besoins mais ça me paraissait suffisamment évident pour pas avoir à être précisé .

    Et je rajoute même qu'une app hybride sous ionic à beau etre un site, elle bénéficie des même accès qu'une app native, donc tout à fait possible de développer ton projet dessus, alors pour la batterie bien-sur ça dépendra de la complexité...

    Quand aux comportements différents celon les navigateurs...bah c'est UN PEU un des buts principaux des frameworks js, c'est justement d'obtenir des résultats similaires peu importe le navigateur...

    Oui c'est moins performant, en même temps quand on voit le nombre d'applis nativs pourries faites par des script kiddies qui pullulent sur le store, elles auraient bien pu être en webapp, pour reprendre ton exemple, ça marche avec tout.
    En même temps vu le niveau des news ici bientôt on va avoir droit à "l'eau mouille", s'agirait de grandir.

  15. #15
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 671
    Points : 3 681
    Points
    3 681
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par L33tige Voir le message
    Oui mais en fait ça à rien à voir avec ce que je disais, j'ai dit que si t'as une webapp sur pc, un framework JS peut etre éventuellement une bonne idée pour la transposer sur support mobile, puisqu'au final des gens ont tendance à utiliser plus régulierement une appli du store qu'ouvrir le navigateur et se connecter
    Ce n'est pas ce que tu as dit. Ton message était pour rappel "Bah si ton appli multiplateforme est aussi sur pc est est au final une webapp... ". Je te répondais non : mon appli n'a qu'une version des sources mais est compilée nativement pour chaque plateforme cible. Ce n'est pas une webapp.

    Citation Envoyé par L33tige Voir le message
    Quand aux comportements différents celon les navigateurs...bah c'est UN PEU un des buts principaux des frameworks js, c'est justement d'obtenir des résultats similaires peu importe le navigateur...
    Oui c'est le but des principaux frameworks js mais il y a toujours des petites différences qui peuvent parfois être bloquantes. De plus, il faut toujours être à jour des versions des frameworks et des navigateurs. En entreprise, les utilisateurs n'ont souvent pas la possibilité de mettre à jour leur version de navigateur.

    Citation Envoyé par L33tige Voir le message
    Oui c'est moins performant, en même temps quand on voit le nombre d'applis nativs pourries faites par des script kiddies qui pullulent sur le store, elles auraient bien pu être en webapp, pour reprendre ton exemple, ça marche avec tout.
    C'est en partie à cause de cela qu'on en est à avoir des smartphones équipés de 8 cœurs, des Go de RAM et qui tiennent difficilement 24h d'autonomie en utilisation simple...

  16. #16
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut
    • Aujourd'hui j'utilise principalement le Framework Flutter, mais que pour développer sous Android. Car n'ayant pas de Mac ni d'IPhone. Mais à l'avenir, je pense utiliser JetPack Compose quand cela sera plus stable.
    • Me considérant encore comme développeur plus ou moins novice, je ne pense pas pouvoir vraiment recommander tel ou tel framework, d'autant plus que les raisons de mon choix sont particulières. Mais aussi que je considère que pas mal de solutions sont tout à fait viables (React Native, Flutter, NativeScript pour ne citer que ces frameworks).
    • Je pense pour l'instant rester dans le développement mobile. J'ai trop souvent été frustré quand à la difficulté de déploiment d'applications en mode Multi OS, ne serait-ce que pour Windows et Linux. Même avec des langages comme Rust, c'est un vrai défi.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 51
    Points
    51
    Par défaut
    Si je comprends bien cet article, les meilleurs langages pour développer des applications mobiles sont celles présentées.

    Ok.

    Sur quelle étude est obtenu ce résultat ?

  18. #18
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2019
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2019
    Messages : 485
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par gbegreg Voir le message
    C'est en partie à cause de cela qu'on en est à avoir des smartphones équipés de 8 cœurs, des Go de RAM et qui tiennent difficilement 24h d'autonomie en utilisation simple...
    Oui bien-sur, c'est absolument pas pour jouer à du real racing 3, ou bien lancer des facemasks en 3d via snaps ou encore plus simplement le fait de rendre obsolète technologiquement les modèles de téléphones plus anciens en vendant le "plus meilleur".

    Si c'est pour afficher des choses aussi simple qu'une todolist pas besoin de natif, dire le contraire serait comme dire qu'une webapp sur navigateur PC est inutile. Et je suis dev Java hein.

  19. #19
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 671
    Points : 3 681
    Points
    3 681
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par L33tige Voir le message
    Oui bien-sur, c'est absolument pas pour jouer à du real racing 3, ou bien lancer des facemasks en 3d via snaps ou encore plus simplement le fait de rendre obsolète technologiquement les modèles de téléphones plus anciens en vendant le "plus meilleur".

    Si c'est pour afficher des choses aussi simple qu'une todolist pas besoin de natif, dire le contraire serait comme dire qu'une webapp sur navigateur PC est inutile. Et je suis dev Java hein.
    Real Racing utilise au mieux les ressources dans l'optique des performances : c'est normal pour un jeu de course réaliste. Les facemasks en 3d réclament déjà moins de puissance. En tout cas, cela justifie du natif.
    Par contre, dans mon propos, je ciblais plus les applications plus simples comme ton cas d'une todolist justement : on n'a pas besoin de perfs maximum mais quid de l'espace occupé, consommation mémoire, usage de la batterie... même pour ce type d'application pour moi il n'y a pas photo : c'est du natif cross plateforme.

  20. #20
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2019
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2019
    Messages : 485
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par gbegreg Voir le message
    Real Racing utilise au mieux les ressources dans l'optique des performances : c'est normal pour un jeu de course réaliste. Les facemasks en 3d réclament déjà moins de puissance. En tout cas, cela justifie du natif.
    Par contre, dans mon propos, je ciblais plus les applications plus simples comme ton cas d'une todolist justement : on n'a pas besoin de perfs maximum mais quid de l'espace occupé, consommation mémoire, usage de la batterie... même pour ce type d'application pour moi il n'y a pas photo : c'est du natif cross plateforme.
    Oui et à la moindre mise à jour faut 3 personnes, 3 MeP, 3 projets à suivre... mouais.

    Et oui, une seule personne peut le faire sur trois supports différents, mais on triple le temps, on augmente les erreurs possibles, on augmente la dette technique, jveux dire, l’intérêt principal de la webapp pour moi c'est que même un type qui utilise le navigateur de sa PS3 peux avoir la même application que sur pc, téléphone, ou peu importe le support, si on calculait le temps les ressources et l’énergie gaspillée pour satisfaire tut le monde, je pense qu'en terme d'énergie gâchée on serait pas loin de ce que surconsomme une webapp par utilisateur.

    Et encore, ça c'est en partant du principe que les devs natifs sont pas des brelles qui font des choses horribles également, je sais bien que dans l’inconscient collectif on est tous des experts, mais c'est pas le cas, je serais pas étonné de voir des apps natives faire pire niveau perfs que de l'hybride.

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/03/2020, 18h16
  2. Quels sont les meilleurs langages de programmation en 2017 ? Et pourquoi ?
    Par Community Management dans le forum Langages de programmation
    Réponses: 119
    Dernier message: 29/09/2018, 11h45
  3. Sondage : quels sont les meilleurs langages de programmation pour l'IA ?
    Par Blondelle Mélina dans le forum Intelligence artificielle
    Réponses: 28
    Dernier message: 22/07/2018, 07h52
  4. Quels sont les meilleurs langages pour créer une application non-web (en local) ?
    Par Skeud007 dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 31/08/2007, 17h33

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