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 :

Architecture de mon application


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Architecture de mon application
    Bonjour à tous,

    C'est avec la queue entre les jambes que je viens vers vous, dégoûté de ne pas réussir à me cadrer....

    Je développe actuellement une application avec menu Hamburger. M'aidant de tutos pour comprendre comment le réaliser, j'ai fini avec une activity, une tonne de fragments correspondants aux items du menu et un fragment_container qui recevais ces fragments aux gré des items sélectionnés dans le menu. Ne sachant pas gérer la discussion entre fragments (j'ai pas mal de data à passer entre fragments par moment) j'ai modifié cette appli pour ne plus avoir de fragments mais des activity pour chaque item menu, mais ça ne me va pas, je suis persuadé que les fragments sont ce qu'il me faut et seront surtout moins gourmand en ressources. (Dites le si je me trompe et/ou si je ne suis pas clair)

    Le problème c'est que je suis en train de me perdre. Outre la question des datas à passer entre fragments, j'ai peur de me retrouver avec une activity gérant le fragment_container et une tonne de fragments, donc une tonne de code dans cette même activity.

    Pourriez vous m'éclaircir sur l'architecture type d'une application utilisant les menus hamburger et fragments?
    Je n'ai aucun développeur android (pas encore du moins) dans mon entourage et j'ai bien l'impression que l'apprentissage en auto-didacte arrive à ses limites me concernant....


    Merci à tous!

  2. #2
    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
    C'est assez simple en fait.

    Tous le code lié à un fragment s'écrit dans celui ci.
    Si tu as besoin de passer une donnée d'un fragment à un autre tu passe par l'activity qui sert de passerelle entre les différents fragments.

    Ton activity devrait donc contenir toute la gestion de navigation des fragments via le FragmentManager et toute la gestion de transfert des données entre fragment.
    Après évidemment si tu as 15 fragments lié à ton activity le code va pas être bien clair , mais là on tombe plus dans un problème d'ergonomie général de l'application.

    Pour la communication entre fragment voir : http://developer.android.com/trainin...unicating.html
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci pour le lien, je suis dessus depuis un petit moment depuis ce matin. Le souci, c'est qu'à force de tenter, je suis complètement emmêlé...

    J'ai suivi ce tutoriel: http://www.androidhive.info/2013/11/...gation-drawer/

    Le fait que tout le fragmentmanager soit sur l'activity je le conçois, je conçois aussi que je dois faire un call back from fragment A to activity pour ensuite le passer au fragment B mais c'est la gestion des données passées coté fragment B que je ne saisit pas... Soit la dernière partie.

    Tu aurais un exemple d'utilisation des données du coté du fragment B?

    Dans tous les cas, merci d'avoir pris le temps de me répondre.

  4. #4
    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
    Si tu arrive à remonter les données dans ton activité via un callback le plus dur est fait.
    Il ne te reste plus qu'a récupérer le fragment de destination via le fragment manager et lui passer les données via une méthode publique ou un bundle.

    Un exemple simplifié (non testé)

    Code : 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class FragmentA extends Fragment {
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
     
    	//Au clic sur le bouton le fragment B est chargé et des données du fragment A lui sont passées
        myButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
              mCallback.passData("Data pour Fragment B");
          }
        });
      }
    }
     
    public class MainActivity extends Activity implements InterfacePourPasserDesDonnees {
    	@Override
    	public void passData(String data) {
    		FragmentB fragmentB = new FragmentB ();
    		Bundle args = new Bundle();
    		args.putString("datas", data);
    		fragmentB.setArguments(args);
    		getFragmentManager().beginTransaction()
    			.replace(R.id.container, fragmentB )
    			.commit();
    	}
    }
     
     
    public class FragmentB extends Fragment {
    	@Override
    	public void onStart() {
    		super.onStart();
    		Bundle args = getArguments();
    		if (args != null) {
    			String donnees = args.getString("datas");
    		}
    	}
    }
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci à toi!

    J'ai fais un petit mix entre google et ton post, du coup, j'ai créé une interface qui implémente mon main et qui comportera toutes les "méthodes nécessaires à l'appli" vu que l'activity Main gèrera l'ensemble des fragments.

    Pour ce qui est du Fragment A, tout est nickel, concernant le Fragment B, si ça peut servir à d'autres, ne pas sortir la méthode @Override OnStart mais intégrer le code ci-dessous dans le onCreateView

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Bundle args = getArguments();
         if (args != null) {
    	  String donnees = args.getString("datas");
         }
    Voilà, merci encore grâce à toi, plus rien ne me bloque! XD

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/11/2013, 10h57
  2. Avis sur l'architecture de mon application Android
    Par lefranco dans le forum Android
    Réponses: 2
    Dernier message: 28/11/2013, 08h51
  3. [1.x] Architecture de mon application
    Par Vince57 dans le forum Symfony
    Réponses: 3
    Dernier message: 25/08/2010, 23h40
  4. Conception de l'architecture de mon application ACCESS
    Par Jertho dans le forum Modélisation
    Réponses: 2
    Dernier message: 28/01/2009, 01h22
  5. Impossible de quitter mon application!
    Par Bouillou dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/11/2002, 20h43

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