Wpis z mikrobloga

Cześć, próbuję nauczyć się dobrze programowania na Android. Ogarniam już działanie MVP. Teraz zabieram się za Dagger2 i Clean Architecture żeby tę wiedzę i umiejętności rozszerzyć, ale nie wiem czy mam jakieś braki mózgowe czy po prostu trzeba więcej czasu żeby to ogarnąć bo kiepsko idzie. Ile czytam artykułów i tutoriali to niby wiem o co chodzi, a w praktyce ciągle nie mogę zajarzyć (,) Jak myślicie? Próbować dalej czy to za duży przeskok póki co i spróbować jakichś pośrednich etapów jeszcze? Jeśli tak to co proponujecie?

#androiddev #programowanie
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Rubajticos: Na pewno nie nauczysz się czytając. Bardzo ciężko jest zrozumieć jakie problemy dane narzędzie rozwiązuje, jeśli się najpierw nie zderzyło z samymi problemami :) Odłóż może to na później i napisz jakąś większą apkę (najlepiej z kimś, żebyście nawzajem robili sobie code review), a potem do tego wróć mądrzejszy o doświadczenie.
  • Odpowiedz
@kao3991: Znaczy się coś tam już robiłem - oparte właśnie tylko na MVP. Może spróbuję po prostu oprzeć się na jakimś przykładowym projekcie i stworzyć jakiś swój :)
  • Odpowiedz
@Rubajticos: Nic dziwnego, że kiepsko Ci idzie, natrafiłeś właśnie na jeden z najcięższych do skumania tematów w androiddevie - dlatego, że Clean Architecture to jeden z najbardziej obszernych działów do ogarnięcia ogólnie w koderce, a Dagger2 i DI są ciężkie bo programiści Google'a to tumany niepotrafiące sklecić zrozumiałego tutoriala w tym temacie. To normalne, że powoli przestajesz pamiętać jak się nazywasz i wątpisz w swój intelekt, wszyscy przez to przechodziliśmy
  • Odpowiedz
@Rubajticos: naucz się programować obiektowo, potem reaktywnie a zmieni Ci się myślenie i podejście do programowania. Bo przypuszczam, że używasz MVP bo wypada a nie dlatego, że jest Ci to potrzebne (np. do testów, do wydzielenia abstrakcyjnych warstw itd.)
  • Odpowiedz
@Rubajticos: Btw, pisanie własnego projektu w MVP bez znajomości Daggera będzie troche dziwne IMO. Ani żadnemu rekruterowi nie zaimponujesz (szczególnie jak zobaczy konstruktory po 10 fieldów w aktywnościach), ani nie wykorzystasz potencjału tego wzorca.
  • Odpowiedz
@Rubajticos: Jak już będziesz w temacie i się zatniesz gdzieś, wyszukaj sobie na githubie projekty wg query "android mvp dagger" czy cos takiego. Znajdziesz dużo przykładowych implementacji i zobaczysz sobie, jak inni rozwiązali problem, z którym się mierzysz. Cały czas aktualnie z tego korzystam jak się przyuczam do iOS-devu :)
  • Odpowiedz
@Rubajticos: a piszesz testy? Bo w sumie wtedy bardzo dużo problemów wychodzi - jak masz masę zależności i testy puchną niemiłosiernie. Jak test ma więcej niż 10 linijek to czas się zastanowić czy nie powinno się podzielić testowanej funkcjonalności na mniejsze i automatycznie tworzy się więcej małych, specjalizowanych klas, puchną konstruktory prezenterów i bez daggera pisze się dużo niepotrzebnego kodu. Kiedyś byłem w tym samym momencie - znałem MVP ale nie rozumiałem po co pchać daggera - przykłady w artykułach mają zwykle po 2-3 klasy by były łatwiejsze i wtedy ciężko zrozumieć po co ten dagger. Ma się wrażenie że więcej się pisze konfiguracji daggera niż przy ręcznym tworzeniu obiektów. Dopiero jak się pisze większy projekt to dagger ułatwia.

Np. wyobraź sobie że masz ekran który wyświetla listę zakupów z datą dodania. Prezenter musi mieć dostęp do:
- repozytorium danych
- formatter daty
- preferencje (np. język,
  • Odpowiedz
@Rubajticos: jak już ogarniejsz CA i MVP i zrobisz jakąś poważną apkę to zobaczyć, że MVP jest gówniane na szerszą skalę. Jak zrobisz ekran, na którym dzieje się wiele rzeczy, szczególnie asynchronicznie to presenter puchnie niesamowicie szybko. Nie mówię już o testowaniu tego presentera. Powodzenia!

  • Odpowiedz
Jak zrobisz ekran, na którym dzieje się wiele rzeczy, szczególnie asynchronicznie to presenter puchnie niesamowicie szybko


@wfd: i na to wszystko lekarstwem jest CA, prawda?
  • Odpowiedz
@Mithrindil: No właśnie nie, to kolejna rzecz do ogarnięcia. Co prawda nie z takimi jak podałeś, nieco mniejszymi konstruktorami właśnie się spotkałem jak robiłem tę ostatnią aplikacje. Z artykułami dokładnie tak jak mówisz. Na tych prostych przykładach z nich rozumiem działanie, ale jak próbuję sobie przynajmniej wyobrazić coś większego to już mam mętlik w głowie. W każdym razie będę dalej działał :) Dziękuje za wyczerpującą odpowiedź :)
  • Odpowiedz
@wfd: Dobry argument (może nie w tej dyskusji akurat, ale zawsze) o bardzo słabej skalowalności MVP. Z ciekawości, czego teraz używasz? Zawsze mnie ciekawi, w którą stronę idą programiści, którzy są w stadium 'post-MVP' ( ͡° ͜ʖ ͡°)
  • Odpowiedz