Wpis z mikrobloga

Pytanie do #androiddev, jakie wzorce stosujecie w programowanu apek na Androida
MVP? MVVM? MVC?
I czy korzystacie z bibliotek typu Dagger, albo innych Dependency Injection? RxAndroid? ButterKnife itp?
  • 13
@mdfk: to jest bardziej kwestia wydłużonej kompilacji. Z takiej klasy z adnotacjami generowana jest ta z której korzystasz właściwie i ona zawiera już pełen kod. Ten przykład z głównej wisi bardzo długo ja połowy rzeczy tam nie korzystam ale mają tego sporo.
@niezielony: AndroidAnnotations generuje gotowy kod klas na podstawie adnotacji (nie wiem czy tak się tłumaczy annotation). Przez co jak np. chcesz uruchomić aktywność to do jej oryginalnej nazwy musisz dodać "", np.

LoginActivity_.intent(this).start();
Generacja tego kodu odbywa się podczas kompilacji.
Butterknife generuje dodatkowy kod, który jest wykonywany na

Butterknife.blind(...)
Odwołując się do klas używamy dzięki temu tych samych nazw.
Troszkę pomyliłem, bo w wypowiedzi myślałem jeszcze o RoboGuice, który "czyta"
@zakopywywacz: A do czego Ty jesteś przekonany najbardziej? AndroidAnnotations i RoboGuice nigdy nie używałem, póki co ButterKnife wydaje mi się wystarczający, ale jeśli to ma jakieś względy wydajnościowe, to może warto przerzucić się na coś innego.
@mdfk: Każdy większy projekt opieram o Dependency Injection. Bez tego szybko zrobi się burdel. Polecam bibliotekę Dagger 2.

Ostatnio każdy projekt robię według założeń Clean Architecture i MVP. Pozwala to na łatwą skalowalność i przede wszystkim oddziela logikę działania od widoku (pozwoliłem sobie zajżeć do Citify i tam macie wszystko pomieszane, później będzie z tym problem).
Wiem, że to mocne słowo, ale Clean Architecture w połączeniu z RxJava jest w zasadzie
@siemanko: Dzięki za konkretną odpowiedź.
Interesowałem się sporo MVP i RxAndroid, ale koniec końców nie byłem przekonany. Po Twojej wypowiedzi może bardziej się w to wgłębie. Głównym powodem, dla którego w to nie wchodziłem, było to, że kod w przykładach nie wydawał się czystszy i bardziej czytelny od standardowego.

Z tych bibliotek co wymieniłeś to ja zamiast ORMLite korzystam z Realm, jest szybszy i wygodniejszy (no chyba, że trzeba zrobić migracje
@mdfk: Co do RxJavy to też miałem ten sam problem. Java 8, albo Retrolambda sprawia, że kod jest o wiele czytelniejszy. Problemem jest też trochę inne podejście, które w pierwszym kontakcie może robić mętlik. Jednak podczas nauki przychodzi taki moment, w którym człowiek zmienia sposób patrzenia na kod i wszystko staje się jasne.
Dodatkowo warto się w to zagłębić z tego powodu, że aktualnie to jest to jeden z głównych tematów