Development blog #7: Pierwsze demo!
Co tu dużo mówić, postanowiłem w końcu wziąć się ostro do roboty no i efekty mojej pracy są widoczne gołym okiem… kto uważnie obserwuje fanpage bloga na Facebooku ten już pewnie wie o co chodzi ;)
Ale po kolei – jak pisałem trzy tygodnie temu w ostatnim „development blogu” postęp prac zaczął powoli posuwać się do przodu. Efektem takiego stanu rzeczy była cała masa różnych usprawnień organizacyjnych jakie byłem zmuszony wdrożyć bo kilku „nieudanych” sprintach. Oczywiście nie udanych w sensie tym iż nie udało się zrealizować wszystkich zaplanowanych tasków, a więc coś ewidentnie poszło nie tak, bo to przecież „development team” sam wybiera co do sprintu wchodzi i sam estymuje poszczególne zadania. Wyciągnąłem jednak solidne wnioski z moich poprzednich wpadek i jak widać był to strzał w dziesiątkę bowiem po obecnym sprincie jestem naprawdę zadowolony z efektów no i w końcu z tego, że mogę pokazać coś działającego.
Wreszcie coś co działa!
Kto nie pamięta to przypomnę, że moim zadaniem nad którym pracowałem było głownie zaimplementowanie mechanizmu umożliwiającego w sposób dynamiczny dodawanie graczy mających brać udział w rozgrywce. Przyznam szczerze, że miałem kilka koncepcji na zrealizowanie tej funkcjonalności, ale po krótkiej dyskusji z innymi osobami (między innymi przyszłymi użytkownikami aplikacji) wybrałem wariant nieco bardziej skomplikowany ale i zarazem bardziej atrakcyjny z punktu widzenia użytkownika. Chodziło między innymi o to, żeby zamiast deklarować na sztywno liczbę graczy, móc dodawać ich w sposób dynamiczny za pośrednictwem odpowiedniego przycisku. Domyślnie więc przyjąłem, że lista będzie zawierała 6 pozycji (to w sumie jeszcze pewnie będę modyfikował), a kolejne będzie można dodać lub skasować klikając w odpowiedni przycisk . Jak to wygląda w praktyce?
A no tak…
Gdyby się tak na to popatrzeć to w sumie cała funkcjonalność nie wygląda zbyt skomplikowanie, ale pracując nad tym projektem nie chodziło tylko o to, żeby coś zrobić i żeby to działało ale o to aby wszystko miało ręce i nogi, a szczególnie żeby kod wyglądał jakoś normalnie.
Co zostało?
Mechanizm dodawania graczy jest już zrobiony ale to nie koniec prac jakie zostały w związku z tą funkcjonalnością. Muszę jeszcze ogarnąć zapisywanie wprowadzonych danych oraz co najważniejsze dokończyć projektowanie całego systemu nawigacji po aplikacji. Jest to o tyle skomplikowane, że będzie dużo różnych ekranów, a wszystko to musi być sprytnie oprogramowane z zachowaniem podziału architektonicznego wzorca MVVM oraz frameworka MvvmCross. Na szczęście to zbliża się już do końca…
Krótka retrospekcja
Jak parzę na statystyki gita to muszę powiedzieć, że sam w to nie wierzę ale prawda jest taka, że w ostatnich kilku komitach przepisałem chyba całą aplikację, podpiąłem ok. dwudziestu nowych bibliotek oraz wywaliłem kilka tysięcy plików! Tak dobrze czytacie, kilka tysięcy. Jaki z tego wniosek?
Bardzo dużo rzeczy jakie zrobiłem przez te cztery pierwsze sprinty poszła po prostu w kosmos, doszło nawet do takiej sytuacji, że przez kilka merge’ów przepychałem jakieś stare pliki w sumie do niczego nie potrzebne, a które znalazły się przez przypadek w projekcie? Jak do tego doszło, szczerze powiedziawszy nie mam pojęcia, ale odkąd wziąłem się za zrobienie porządku z repozytorium i ogólnie z całym projektem to po prostu się przeraziłem jak taki – mówiąc kolokwialnie „syf” mógł wylądować na repo? I nie mówię tutaj o plikach-śmieciach, ale również o bibliotekach, które de facto nic nie robiły, a po ich usunięciu wszystko się sypało. Przywrócenie tego do stanu używalności zajęło mi ładnych parę godzin ale przynajmniej była to bardzo ważna nauczka dla mnie, żeby nie „olewać” review kodu i dokładnie sprawdzać to co chce się zatwierdzić.
Co dalej?
W dalszej kolejności zamierzam dopieścić to co już działa oraz przede wszystkim raz na zawsze zamknąć kwestię struktury kodu oraz nawigacji. W najbliższych dniach, a być może i w całym najbliższym sprincie będę zajmował się właśnie tym.
Pytania?
Jeśli macie jakieś pytania to tradycyjnie zapraszam do dyskusji w komentarzach ;)