Kilka tygodni temu, dokładnie 15 marca, miałem przyjemność uczestniczyć w szkoleniu zorganizowanym przez (jak się nie mylę) organizatorów Mobile Warsaw.

To co było naprawdę fajne, to to, że szkolenie iOS TDD Workshop odbywało się w weekend, prowadzący (szczerze, chciałbym móc wszystkich z imienia wymienić i podać linki do ich stron, ale pamiętam i znajduję tylko dwóch Wojtka i Pawła) poświęcili więc czas nam, zamiast innymi osobistymi sprawami, oraz to, że szkolenie było całkowicie za darmo. Tak za darmo, 8h szkolenia z pisania testów dla iOS.

Jedyną prośbą organizatorów było oddanie tych 8h pracą na rzecz community – blog posty, organizacja miejsca kolejnego spotkania Mobile Warsaw itp. Kompletnie szczerze, szacun za to organizatorom.

Ten post jest więc częścią spłaty długu jaki wziąłem na siebie uczestnicząc w szkoleniu :) I jest mi z tym dobrze :)

Trochę o szkoleniu

Tak jak wspomniałem, szkolenie odbyło się w sobotę i było skierowane do grupy ludzi, którzy jeszcze nie pisali UT albo chcieli by ciutkę się w tym podszkolić. Więc coś idealnie dla mnie :)

Podczas różnych sesji byliśmy wtajemniczani co to jest UT, jak powinno się pisać test, co to jest BDD, TDD, co to jest test integracyjny, test w izolacji itp. Ogólnie podstawy podstaw + kilka informacji o frameworkach do UT w iOS (i jak się konstruuje testy z wykorzystaniem ich). Z wiedzą jaką mam ze świata .NET nie było tutaj dla mnie dużo nowości, ale dla części ludzi biorących udział w szkoleniu była to nowość. Więc bardzo fajnie, że taki wstęp został wykonany, niezależnie od moich własnych odczuć.

Następnie przechodziliśmy przez kilka przykładów już napisanego kodu do którego mieliśmy napisać testy, jak i po prostu pustego projektu do którego za pomocą TDD mieliśmy stworzyć funkcjonalność.

Ta część podobała mi się o tyle, że jak wiadomo, praktyka czyni mistrza, więc warto było popisać sobie trochę dummy testów, tylko po to by przećwiczyć pewne opcje frameworka. Dodatkowo, podczas tych sesji, prowadzący uczyli skrótów klawiaturowych dla AppCode – więc w ogóle szacun. Czemu my tak nie uczymy się pisać w VS? tylko uczymy się Prawy Przycisk Myszy potem New potem myszką, potem klawiaturą potem myszka itd. Tutaj, uczyli nas jak pisać nie odrywając rąk od klawiatury – nie no, wyczes :)

To czego mi brakowało, to wprowadzenia jak stworzyć projekt i do niego dodać wszystkie wymagane referencje (pody). Więc jakbym miał teraz stworzyć nowy projekt i zacząć robić TDD to na pewno wujek google musiał by mi pomóc. W szczególności, że jeden projekt po prostu nie działał – jak się okazało wystarczyło go otworzyć w XCode, zapisać i zamknąć by śmigał w AppCode. Ale dlaczego to za cholerę nie jestem wstanie wam powiedzieć :) Kolejnym pomniejszym minusem było wykorzystanie domyślnie frameworka, który nie jest wspierany przez AppCode, przez co wyniki testów pokazywały się w konsoli od AppCode – trochę mało czytelne. Jak dobrze pamiętam to dopiero później nam powiedziano dlaczego, albo nie powiedziano, ale pokazano, że ktoś inny woli ten wbudowany framework w AppCode ;)

Pod koniec, mieliśmy dwie sesje, jedną bardzo fają drugą za pewne bardzo fajną gdybym był wstanie nadążyć. Zacznijmy od tej “gorszej”.

Jeden z prelegentów chciał nam pokazać jak za pomocą Unit Testów optymalizować i refaktoryzować aplikację by była ona bardziej przejrzysta i testowalna. Bardzo fajny pomysł na sesję i to, że został wykorzystany git do niej by pokazywać kolejne kroki też super – coś podobnego ostatnio robił Procent na sesji z IoC i DI. Problem tylko polegał na tym, że zmian co krok moim zdaniem było bardzo dużo i zacząłem się gubić co zostało zmienione, gdzie i dlaczego. Po prostu albo za mało znam Objective-C albo prelegent naprawdę grzał z materiałem i nie zatrzymywał się wystarczająco długo na kodzie.

Ostatnia sesja, to tak naprawdę była Kata – i tutaj robiliśmy pair-programming, ja pisałem test który robił fail, a mój kolega pisał kod do testu by test przechodził i test dla mnie. I tak w kółko. Super sprawa i przypomniały mi się konkursy programistyczne ze studiów :)

Całą imprezę zakończyliśmy przy piwie gadając o szkoleniu i ogólnie o naszej pracy.

Całość podsumowuje na 9/10 :) super sprawa, super inicjatywa i super zabawa :)

Z tego co wiem, to chłopaki myślą nad kolejną edycją eventu, już dla bardziej zaawansowanych – więc jeżeli jesteście zainteresowani, trzeba śledzić spotkania Mobile Warsaw. Polecam!

Warsaw IO

Na szkoleniu dowiedziałem się także o inicjatywnie rozpoczętej przez Wojtka i następnie rozwijaną przez community. Chodzi mianowicie o stronę webową która gromadzi linki do wszystkich grup i konferencji technicznych odbywających się/mających miejsce w Warszawie.

Więc jeżeli jesteście zainteresowani jakie grupy istnieją, jakie są nadchodzące konferencje, naprawdę warto zajrzeć na warsaw.io.

Jeżeli zaś nie znajdujecie tam informacji na temat waszej ukochanej grupy lub uważacie, że czegoś brakuje to do roboty, PR i zabawa trwa, a strona będzie coraz bardziej intersująca!

Podsumowanie

Naprawdę jestem super szczęśliwy, że takie inicjatywy mają miejsce i mają one miejsce w warszawie. Także dobrze wiedzieć, że i tutaj istnieją ludzie, którzy kochają community i chcą coś dla niego robić.

To jest po prostu zajebiste KROPKA :)