2010-11-19 21 views
0

Je voudrais redéfinir mon application en composants, donc c'est plus modulaire et plus facile à réutiliser dans le futur, mais je n'ai jamais vraiment conçu d'applications, donc je ne sais pas vraiment comment je devrais faire ça .Conception d'applications basées sur des composants Android: Comment représenter ce modèle?

Voici une brève description de l'application:

  • Le but de l'application est de permettre à l'utilisateur de créer des « événements » qui vont être stockés localement sur l'appareil et envoyé sur le réseau . L'utilisateur peut interagir avec l'application à travers 2 activités: Une "NewEventActivity" qui lui permet de créer les nouveaux événements et une "LogbookActivity" qui lui permet de parcourir les événements créés précédemment.

  • Le stockage local doit être manipulé par une base de données SQLite

  • L'événement doit être envoyé dans un format binaire spécifique.

  • D'autres applications devraient pouvoir utiliser le composant d'envoi pour formater et envoyer d'autres types de messages dans le même format.

Ce dessin représente la façon dont je pensais organiser les composants. Les boîtes représentent les composants et les flèches représentent les interactions sans ces composants. alt text

Voici mes questions:

  • Est-ce que ce modèle regarde OK? Pouvez-vous voir quelque chose qui pourrait être amélioré?
  • Mon SQLiteHelper doit-il être un ContentProvider ou un ContentResolver?
  • Dois-je créer une classe BroadcastReceiver par type de signal ou dois-je créer un grand BroadcastReceiver qui gère tous les types de signaux que mon application peut gérer?

Merci beaucoup!

Répondre

0

Quelques suggestions pour simplifier la conception:

  • Si EventWriter et EventReader interagir uniquement avec l'activité due à l'interaction directe de l'utilisateur, ils ne doivent pas nécessairement être BroadcastReceivers. En fait, ils pourraient juste être des méthodes dans les activités.

  • Selon la façon dont vous choisissez quand envoyer des événements, vous pouvez aussi factoriser MessageFormatter et Sender dans un IntentService qui interrogent régulièrement le fournisseur de contenu et choisir des morceaux de données à envoyer. Vous pouvez programmer le IntentService via des alarmes.

Si mon SQLiteHelper un ContentProvider ou un ContentResolver?Il devrait implémenter ContentProvider (car il donne accès aux données)

Dois-je créer une BroadcastReceiver classe par type de signal, ou devrais-je créer un grand BroadcastReceiver que gère tous les types de signaux ma demande peut gérer?

Je penche pour un récepteur par type de signal, mais ce n'est vraiment qu'une préférence.

+0

Merci pour vos réponses. EventWriter et EventReader sont des méthodes des Activités en ce moment, je veux les dissocier car mon application est en réalité plus complexe, et j'ai plusieurs activités qui l'utilisent. (et peut-être dans le futur cela devrait être disponible à partir d'autres applications). Les événements doivent être envoyés en temps réel, donc je ne peux pas utiliser IntentService. – nbarraille