it-swarm.com.de

Was ist der beste Weg, um eine Android -Anwendung) zu strukturieren?

Ich starte eine neue Android -Anwendung. Was ist die beste Struktur?

Ich plane, daraus ein Multi-Package-Design wie folgt zu machen:

  1. Hauptpaket, einschließlich der Aktivität
  2. Service- und Datenschicht
  3. Entitätspaket, einschließlich Entitätsklasse.

    Irgendein Rat ?

26
Basbous

Erstens hängt es davon ab, welche Anwendung Sie ausführen.

sie sollten eine textuelle oder schematische Beschreibung der Arbeitsweise eines Benutzers mit der Anwendung erstellen. Korrigieren Sie jedes mögliche Szenario. Schreiben Sie Beispiele auf, die später für Tests verwendet werden.

Entscheiden Sie, was zur Funktionalität gehört und was - zur veränderbaren Konfiguration. Extrahieren Sie Funktionen und Datenentitäten aus Szenarien.

Entscheiden Sie anhand von Szenarien, wie Ihre App aussehen soll. Ist es Service, Aktivität, Widget, sogar ein Inhaltsanbieter oder ein komplexes System, einschließlich einiger verschiedener Komponenten. Testen Sie Ihre Entscheidung anhand von Szenarien.

Verteilen Sie im Fall des komplexen Systems Funktionen und Datenentitäten auf Anwendungskomponenten. Machen Sie eine Liste der Komponenten und was sie sind (Aktivitäten oder etwas anderes).

Erstellen Sie eine Liste der UI-Komponenten mit einer Beschreibung ihrer Funktionsweise (noch nicht WIE). Dies sind später Widgets und Aktivitäten oder Fragmente oder Layouts.

Erstellen Sie Entwurfslayouts für UI-Komponenten. Machen Sie einfache Übergänge von einem zum anderen. Schauen Sie sich die Benutzeroberfläche an. Kehren Sie zu den Szenarien zurück und spielen Sie alle mit Ihrer Entwurfs-Benutzeroberfläche ab. Alle UI-Komponenten und -Klassen werden in einer Hierarchie von Paketen oder Paketen zusammengefasst.

Erstellen Sie eine Liste der Datenentitäten. Entscheide, was in was sein wird. Planen Sie sie als Sammlungen oder Tabellen in DBs oder verschiedenen DBs. Erstellen Sie sie als Klassen, fügen Sie sie in eine andere Hierarchie von Paketen oder in ein anderes Paket ein. Hier auch DB-Helfer - Klassen, die mit DB by SQL kommunizieren.

Erstellen Sie Testklassen (JUNITs oder besser TestNG), um Benutzeroberflächen- und Datenentitäten mit Testdaten zu füllen und diese zu starten.

Adapter müssen nicht öffentlich sein, da sie nur in ihrer übergeordneten GroupView verwendet werden. Also normalerweise keine Dateien für Adapter.

Setzen Sie nicht alle Globals in spezielle statische Klassen ein - es ist eine schlechte Praxis. Sie mischen also den Code und die Konfiguration. Verwenden Sie diese sehr interessante Lösung . Im Moment ist es das Beste, was ich für Android kenne.

Konfigurationsdaten sollten in Ressourcen gespeichert werden. Wenn einige davon komplex sind, verwenden Sie XML-Quellen und Parser. Machen Sie Leser von Ressourcendaten zu globalen Variablen. Nicht alle von ihnen werden statisch sein! Sie könnten beispielsweise zur Hauptaktivitätsinstanz gehören.

Verwenden Sie keine nicht konfigurierbaren Konstanten im Code! Vielleicht nur dein Name :-). Jede Konstante wird manchmal nicht konstant.

Auf der anderen Seite können und müssen Sie Daten mischen, wenn einige von Ihnen kein normales Java sind, sondern Skripte - eine Mischung aus Daten und Sprache und Code.

Tun Sie dies immer: Schreiben Sie etwas - verbinden Sie etwas mit einer Masse - fügen Sie Tests für diese neue Sache hinzu - testen Sie diese neue - testen Sie die Masse - wiederholen Sie. Nur kleine Schritte!

Bearbeiten. Sie können auch die testgetriebene Entwicklung verwenden - schreiben Sie Tests vor dem entsprechenden Code. Wenn Sie Tests ausführen, bevor der Code fertig ist, haben Sie doppelte Tests. Auf diese Weise prüfen Sie, ob die Tests wirklich auf falschen Code reagieren.

11
Gangnus

Ja, es ist einfach zu entwickeln, wenn Sie Dinge auf der Grundlage ihrer Arbeit kategorisieren. Sie sind in der richtigen Richtung. Wenn Sie in Android eine Anwendung entwickeln, verwende ich die folgende Struktur, etwas wird Ihnen ähnlich sein

  1. Hauptpaket Mit allen Bildschirmaktivitäten
  2. Adapterklassen, wenn ich ListView, GridView verwende, die BaseAdapter usw. Benötigen
  3. Analysehilfe, falls verwendet
  4. Datenbank
  5. Entitätsklassen und Klassen zum Speichern statischer Variablen
  6. Service und Empfänger
7
Tofeeq