Witam wszystkich,
od niedawna uczę się programowania na Androida. Chciałbym wiedzieć czy w dobrym kierunku idę, dlatego proszę o ocenę mojego kodu. Jest to moja pierwsza 'poważniejsza' aplikacja - rozbudowana wersja klasycznego todo . Z góry dziękuję za wszystkie konstruktywne uwagi
http://github.com/spideronelle/task-list
0
1
Przy następnym projekcie zadbaj o to aby od początku korzystać z gita. Stworzysz fajną historię tworzenia projektu, dodatkowo podszlifujesz swoje umiejętności gita, tworzenia commitów, branchy itd
Warto dodać krótkie readme o czym ten projekt właściwie jest i jak go ewentualnie odpalić u siebie
0
Dzięki za odpowiedź ;) readme już uzupełnione.
0
Główne minusy po szybkim przejrzeniu:
- Brak jakichkolwiek testów (zarówno UI - czyli pod
androidTest
- jak i jednostkowych, czyli podtest
). - Pomieszanie logiki biznesowej z warstwą interfejsową. Np.
NewTaskActivity
zajmuje się zarówno wyświetlaniem interfejsu i pobieraniem danych od użytkownika, jak i np. obsługuje mechanizm zapisu danych do bazy. Powinieneś pomyśleć o architekturze, która czytelniej rozdziela warstwy aplikacji i dba o utrzymanie zasady pojedynczej odpowiedzialności w odniesieniu do klas. Wypadałoby rozluźnić zależności między poszczególnymi partiami aplikacji, stosując abstrakcje. Obecny kod byłby trudny w utrzymaniu, niełatwo byłoby też napisać do niego testy jednostkowe. (Oto jedna z przyczyn, dla których warto je pisać - samo w sobie wymusza to czystą strukturę projektu). -
Loader
to przestarzały mechanizm. Możesz o tym przeczytać w oficjalnej dokumentacji: https://developer.android.com/guide/components/loaders - Wątpię też, czy uzasadnione jest użycie klasy
ContentProvider
. W zasadzie potrzebna jest ona tylko wtedy, gdy potrzebna jest wymiana danych pomiędzy różnymi aplikacjami. Czy tak jest w tym przypadku? - Powstrzymałbym się od wersjonowania folderu
.idea
, który zawiera cache twojego IDE itp. - Stosowana konwencja nazewnicza - "MyDBHelper", "MyContentProvider" - jest nieco rozczulająca ;) Nie jestem pewien, dlaczego autor nie wytrwał w niej konsekwentnie. Przy tak intensywnym poczuciu tytułu własnościowego do swego kodu spodziewałbym się bowiem analogicznie: "MyMainActivity", "MyTaskListFragment" itd.