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 :

Que s'est-il passé avec les denières évolutions du SDK Android ?


Sujet :

Android

  1. #1
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut Que s'est-il passé avec les denières évolutions du SDK Android ?
    Bonjour,

    J'ai du mal à comprendre ce qui s'est passé concernant les dernières versions du SDK et les outils de développement entourant l'OS Android.
    Alors qu'il y a encore 2 ans il était assez aisé de développer un projet Android sous Eclipse, voilà qu'aujourd'hui ça tient du miracle si l'on arrive à afficher un cercle dans un misérable Canvas.

    Pour avoir développé pendant longtemps pour Android, et avoir fait une longue pause pour m'orienter vers du développement HTML5, j'ai eu la curiosité de voir ce qui avait évolué.

    Il y a 2 ans, voici mon environnement de dév Android :
    - Eclipse + plugin ADT
    - Android SDK (version 2.3 à 4.0)
    - LibGDX

    Ca tournait super bien, il y avait peu de configuration et la programmation était assez bien organisée. Bref, avec quelques tutoriels, même en anglais, un novice avait la chance de pouvoir créer un premier projet en 1 h.
    Bon, déjà à l'époque j'avais constaté quelques aberrations, comme le système de coordonnées d'affichage. Un point placé à la position 0,0 se retrouve en bas à gauche (?). En 40 ans d'informatique, (0,0) a toujours été le point en haut à gauche. Ils ont dû se marrer chez Google quand ils ont fait ça.

    Aujourd'hui, fini Eclipse, faut passer par Android Studio (qui est en fait Eclipse hein...). Bon, soit ça change pas beaucoup. Non, le problème vient des nouvelles versions de l'OS (KitKat et LilliPop) et le SDK qui va avec. C'est quoi toutes ces exceptions qui n'ont rien à voir avec mon code ? Les Exceptions OpenGL, ils auraient pas pu les régler chez Google ? Ben non, c'est tellement mieux de t'inviter à te débrouiller. Et promis, j'ai fais attention à la configuration de mon émulateur.

    C'est bien simple, créer un projet Android juste avec l'API du SDK, qui fonctionne sur toutes les versions de l'OS et qui ne lag pas, tient de l'exploit. Heureusement qu'il existe des frameworks qui ne sont pas trop buggés. Parce que là aussi, attention aux fuites mémoires et aux Exceptions. Alors après, ils sont gratuits et ils ont le méritent de faire 80% du job prévu.

    J'ai fini par comprendre pourquoi tant d'éditeurs d'applications passaient par la webview et codaient leur application en HTML5 / JavaScript. Ils ont arrêté de se prendre la tête et de corriger les bugs des autres.
    Mais voilà, depuis la version KitKat, la webview est devenue un vrai cauchemar. Impossible de faire une animation sans que ça lag à mort. Beaucoup d'éditeurs ont jetés l'éponge ou sont passés sous iOS.

    Franchement, déjà que le système Android à une image d'OS "pas fini", si en plus il n'y a aucun effort de fait pour faciliter le développement d'applications... Pas cool !

  2. #2
    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 : 41
    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
    Par défaut
    Bonjour,

    Sans vouloir être désagréable je pense que le problème ne vient pas du SDK.
    N'importe quel développeur Android te dira que les outils évoluent dans le bon sens. Entre Eclipse +ADT et Android Studio aujourd'hui ça n'a rien à voir (et non AS , n'est pas un fork d'Eclipse). Après je dis pas que le passage de l'un à l'autre est facile, il m'a fallu quelque temps pour oublier les habitudes Eclipse pour se plier à la vision d'IntelliJ. Mais au final c'est, pour moi, beaucoup mieux.
    Le seul point où AS reste pas top est pour moi la gestion du code natif JNI. Je pense qu'il y a encore des choses à faire de ce coté.

    Il est également évident que Google ne supporte(ra?) plus Eclipse au profit de son IDE et que donc ça va aller de pire en pire pour ceux qui veulent rester sous Eclipse.

    Un point placé à la position 0,0 se retrouve en bas à gauche (?). En 40 ans d'informatique, (0,0) a toujours été le point en haut à gauche.
    Je sais pas avec quel outils tu as travaillé mais dans toutes les customview (et donc canvas) que j'ai fait le 0,0 était bien en haut à gauche , j'ai jamais vu quoi que ce soit d'autre.

    C'est bien simple, créer un projet Android juste avec l'API du SDK, qui fonctionne sur toutes les versions de l'OS et qui ne lag pas, tient de l'exploit.
    File > new > new project , sous Android Studio, y en a je pense pour 30sec en lisant toutes les fenêtres et tu as un projet prêt à l'emploi, compatible avec toutes les versions d'Android, grâce à la support library qui est incluse par défaut. Et comble du luxe tu peux même prédéfinir un type d'Activity (vide, avec menu, fragment, etc ...)
    Plus simple je ne sais pas si c'est possible.
    Je fini par comprendre pourquoi tant d'éditeurs d'application passaient par la webview et codaient leur appli en HTML5 / Javascript
    Le développement web pour les applications mobile n'a d'intérêt que si on vise plusieurs plateformes => gain de temps et donc d'argent. Sinon zéro intérêt. La webview étant pour le coup assez critiqué coté Android (moins avec la nouvelle version) c'est à mon avis pas le choix idéal si on peut l'éviter.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Citation Envoyé par grunk Voir le message
    Sans vouloir être désagréable je pense que le problème ne vient pas du SDK.
    Tu as raison, je ne suis pas expert en dev Android, loin de là, et j'admets que certains concepts ne me sautent pas forcément tout de suite aux yeux. Mais il est assez agaçant de voir un code qui compilait très bien il y a encore un an, être devenu totalement inutilisable parce que les concepts des dernières versions du SDK ont changés. J'ai le sentiment qu'il n'y a pas de retro-compatibilité avec le code prévu pour les versions antérieures à Jelly Bean. Sérieusement, même du code C développé à l'époque de Windows 3.1 reste compilable aujourd'hui.

    Citation Envoyé par grunk Voir le message
    Je sais pas avec quel outils tu as travaillé mais dans toutes les customview (et donc canvas) que j'ai fait le 0,0 était bien en haut à gauche , j'ai jamais vu quoi que ce soit d'autre.
    J'utilise la lib LibGDX, prévue pour le développement de jeu, et bizarrement chez moi, lorsque je positionne un texte sur un canvas à la position (0,0), il est en bas à gauche. Et lorsque que je le déplace en incrémentant la position verticale de 1, le texte se déplace vers le haut du canvas. Pareil pour le tracé de ligne. J'ai l'impression que le Canvas a subit un flip sur son horizontale. Je vais creuser la question...

    Citation Envoyé par grunk Voir le message
    File > new > new project , sous android studio , y'en à je pense pour 30sec en lisant toutes les fenêtres et tu as un projet pret à l'emploi compatible avec toutes les version d'android grâce à la support library qui est inclues par défaut. Et comble du luxe tu peux même prédéfinir un type d'activity (vide , avec menu , fragment , etc ...)
    Plus simple je sais pas si c'est possible.
    Ok, ok, si tu ambitionnes de faire un "Hello World!" ou une appli entièrement UI. Mais pour démarrer un jeu, juste déplacer un sprite sur un canvas. Sans framework qui te simplifie cela, tu t'arraches les cheveux. Tente de faire un beau scrolling de décor, tiens juste un scroll d'étoiles, juste en utilisant l'API du SDK. Saloperie d'update de Canvas à la con. Un novice pouvait le faire facilement il y a encore 1 an. Aujourd'hui, tu perds du temps en paramétrage et à surfer sur Google pour trouver des solutions aux Exceptions qui n'ont rien à voir avec ton code. Ce genre de développement me rappelle l'installation et la configuration de compiler C/C++ dans les années 90, où on devenait dingue car ça compilait jamais et qu'il manquait toujours un bout de config. Sauf que là, on est en 2015...

    Citation Envoyé par grunk Voir le message
    Le développement web pour les appli mobile n'a d'intérêt que si on vise plusieurs plateforme => gain de temps et donc d'argent. Sinon zéro intérêt. La webview étant pour le coup assez critiqué coté android (moins avec la nouvelle version) c'est à mon avis pas le choix idéal si on peut l'éviter.
    Tout à fait d'accord, de toute manière, la webview est devenue inutilisable pour le jeu depuis KitKat, c'est une catastrophe pour tous ceux qui avaient développé leurs applis de jeu en HTML5. C'est juste scandaleux, à croire que Google voulait se débarrasser de ce type d'appli et faire le ménage dans Google Play.

  4. #4
    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 : 41
    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
    Par défaut
    Mais il est assez agaçant de voir un code qui compilait très bien il y a encore un an, être devenu totalement inutilisable parce que les concepts des dernières versions du SDK ont changés
    Si tu as un code qui vise par exemple android 2.1 et que tu veux le compiler avec le dernier SDK tu vas avoir des warning mais ça devrait compiler. Il déprécie régulièrement des fonctions , mais à ma connaissance il n'en n'ont pas encore supprimé.
    Après d'une version à l'autre du SDK , sur une appli en dév actif , j'ai de nouveau warning et de petite modif à faire pour les supprimer. Donc j'imagine que sur du code qui à plus d'un an ca doit piquer un peu

    J'utilise la lib LibGDX, prévue pour le développement de jeu
    Le problème vient de là à mon avis , pas du SDK.

    Ok, ok, si tu ambitionnes de faire un "Hello World!" ou une appli entièrement UI. Mais pour démarrer un jeu
    Pour le coup j'ai pas d'expérience dans les jeux , mais ça vaut peut être le coup de te pencher sur le développement natif (c/c++) qui t'offrira les meilleures performances et te permettra de porter une grosse partie de ton code vers d'autre plateforme.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Pour avoir fait de l'OpenGL... désolé... mais (0,0)-(W,H) correspond à un "view-port" (0,0) étant en bas à gauche, et (W-1,H-1) en haut à droite.
    Cela a toujours été vrai en OpenGL, et je vois mal pourquoi OpenGL changerait ce truc (déjà que DirectX fait l'inverse).
    Et donc, rien à voir avec Android, ni Windows, ni quoi que ce soit.
    Allez hop:
    https://www3.ntu.edu.sg/home/ehchua/...spectRatio.png

    Et rappelons qu'après projection, -1,-1 correspond à 0,0, et 1,1 à W,H (et non W-1, H-1) d'ou la nécessité de toujours décaler ses textes de 0,5 pixels histoire qu'ils ne soient pas flous !
    Enfin bref.


    IntelliJ n'a rien à voir avec Eclipse que je sache, et même si Google pousse pour Android Studio (et IntelliJ) il n'ont pas (encore) abandonné le plugin eclipse (je croise les doigts... j'aurai du mal à perdre mes setups Mylin, Bugzilla, SVN ...).

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Je fais mon mea culpa. J'ai viré la LibGDX, coder la partie moteur avec les API du SDK et ça fonctionne mieux.

    Nom : fatal_space.png
Affichages : 169
Taille : 30,5 Ko

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegExp] Est-ce possible avec les expressions régulières ?
    Par Difré91 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 10/06/2010, 12h09
  2. Une chose que je ne comprend pas avec les editors/renderer
    Par Djobird dans le forum Composants
    Réponses: 6
    Dernier message: 30/03/2009, 10h24
  3. os.popen est-il fâché avec les caractères Unicode ?
    Par goran kajfes dans le forum PyQt
    Réponses: 1
    Dernier message: 02/05/2008, 13h53
  4. Mandriva est il faché avec les thread java?
    Par Flophx dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 29/12/2007, 12h09
  5. Réponses: 8
    Dernier message: 13/12/2005, 14h02

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