Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Android

    5 mars 2016 à 21:02:26

    Salut à toutes et a tous !

    Bienvenue dans le cours Développez une Application pour Android !
    Ce cours, entièrement en vidéo, a pour but de vous introduire à la plateforme mobile Android, à ses spécificités et ses outils.

    Il est en quatre parties :

    • La première vous permettra de vous familiariser avec les outils de développement Android
    • La seconde fera de vous des artistes des interfaces
    • La troisième vous permettra d'utiliser la puissance du grand Internet
    • La quatrième vous ouvrira de nouveaux horizons

    Ce cours ayant pour but d'aborder les spécificités du développement pour Android, il suppose que vous savez déjà programmer en Java. Si ce n'est pas encore le cas, pas de panique ! OpenClassrooms vous propose un cours complet sur ce génial langage de programmation.

    Vous pouvez ici poser toute question qui vous tarauderait sur le cours. J'essaierai d'y répondre si je le peux.

    A très bientot :)

    Salomon.

    -
    Edité par Anonyme 22 mars 2016 à 12:14:58

    • Partager sur Facebook
    • Partager sur Twitter
    Architecte logiciel R&D
      23 mars 2016 à 10:53:10

      Bonjour,

      Je me permets de remonter 2 petits soucis dans le Quiz de la partie 1 :

      • Question 2 : Dans la vidéo, l'auteur utilise l'API 15 et non l'API 14 (or la correction dit l'inverse) ;
      • Question 7 : DP signifie Density Independant Pixel et non Display Independant Pixel.
      • Partager sur Facebook
      • Partager sur Twitter
        23 mars 2016 à 10:58:00

        Bonjour Rolandl,

        merci pour ce retour. On va corriger ca de ce pas :)

        • Partager sur Facebook
        • Partager sur Twitter
        Architecte logiciel R&D
          23 mars 2016 à 12:01:51

          Bonjour, tout d'abord merci pour ce cours de qualité :)

          Lors du premier TP il y a un problème pour générer le chiffre aléatoirement,

              public void onClick(View v) {
                  SecureRandom random = new SecureRandom();
                  int result = random.nextInt(6) + 1;
                  textResult.setText(String.valueOf(result));
              }

          Erreur lorsqu'on déclenche l'événement : 

          java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

          • Partager sur Facebook
          • Partager sur Twitter
            23 mars 2016 à 12:12:07

            Bonjour EmixMaxime,

            Merci pour le compliment :)

            L'erreur que vous obtenez signifie que textResult est null, ce qui signifie que la propriete n'a pas ete defini correctement dans l'activite, en d'autres termes que :

            TextView textResult = (TextView) findViewById(R.id.textResult);

            n'as pas reussi (et donc retourne null).

            Donc :

            • Verifiez que cette ligne se trouve bien dans la methode onCreate de votre activity apres la ligne 
              setContentView(R.layout.activity_dice);
            • Verifiez dans le layout activity_dice.xml que la textview qui affiche le resultat contiens bien l'attribut
              android:id="@+id/textResult"
            • Partager sur Facebook
            • Partager sur Twitter
            Architecte logiciel R&D
              23 mars 2016 à 13:44:39

              Mh, tout est correcte, de plus dans méthode onCreate le textResult.setText(""); fonctionne o_O
              • Partager sur Facebook
              • Partager sur Twitter
                23 mars 2016 à 14:10:07

                EmixMaxime a écrit:

                Mh, tout est correcte, de plus dans méthode onCreate le textResult.setText(""); fonctionne

                Le plus simple est probablement que tu ouvres un sujet spécifique à ton problème sur le forum avec ton code, la stacktrace complète, etc :)

                • Partager sur Facebook
                • Partager sur Twitter
                  23 mars 2016 à 19:24:57

                  Bonjour,

                  Je suis déjà inscrit à ce cours : https://openclassrooms.com/courses/creez-des-applications-pour-android 

                  Est-ce la même chose ? Je suis d'ailleurs bloqué à la fin de la première partie de ce cours, car android studio ne reconnait pas la "classe R" du chapitre 4.

                  -
                  Edité par Friedrich von Schlickling 24 mars 2016 à 11:40:34

                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 mars 2016 à 20:22:31

                    Bonjour Frederic,

                    Voici les attributs du nouveau cours qui le differencient du precedent :

                    • Il est entierement en video
                    • Il est certifiant (a l'issu de 3 activites)
                    • Il est a jour (le precedent utilise des concepts et outils qui sont deprecies depuis au moins 2 ans)
                    • Il est explore moins de concepts, et est par consequent moins complexe. Il se concentre sur les concepts les plus importants specifique a Android.

                    Concernant la classe R, si Android Studio ne la reconnais plus, c'est qu'il n'arrive plus a compiler vos ressources. Assurez vous que les noms de tous les fichiers dans les sous-dossiers de res/ respectent bien la norme de nommage : minuscules, underscore et chiffres. Pas de majuscules, pas de nom qui commencent par un chiffre.
                    Une autre raison pourrait etre une erreur dans un XML. Pour cela le mieux est d'utiliser les retours de la compilation. Faites un "rebuild" (menu "build" > "rebuild") puis verifiez qu'aucune erreur ne s'affiche dans l'onglet "Messages" d'Android Studio. 

                    Bien a vous,
                    Salomon.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Architecte logiciel R&D
                      24 mars 2016 à 6:49:06

                      Cours très intéressant mais je dois souvent reculer la vidéo car vous parlez très (trop ?) vite :-)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 mars 2016 à 15:26:00

                        Bonjour,

                        Je viens de débuter le mooc et j'ai une petite question par rapport à android studio. Je l'ai installé (Ubuntu 14.04) : il s'agit de la version 1.5.1. Il n'y a pas trop de différences avec la version utilisée dans les vidéos sauf qu'à la création d'un projet, dans le dossier layout, j'ai deux fichiers xml par défaut (activity_main.xml et content_main.xml). Conséquence : la chaine "hello word" est accessible directement dans le fichier content_main.xml (

                        android:text="Hello World!"

                        ) et ne se trouve pas dans values/strings.xml. J'avais cru comprendre que c'était important que toutes les chaines de caractères soient dans le fichier strings.xml. Avant d'aller plus loin, y a-t-il un paramétrage à effectuer dans ma version d'android studio ou est-ce normal ?

                        Merci par avance.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 mars 2016 à 19:37:10

                          Bonjour,

                          Entre l'ecriture des premieres videos de ce cours et sa publication, Android Studio a, en effet, bien evolue.

                          Le cours vous demande de creer une application en selectionnant "Blank Activity" dans l'assistant de creation, mais cela a ete renomme entre temps en "Empty Activity". Merci de l'avoir signaler : je vais mettre le cours a jour ;).

                          Je suppose que vous avez cree une application avec une "Basic Activity". L'activite qui est alors cree par Android Studio est alors loin d'etre basique puisqu'elle inclus des vues et des systemes de layouts un peu complexe. Je vous conseille de supprimmer le projet et de le re-creer, cette fois ci avec une "EMPTY Activity".

                          Bien a vous,
                          Salomon.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Architecte logiciel R&D
                            27 mars 2016 à 10:39:28

                            Bonjour,

                            Merci pour votre réponse très rapide. Effectivement, c'est bien "empty activity" qu'il convient de choisir. En revanche (pour info) les strings sont toujours codées en dur dans le layout et pas dans le fichier strings.xml.

                            Allez hop, je continue....

                            • Partager sur Facebook
                            • Partager sur Twitter
                              27 mars 2016 à 23:50:31

                              Bonjour, 

                              Je viens de débuter le mooc et je rencontre un petit problème lors de la vidéo 5,

                              Si bien la pratiquement tout marche et me semble logique je rencontre l'erreur suivante:

                              Button myButton = (Button) findViewById(R.id.button1);
                              myButton.setOnClickListener(new View.OnClickListener() {
                              @Override
                              public void onClick(View v) {
                              Log.i("OC_RSS","Ca maaaarche !");
                              }
                              });

                              Ces lignes de code précises me renvoient sans cesse un warning de nullPointerException

                              Le texte dans le Log.i n'est en effet jamais exécuté, et voici le logcat:

                              03-27 23:32:26.488 30509-30509/? I/art: Late-enabling -Xcheck:jni

                              03-27 23:32:26.836 30509-30509/com.oc.rss.oc_rss W/ResourceType: Found multiple library tables, ignoring...

                              03-27 23:32:26.915 30509-30528/com.oc.rss.oc_rss D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true

                              03-27 23:32:26.920 30509-30509/com.oc.rss.oc_rss D/Atlas: Validating map...

                              03-27 23:32:26.971 30509-30528/com.oc.rss.oc_rss I/Adreno-EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.01.00.042.030_msm8974_LA.BF.1.1.1_RB1__release_AU ()

                                                                                             OpenGL ES Shader Compiler Version: E031.25.03.06

                                                                                             Build Date: 07/13/15 Mon

                                                                                             Local Branch: mybranch11906725

                                                                                             Remote Branch: quic/LA.BF.1.1.1_rb1.26

                                                                                             Local Patches: NONE

                                                                                             Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.01.00.042.030 + 6151be1 + a1e0343 + 002d7d6 + 7d0e3f7 +  NOTHING

                              03-27 23:32:26.972 30509-30528/com.oc.rss.oc_rss I/OpenGLRenderer: Initialized EGL, version 1.4

                              03-27 23:32:26.987 30509-30528/com.oc.rss.oc_rss D/OpenGLRenderer: Enabling debug mode 0

                              03-27 23:32:27.036 30509-30509/com.oc.rss.oc_rss I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@2d37871f time:449235388

                              Ce log n'affiche pas vraiment d'erreurs (j'en reconnait pas une en tout cas), j'ai revérifié tous les fichiers en cherchant une faute quelque part  ou une erreur de nommage mais c'est finalement pratiquement un copier coller de la vidéo et l'erreur persiste. 

                              Merci d'avance

                               Problème résolu, petit poblème avec mon smartphone mais c'est reglé.

                              -
                              Edité par SantiagoKummert 29 mars 2016 à 13:14:53

                              • Partager sur Facebook
                              • Partager sur Twitter
                                28 mars 2016 à 0:16:24

                                Salut,

                                Peux-tu nous montrer la ligne ou tu donnes le layout a ton Activité ainsi que le contenu du layout ?

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  28 mars 2016 à 14:18:46

                                  Salut, 

                                  Je viens de faire un tour rapide du cours et je le trouve super. Mais il y a un petit truc qui me tourmente (car ayant juste survolé certaines parties). A la partie 3 - chapitre 3 "Affichez du contenu de l'internet", il est parlé d'un TP concernant un moteur de requêtes et je ne le vois malheureusement pas. Je me demande donc si ce n'est pas :

                                  • un oubli lors de la rédaction du tutoriel (bizarre car il a tout le temps été présent dans le sommaire avant le début du cours)
                                  • ou alors il est destiné aux membres premium, du coup invisible pour les autres (donc j'en fais partie :p)

                                  Merci bien. 

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  En apprentissage continue....
                                    28 mars 2016 à 16:12:42

                                    Bonjour Paul,

                                    Afin de pouvoir sortir le cours a la date annoncee, il a ete decide de sortir l'entierete du cours, sans ce TP qui est le seul chapitre qui n'avait pas encore ete termine.

                                    Ce TP est en cours d'ecriture et devrais etre ajoute au cours cette semaine.

                                    Bien a vous,
                                    Salomon. 

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Architecte logiciel R&D
                                      28 mars 2016 à 19:04:10

                                      SalomonBrys a écrit:

                                      Bonjour Paul,

                                      Afin de pouvoir sortir le cours a la date annoncee, il a ete decide de sortir l'entierete du cours, sans ce TP qui est le seul chapitre qui n'avait pas encore ete termine.

                                      Ce TP est en cours d'ecriture et devrais etre ajoute au cours cette semaine.

                                      Bien a vous,
                                      Salomon. 


                                      Merci pour cet éclaircissement. ;)
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      En apprentissage continue....
                                        28 mars 2016 à 22:48:08

                                        Bonjour à tous,

                                        J'ai un souci pour l'activité de la Partie 2,  je voudrais mettre un intent dans la classe MyAdapter pour charger une activité quand l'utilisateur choisi un sujet RSS  . Mais cela ne fonctionne pas, l'application plante quand j'appuie un sujet RSS dans la liste.

                                        public class MyViewHolder extends RecyclerView.ViewHolder {
                                                ......
                                                private Activity activity;
                                                Context context;
                                        
                                                public MyViewHolder(final View itemView) {
                                                    super(itemView);
                                        
                                                    name = ((TextView) itemView.findViewById(R.id.name));
                                                    description = ((TextView) itemView.findViewById(R.id.description));
                                        
                                                    itemView.setOnClickListener(new View.OnClickListener() {
                                                        @Override
                                                        public void onClick(View view) {
                                                           Intent intent = new Intent(context, MyWebView.class);                
                                        startActivity(intent );
                                                        }
                                                    });
                                                }
                                        ....
                                        ...

                                        -
                                        Edité par Forst 28 mars 2016 à 22:58:06

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Forst
                                          29 mars 2016 à 1:09:36

                                          Bonjour,

                                          avez vous pense a declarer l'activite MyWebView dans le manifeste ?

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Architecte logiciel R&D
                                            29 mars 2016 à 6:09:38

                                            oui 

                                             <activity android:name=".MyWebView">





                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Forst
                                              29 mars 2016 à 8:08:02

                                              Pouvez vous copier-coller la stack trace de l'erreur ?

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Architecte logiciel R&D
                                                29 mars 2016 à 8:34:27

                                                Regle d'or du developpement Android : Ne jamais stocker le contexte ! (A moins de savoir exactement ce que vous faites, ca cree des fuites memoire).

                                                Creez plutot l'intent avec cette ligne :

                                                Intent intent = new Intent(itemView.getContext(), MyWebView.class);



                                                -
                                                Edité par SalomonBrys 29 mars 2016 à 8:34:57

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Architecte logiciel R&D
                                                  29 mars 2016 à 10:03:00

                                                  Cela marche avec ta solution , c'est effectivement le problème de contexte .

                                                  Je voudrais savoir la différence entre context et getContext ?

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Forst
                                                    29 mars 2016 à 12:04:49

                                                    Forst a écrit:

                                                    Cela marche avec ta solution , c'est effectivement le problème de contexte .

                                                    Je voudrais savoir la différence entre context et getContext ?


                                                    Salut, 

                                                    Jette un oeil par
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    En apprentissage continue....
                                                      31 mars 2016 à 15:50:18

                                                      Bonjour Salomon,

                                                      Merci pour ce cours,

                                                      je voulais juste attirer ton attention sur le résumé de la partie 3 chapitre 1 où il semble y avoir une coquille. Tu écris:

                                                        • Lorsque l’activité n’est plus affichée, onResume et onStop sont appelées. Lorsque l’activité est de nouveau affichée, onRestart, onStart et     onResume sont appelées.

                                                      Ce ne serait pas plutôt onPause et onStop qui sont appelées lorsque l'activité n'est plus affichée ? Si j'ai bien compris !

                                                      Bien à toi.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                                                        1 avril 2016 à 16:50:59

                                                        Salut Salomon,

                                                        merci pour le cours, je suis en train de le parcourir et je le trouve vraiment top.

                                                        C'est le premier tuto mobile que je suis et je trouve que la pédagogie est très bien, avec les vidéos et le résumé. Le problème c'est que je suis limité pour les visionnages mais bon le texte suffit en général.

                                                        J'en suis à la partie 2 point 3 avec l'action bar. Je n'ai pas trouvé, faute de vidéo, comment créer une activité avec une actionBar et comment lier celle-ci avec un thème.

                                                        Bonne continuation!

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          1 avril 2016 à 17:42:56

                                                          Bonsoir Raphp,

                                                          Si je peux me permettre de répondre,

                                                          •dans le dossier app/res/values tu as un fichier styles.xml qui doit avoir cette ligne pour ton thème :

                                                          <!-- Base application theme. -->
                                                              <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

                                                          avec ensuite 3 couleurs:

                                                           <!-- Customize your theme here. -->
                                                                  <item name="colorPrimary">@color/colorPrimary</item>
                                                                  <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
                                                                  <item name="colorAccent">@color/colorAccent</item>
                                                              </style>

                                                          •Dans ton manifests tu doit mettre cette ligne:

                                                          android:theme="@style/AppTheme"


                                                          •Enfin si tu veux mettre un titre à ton actionBar, tu vas dans ton activity où tu mets:

                                                          setTitle("Voici mon super titre");

                                                          Voilà, j'espère te mettre sur la bonne voie.

                                                          Bien à toi,

                                                          Philippe



                                                          -
                                                          Edité par Philippe2463 1 avril 2016 à 17:43:59

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                                                            3 avril 2016 à 23:23:14

                                                            Bonsoir,

                                                            j'ai deux problèmes d'installation.

                                                            Voici les saisies d'écran ci-dessous.

                                                            Si quelqu'un peut m'éclairer ?

                                                            Bonne soirée.

                                                            Fabien Macip

                                                            Voici

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            http://www.fatabien.com
                                                              4 avril 2016 à 11:36:47

                                                              La première erreur je l'ai eu aussi à l'installation. 

                                                              Je pense que c'est par rapport à ta carte graphique. Tu dois voir dans les options si tu peux activer la virtualisation quelque chose par rapport à ça. 

                                                              Moi je n'ai pas cherché vu que je teste directement avec mon téléphone. En gros tu ne pourras pas utiliser l'émulateur d'Android Studio

                                                              Pour la deuxième erreur, as-tu téléchargé le dernier JDK Java sur le site d'Oracle?

                                                              http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

                                                              Si oui, tu dois ensuite déclaré une variable d'environnement pour Java dans tes variables.

                                                              https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html

                                                              Bonne chance!

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              MOOC Android

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              • Editeur
                                                              • Markdown