2012-02-03 2 views
0

Mon projet est une application de visiteur pour une université, qui affiche essentiellement des lieux et des événements sur une carte, et permet aux utilisateurs d'interagir entre eux en faisant des messages avec des conseils/recommandations/questions et ainsi de suite. Jusqu'à présent, j'ai essayé des morceaux de code séparément (listes, onglets, les bases), en suivant les tutoriels Android et en essayant des choses pour moi-même. Mon problème est que je ne suis pas sûr de savoir comment combiner tous les morceaux de code en un seul projet. Je sais que j'ai besoin de faire une base de données, et une carte (en utilisant OSM plutôt que google). La base de données stocke des informations sur les lieux, les événements et les messages que les utilisateurs ont créés. Avec des informations de coordination, car ils doivent aller sur la carte. Cette information est également affichée dans des onglets séparés - par ex. une liste de lieux.Architecture de projet Android: base de données et carte?

Mon problème est que je ne sais pas comment tout cela va s'emboiter. Aura-t-il besoin de classes séparées pour la base de données, de remplissage des listes et d'affichage sur la carte? Ou peuvent-ils tous être dans une seule classe?

Je suis un peu flou sur la façon dont les cours et les activités vont aussi communiquer. Au moment où je pense que l'objet de base de données va être passé à la liste des vues et mapview, qui prend alors et affiche certaines des informations?

Un conseil sur la façon de bricoler ces éléments ensemble serait très apprécié. : D

Je pense que je vais avoir besoin de sous-classer SQLiteOpenHelper pour ma base de données, il va donc falloir être sa propre classe? Je pense utiliser OSMdroid pour la carte, mais je ne sais pas encore comment faire. Et tout doit être dans une tabview.

Répondre

2

Bienvenue dans StackOverflow! Votre question est très vague et large, et susceptible de se fermer comme "pas une vraie question" - je vous suggère de prendre des problèmes un par un et de poser des questions spécifiques que vous allez et rencontrez des problèmes. Essayez de penser à votre problème en ces termes: quelle est la chose minimale dont j'ai besoin pour faire ce que je veux? Gardez à l'esprit que TOUT ce que vous voulez faire est possible, la question principale à se poser est: que voulez-vous que votre application fasse exactement? Pensez au nombre d'écrans différents (activités) et à la façon dont ils communiqueraient entre eux (lorsque vous cliquez sur XXX, cela vous mènera à YYY, et ainsi de suite). Un conseil: commencez simple, il est très facile de se faire enterrer dans une trop grande complexité, d'autant plus que c'est votre premier projet. Il peut rapidement devenir très complexe, même avec un concept simple. Comme vous n'avez pas précisé votre niveau d'expertise en codage, il est difficile de donner des conseils précis: mais le codage d'une application android n'est pas très différent d'une application "régulière", avec une interface web ou Swing ou C#. Je vous conseille d'en apprendre davantage sur la programmation orientée objet en général, des choses comme composition, héritage, encapsulation, injection de dépendance, tests unitaires , etc.

Puis commencer à écrire une base Activity pour votre vue principale, écrivez sa mise en page et ajoutez des vues et des éléments graphiques. Ensuite, ajoutez le code d'écoute pour vos widgets, cela générera Intents à d'autres Activity.

Ensuite, ajoutez un DatabaseHelper lorsque vous voulez enregistrer des données dans une base de données (cela peut venir plus tard, pour commencer, vous pouvez simplement "stub" les interactions à une base de données, en écrivant ce que vous enregistrez Toast par exemple).

Tous les objets peuvent être injectés dans d'autres objets en leur transmettant une référence, soit au moment de la construction, soit par l'intermédiaire de setters.

Désolé de ne pas être plus précis, comme je l'ai dit c'est une question très vague.

+1

Merci beaucoup, ouais je réalise que c'est vague. Ce que je voulais, c'était une réponse comme la tienne, pour m'aider à démarrer - ailleurs. Peut-être que je ferais mieux de demander comment mettre un mapview à l'intérieur d'un tabview. :) – Ephemeros

+0

Ah oui, je n'ai pas pensé à inclure ça./facepalm Je suis dans ma troisième année d'études en informatique à l'université, et même si j'ai regardé brièvement différentes langues (C++, haskell), je me suis concentré sur Java. :) J'ai aussi fait des modules sur OO et TDD. – Ephemeros

+0

Comment placer un MapView dans un TabView est un bien meilleur type de question pour Stack Overflow - Vous aurez beaucoup de réponses (n'oubliez pas de chercher d'abord, il y a peut-être déjà des questions similaires) – Guillaume

Questions connexes