Wie lässt sich eine Android-Anwendung am besten strukturieren?


Antworten:


11

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

Sie sollten in Textform oder schematisch beschreiben, wie ein Benutzer mit der Anwendung arbeiten wird. Beheben Sie jedes mögliche Szenario. Schreiben Sie Beispiele auf, die später für Tests verwendet werden.

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

Entscheiden Sie anhand von Szenarien, wie Ihre App aussehen soll. Handelt es sich um einen Dienst, eine Aktivität, ein Widget, sogar einen Inhaltsanbieter oder ein komplexes System, einschließlich einiger verschiedener Komponenten. Testen Sie Ihre Entscheidung anhand von Szenarien.

Verteilen Sie bei einem komplexen System die Funktionalitäten und Datenelemente auf die Anwendungskomponenten. Machen Sie eine Liste der Komponenten und was sie sind (Aktivitäten oder etwas anderes).

Machen Sie die Liste der UI-Komponenten mit der Beschreibung, was sie tun (noch nicht WIE). Dies werden später Widgets und Aktivitäten oder Fragmente oder Layouts sein.

Erstellen Sie Entwurfslayouts für UI-Komponenten. Machen Sie einfache Pässe von einem zum anderen. Schauen Sie sich die Benutzeroberfläche an. Kehren Sie zu den Szenarien zurück und spielen Sie sie alle mit Ihrem Entwurf der Benutzeroberfläche ab. Alle Komponenten und Klassen der Benutzeroberfläche werden in einer Hierarchie von Paketen oder Paketen zusammengefasst.

Erstellen Sie eine Liste von Datenelementen. Entscheide, was in was sein wird. Planen Sie sie als Sammlungen oder Tabellen in DBs oder anderen DBs. Machen Sie sie zu Klassen, fügen Sie sie in eine andere Hierarchie von Paketen oder ein anderes Paket ein. Hier legen Sie auch DB-Helfer ab - Klassen, die über SQL mit DB kommunizieren.

Erstellen Sie Testklassen (JUNITs oder besser TestNG), um die Benutzeroberfläche und Dateneinheiten mit Testdaten zu füllen und diese zu starten.

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

Ordnen Sie nicht alle Globalen 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 aus Lesern von Ressourcendaten globale Variablen. Nicht alle von ihnen werden statisch sein! Sie könnten beispielsweise zur Hauptinstanz der Aktivität gehören.

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

Auf der anderen Seite können und müssen Sie Daten und Code mischen , wenn ein Teil Ihres Codes kein normales Java ist, sondern Skripte - eine Mischung aus Daten und Sprache.

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

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


7

Ja, es ist einfach zu entwickeln, wenn Sie Kategorien Sache auf der Grundlage ihrer Arbeit. Sie sind in die richtige Richtung. In Android, wenn eine Anwendung entwickeln, dann werde ich folgende Struktur verwenden, wird etwas ähnlich wie Sie

  1. Hauptpaket Mit allen Bildschirmaktivitäten
  2. Adapterklassen, wenn ich ListView, GridView benutze, die BaseAdapter etc. Benötigen
  3. Parsing-Helfer, falls verwendet
  4. Datenbank
  5. Entitätsklassen und Klassen zum Speichern statischer Variablen
  6. Service und Empfänger
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.