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
  • Odpowiedz
@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.
  • Odpowiedz
@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
  • Odpowiedz
@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.
  • Odpowiedz
@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 lekiem na wszystkie moje bolączki architektoniczne w Androidzie.
Tu jest przykładowy projekt. Ja osobiście trochę tę implementację podrasowałem i pozwoliłem prezenterom na używanie więcej niż jednego use case. Dodatkowo stworzyłem możliwość przekazywania parametrów do
  • Odpowiedz
@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ć
  • Odpowiedz
@mdfk: Do baz jest jeszcze ActiveAndroid, również prosty i nawet przyjemny.
@siemanko, Od czego powinienem zacząć, jeśli chciałbym się nauczyć RxJavy? Chodzi tutaj głównie o samą ideę programowania funkcyjnego?
  • Odpowiedz
@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 w świecie Android i nie tylko. Coraz więcej będzie powstawać projektów/bibliotek, które z tego korzystają, więc prędzej czy później będzie trzeba ten temat zgłębić.

Odnośnie bibliotek do testów to muszę się przyznać, że temat ten traktuję trochę po macoszemu. Nie znaczy to, że nie piszę ich, bo zawsze staram się mieć pokryte najwrażliwsze elementy. Jednak jest to dalekie od ideału. Z bibliotek, z których najczęściej korzystam to JUnit i Mockito.

@niezielony: Tak, głównie chodzi o ideę. Na szczęście Pocket ma taką funkcję jak archiwum i mogę podać Ci wszystkie materiały, z
  • Odpowiedz