Jak najlepiej ustrukturyzować aplikację na Androida?

26

Zaczynam nową aplikację na Androida. Jakiej struktury najlepiej użyć?

Planuję uczynić to projektem wielopakowym w następujący sposób:

  1. Pakiet główny, w tym działanie
  2. Warstwa usług i danych
  3. Pakiet jednostek, w tym klasa jednostek.

    Jakakolwiek rada ?

Basbous
źródło
Dobry: blog.smartlogic.io/2013/07/09/…
Yousha Aleayoub,

Odpowiedzi:

11

Po pierwsze, zależy to od tego, jaką aplikację wykonujesz.

powinieneś zrobić tekstowy lub schematyczny opis tego, jak użytkownik będzie pracował z aplikacją. Napraw każdy możliwy scenariusz. Podaj przykłady, które zostaną później wykorzystane do testów.

Zdecyduj, co należy do funkcjonalności, a co - do zmiennej konfiguracji. Wyodrębnij funkcje i jednostki danych ze scenariuszy.

Ze scenariuszy podejmij decyzję, jaka będzie Twoja aplikacja. Czy to usługa, aktywność, widżet, a nawet dostawca treści czy złożony system, w tym niektóre inne elementy. Sprawdź swoją decyzję na podstawie scenariuszy.

W przypadku złożonego systemu rozdziel funkcje i jednostki danych między komponenty aplikacji. Sporządź listę składników i to, co to są (działania lub coś innego).

Zrób listę komponentów interfejsu użytkownika z opisem, co robią (jeszcze NIE JAK) Będą to widżety i działania, fragmenty lub układy później.

Twórz układy robocze dla komponentów interfejsu użytkownika. Wykonuj proste przejścia od jednego do drugiego. Spójrz na interfejs użytkownika. Wróć do scenariuszy i zagraj je wszystkie w swój szkic interfejsu użytkownika. Wszystkie komponenty interfejsu użytkownika i klasy umieszczone w jednej hierarchii pakietów lub pakietów.

Zrób listę jednostek danych. Zdecyduj, co będzie w czym. Zaplanuj je jako kolekcje lub tabele w DB lub różnych DB. Utwórz je jako klasy, umieść je w innej hierarchii pakietów lub innym pakiecie. Tutaj również umieść pomocników DB - klasy, które rozmawiają z DB przez SQL.

Utwórz klasy testowe (JUNITs lub lepiej TestNG) do wypełniania interfejsu użytkownika i jednostek danych danymi testowymi i uruchamiania ich.

Adaptery nie muszą być publiczne, ponieważ są używane tylko w nadrzędnym GroupView. Dlatego zwykle nie ma plików dla adapterów.

Czy nie wkładaj wszystkich globalnych do specjalnych klas statycznych - jest złą praktyką. Miksujesz więc kod i konfigurację. Skorzystaj z tego bardzo interesującego rozwiązania . Na razie jest to najlepsze, co wiem na Androida.

Dane konfiguracyjne należy umieścić w zasobach. Jeśli niektóre z nich są złożone, użyj źródeł XML i parsera (ów). Zmień czytelników danych zasobów w zmienne globalne. Nie wszystkie będą statyczne! Mogą na przykład należeć do głównej instancji Activity.

Nie używaj nieskonfigurowalnych stałych w kodzie! Może być tylko twoje imię :-). Każda stała czasami staje się niestała.

Z drugiej strony, jeśli niektórzy z was kod nie jest normalnym językiem Java, ale skrypty - mieszanką danych i języka, wtedy można i trzeba mieszać dane i kod.

Zawsze rób to: napisz coś - podłącz coś do luzem - dodaj test (y) dla tej nowej rzeczy - przetestuj ten nowy - przetestuj luz - powtórz. Tylko małe kroki!

Edytować. Możesz także użyć programowania opartego na testach - pisz testy przed odpowiednim kodem. W ten sposób, uruchamiając testy zanim kod będzie gotowy, przeprowadzasz podwójne testy - w ten sposób sprawdzasz, czy testy naprawdę reagują na niepoprawny kod.

Gangnus
źródło
7

Tak, łatwo jest to rozwinąć, jeśli klasyfikujesz rzeczy na podstawie ich pracy. Jesteś we właściwym kierunku. W Androidzie, jeśli opracuję aplikację, użyję następującej struktury, coś podobnego do ciebie

  1. Pakiet główny Z całą aktywnością ekranu
  2. Klasy adapterów, jeśli korzystam z ListView, GridView, które wymagają BaseAdapter itp
  3. Pomocnik analizujący, jeśli jest używany
  4. Baza danych
  5. Klasy encji i klasy do przechowywania zmiennych statycznych
  6. Serwis i odbiorca
Tofeeq
źródło