A Vivaldiego 11

Apr 17, 2026 20:43 · 1:10:55 · Polish · Whisper Large V3 · 4 speakers
Bu transkripiň möhleti geçýär 8 günler Daşyndan gaýd etmek üçin täzele →
Diňe görkez
3:14
S… Speaker 1 (A Vivaldiego 11)
Chodzi? Niedobry. A to pan Paweł. Myślę, że pan Mateusz na było napisane. No co? Okej, też super. Tak, tak. Lecimy. Tak jest. Drugi monitor może włączę. Gdzie on się znajduje? W czacie. Okej. Przerzucę tutaj. Pan nalewy ekran. Jasne. Pokaż.
5:00
S… Speaker 2 (A Vivaldiego 11)
Mhm. Jasne. Ja tak, tak jak miałem. Mhm. No to... Nawet zrybiły rak ryba na taki staż był dostępny akurat. Ciężko z tymi stażami było, bo to na studiach. To jest mój natywny język, tak jak polski. Mogę powiedzieć. Tak, ja naprawdę mam, ja jestem naprawdę z tym obeznany. Tak. Mhm. Mhm. Mhm.
6:57
S… Speaker 1 (A Vivaldiego 11)
Ok, ja mogę powiedzieć, jakbym zrobił tak faktycznie, niż teoretycznie. Faktycznie to bym po prostu wrzucił do takiego programu, do takiej strony QuickType.io i tam bym miał od razu jakby to napisane jakby, nie? Od razu by te kodniki się zrobiły, jakby były trzeba, tu nie trzeba, bo nie ma żadnych tych snajków. Więc tak bym zrobił, ale oczywiście umiem też zrobić to samodzielnie. Więc tak jest, więc tu mamy jakieś data.
7:27
S… Speaker 1 (A Vivaldiego 11)
OK. No dobra, tutaj lecimy. My musimy to zdekodować, więc zrobimy sobie decoder, no i teraz robimy decoder. Oczywiście ta funkcja decode, ona tam wrzuca różne wyjątki, więc ja sobie tutaj zrobię to let.
8:05
S… Speaker 1 (A Vivaldiego 11)
Mam stworzyć ten, na sumie stworzę sobie klasę, bo to szybko tutaj lecę. Z trakta właściwie zrobimy sobie... Ja lubię pisać na przykład... Ja lubię pisać internal, bo to wtedy jest wiadome, że taka jest jakby kontrola dostępu do tego. Chociaż to się jakby pomija często. Nie trzeba tego pisać, oczywiście, że tak. Tylko, że...
8:34
S… Speaker 1 (A Vivaldiego 11)
wiadomo, żeby nie było tych kontrowersji, tutaj mamy tego, to ja bym tutaj, to może najpierw zrobię user po prostu, tak, i tu bym zrobił jakiś pol, np. id, tu widzę, że to jest int, a nie jakiś uid, więc po prostu int, tu oczywiście zapomniałem się skonformować, ja tu od razu się do codables konformuje, tutaj zrobimy jeszcze, oczywiście taka floka nie trzeba, ale to samo mi robię, tam trzeba pominąć to,
9:11
S… Speaker 1 (A Vivaldiego 11)
Jasna sprawa, więc... Mhm. Mhm, dobra. No i coś takiego nam powinno wystarczyć, ale nie do końca, bo to jest tylko jakby liczba pojedyncza. Ja często se... Na przykład lubię... A nie, bo to jest users. No to sobie zrobię jeszcze jeden typ. Na przykład... A z ciekawości, czy państwo używają w konwencji swojej hintermali? Okej, no to ja to usunę. Ja wiem, ale...
9:47
S… Speaker 1 (A Vivaldiego 11)
Bo na przykład mój mentor używa w jego firmie. Tak, tak, tylko chodzi o to, że niby czystość, nie? Że tam jakby jasne, czy tam jest jakiś tam private, czy co? Mhm. Okej, no dobra, no to coś takiego mamy.
10:00
S… Speaker 2 (A Vivaldiego 11)
users. OK. Let users user. No i tutaj już możemy przystąpić do decoder. Oczywiście zapomniałbym users try decoder decode. Nie wiem, czy dobrze powiem. Teraz muszę typ podać, więc podałbym users. Chyba self było. Chyba self, tak.
10:38
S… Speaker 1 (A Vivaldiego 11)
No i tutaj bym te data podał. No i prawdopodobnie to by było już tym typem users. Tak, dokładnie ma Pan rację, jak najbardziej. To by było, ja bym to oczywiście zrobił tam trycatcha, czyli docatcha. No i to zrobimy tak naprawdę. Catch, no i tutaj
11:22
S… Speaker 1 (A Vivaldiego 11)
Pewnie będzie ten decoding error jakiś, więc najlepiej sobie tutaj jakoś to sprintować. Ja tam rzadko używam tych catch'y, bo ja używam częściej takiego result patternu, bo uważam, że on jest taki czystszy. Można tam fajnie od razu wpisać, jaki error jest zwracany dokładnie typ, a nie tutaj właśnie sprawdzać. Okej, no i tutaj, no i tutaj już byśmy mieli faktycznie tych usersów, a tutaj to sobie.
12:02
S… Speaker 1 (A Vivaldiego 11)
na ekranie, że okej, jasne, no to ja bym, ja jestem znany właśnie lepiej z tym UI, ze Swift UI, więc zrobię to w CTY, więc najprawdopodobniej miałbym po prostu taki serwis do fetchowania z API.
12:25
S… Speaker 1 (A Vivaldiego 11)
i miałbym do niego, właściwie stworzyłbym w sumie ten obiekt, bo mi wystarczy, żeby to był właśnie struct, ten serwis. No i potem w moim view modelu, który byłby final class, jakiś tam my view model, który się konformuje do observable object, no to tam miałbym ten serwis.
12:48
S… Speaker 1 (A Vivaldiego 11)
No i z poziomu view modelu miałbym tam funkcję, która fetchuje sobie w tym serwisie, z tego serwisu. No i następnie bym załadował fetchowane dane do mojego modelu, do mojego view modelu. No i oczywiście musiałbym to zrobić na głównym wątku, bo audytujemy UI. Tutaj jest takie równaść, to niepotrzebne mi się wydaje.
13:21
S… Speaker 1 (A Vivaldiego 11)
To jest computed property. Okej, tu mamy tak, users, czyli nasi użytkownicy. Bez robienia view modelu, tak? Po prostu to wyświetlić, tak? Dobra, jasne, jasne. Musiałbym jeszcze, bo for each, taki views for each w tym SwiftUI, on jeszcze wymaga sobie, żeby skonformować to do identifiable, nie? Tę kolekcję usersu, więc najprawdopodobniej
13:57
S… Speaker 1 (A Vivaldiego 11)
Tak, możemy tutaj zrobić. Nie wiem, czy literówki nie zrobiłem. Nieważne. Szczerze, to chyba nie tutaj. Zrobiłbym to bardziej tutaj. No i tutaj... To chyba się tutaj gryzło mi się wydaje, bo jakby w tym protokole tą nazwę współdzieli się. Więc...
14:29
S… Speaker 1 (A Vivaldiego 11)
Tak, bo tam id w tym... Tak. Może być, może być. Chodzi mi tylko, że nie pamiętam, czy to może być letem, czy musi być varem. O tym tylko chodzi. Okej, to super. Dobra, to tak by było. No i tutaj bym zrobił for each. I teraz tak, users id dwóch kropek. No i tutaj kipacha bym użył.
15:00
S… Speaker 1 (A Vivaldiego 11)
że się konformujemy do identifiable to nie trzeba, bo tak naprawdę nie musiałbym tego w ogóle robić, tylko po prostu użyć selfa, ponieważ to jest struct, te usery, no ale tutaj bym zrobił po prostu user in, no i tutaj, ale najpierw by to opakował jakiegoś stack'a, bo sam for each to powiedzmy sobie, że zrobiłbym to jakimś scroll view, domyślnie scroll view jest
15:34
S… Speaker 1 (A Vivaldiego 11)
Jest vertical. Tak, jest tam taki konstruktor właśnie, tak jak foreach. Po prostu może być taka okazja, że nie pasuje nam te domyślne layouty z tej listy. Ja wiem, że to można tam zmieniać w tych wszystkich stylach, ale to jest trochę zabawy tymi wszystkimi marginesami w tej liście, ustawienia na play w stylu tej listy.
16:01
S… Speaker 4 (A Vivaldiego 11)
Oczywiście można, ale to też jest jakieś rozwiązanie, którego właśnie skorzystam często. Okej, no tutaj te intonacje, wcięcia to sobie pominiemy. Okej, no i tutaj jeszcze, no i tutaj trzeba nam się zbić. To sobie ze szybkiego hstaka z jakimiś tam własnościami. Pewnie, że id sobie pominiemy, bo to nie jest coś, co użytkownik musi widzieć. No to robimy po prostu username.
16:35
S… Speaker 4 (A Vivaldiego 11)
No i tekst user age. Oczywiście to jest jako int, więc na pewno nie bym po prostu zrobić taką interpolację sobie, czyli po prostu z nawiasie string robić. Po prostu tak lubię robić sobie. No i tutaj mam domyślny spacing 8 na tym age stacku, więc trzeba o tym pamiętać, że się dziwi, że jest jakiś odstan. Mhm, okej. Jasne, no ale coraz wiele aplikacji odrzuciłem. Nawet takie się...
17:18
S… Speaker 3 (A Vivaldiego 11)
Powiedziałbym średnio zamasowane. Sweet jest właśnie idealnym takim przedstawicielem nowoczesnego języka. Ma taką prostą składnię, bez tych właśnie średników. Typy są właśnie po dwukropku. Jakie jest klucz tego pytania? Od pana muszę się zastanowić. Czemu...
17:57
S… Speaker 2 (A Vivaldiego 11)
Aha, no bo to znacznie czystsze podejście, wysokopoziomowy język, który się nie skupia aż tak na tych wskaźnikach, ponieważ posiada takie rzeczy jak właśnie odśmiecacz, automatic reference counter, no właśnie ten automatic reference counter, że on tego właśnie zlicza te referencje, no jak jest licznik główny zero, no to wtedy jest to z pamięci odrzucane. Jasne.
18:37
S… Speaker 2 (A Vivaldiego 11)
Jasne, że w Swifcie jest tak, że gdy mamy value type, którym jest na przykład struct albo enum, no to gdy przypiszemy sobie tą zadeklarowaną zmienną, czyli na przykład mamy let, ktoś napisze let a, jakiś tam struct, zrobimy sobie let b zrównę a, no to wtedy
19:08
S… Speaker 1 (A Vivaldiego 11)
nawet jeśli zmienimy jakoś na przykład za pomocą mutating functions tb, no to wtedy nawet jak sprintujemy to add, no to ono pozostanie bez zmian, bo każdym razem, kiedy robimy przypisanie, no to...
19:23
S… Speaker 2 (A Vivaldiego 11)
kiedy robimy przypisanie, no to robimy kopię tego typu, albo gdy przekazujemy to do funkcji, to też właśnie robimy kopię tego structa, więc jest to też wydajna forma struktury w Swifcie, ponieważ nie musimy bawić się w ARC, kiedy mam takiego structa, nie ma żadnych tych... copy on write, no dokładnie tak chciałem powiedzieć. No tak właśnie, okej. Czyli jakbym...
20:02
S… Speaker 1 (A Vivaldiego 11)
No a referencje to, to bym jeszcze po prostu, nawet jakby się przypisało to, a to jakbym zmieniał, a to by się to będzie też zmieniło. Chodzi po prostu o wydajność. Zacznijmy od wydajności. Jeśli chodzi o wydajność, no to...
20:32
S… Speaker 2 (A Vivaldiego 11)
Strakty są, jeśli nie zawajaram jakichś dziwnych typów, no to one są wtedy przychowane domyślnie na stosie, a klasy są na stercie, ponieważ one są typem referencyjnym i to po prostu nie wiadomo jaki ten rozmiar będzie końcowo takiej klasy. No i plus właśnie, jak wspomniałem, ten ARC nie ma miejsca na strakcie, więc nie musimy tego zliczać. Myślę tutaj, że jest jakaś tam oszczędzona wydajność pewna.
21:01
S… Speaker 1 (A Vivaldiego 11)
No, takie główne rzeczy właśnie, jakie wspomniałem. OK. Mhm. Jasne. Znulka? Jest tak. RC jest mechanizmem w języku Swift polegającym na zliczaniu referencji w celu automatycznego zwalniania pamięci, jeśli taki licznik by wyniósł zero. No i...
21:32
S… Speaker 2 (A Vivaldiego 11)
Teoretycznie można pomyśleć, że fajny pomysł, tylko gdzie to ma wady. A na przykład wady są takie, że gdybyśmy mieli taką sytuację, w której dwa obiekty miałyby referencję do samego siebie, to jeśli na przykład trzeci obiekt by zwolnił referencję do jakiegoś tam drugiego, no to one byłyby w tak zwanym retained cycle, gdzie każdy obiekt by wskazał na siebie z pomocą silnego wiązania, no i nigdy by się nie zwolniły.
21:58
S… Speaker 2 (A Vivaldiego 11)
Na ratunek przychodzą takie keywordy, takie jak weak and unknown, gdzie weak to jest optionalem i gdy ustalamy wartość, gdy ustalamy, gdy dajemy referencję na zmienną, która ma ten keyword weak, no to nie zwiększamy tego reference countera.
22:24
S… Speaker 2 (A Vivaldiego 11)
tak samo z Anną, tylko że ten Anną od razu jest właśnie jakoś zanwrapowany, jest typu zwykłego. No i najczęściej to się spotyka właśnie na przykład w UI-kicie, kiedy używamy delegate patternu. Tam robimy coś takiego jak wigwar delegate, no i nazwa na przykład tego delegata.
22:46
S… Speaker 1 (A Vivaldiego 11)
No i dzięki temu możemy się cieszyć dwukierunkowym przesyłem danych i też, że nie będzie żadnego wycieku w pamięci. No to stanie się nilem po prostu, jeśli to jest wik. Dlatego to jest szansa, że się właśnie taki program skraszuje, jeśli jest unknown. Więc trzeba na to uważać. Dlatego ja zawsze domyślnie jednak używam w tych capture listach, w declosureach. Używam jednak wika i tam robię sobie po prostu guardlet self.
23:29
S… Speaker 2 (A Vivaldiego 11)
Elzy Returnal. Takie to jest w miarę bezpieczne podejście. Optional tak naprawdę underhood to jest enum, który ma associated typy. No i właśnie tak sobie robię często, że w mojej archyturze, że jeśli mam jakiś enum, to zamiast robić specjalnie typ non sobie, to po prostu robię, że mam optional i mój customowy enum.
23:53
S… Speaker 1 (A Vivaldiego 11)
I tam po prostu robię, na przykład równa się non. Tylko, że to nie jest non z mojego enuma, tylko to jest non z optionala. Mogę tak zrobić i to jest w miarę przejrzysta składnia jak dla mnie. Więc tak sobie robię. No i ten optional jest faktycznie tym enumem. No i są różne jakby opcje, żeby go zanwrapować. Właśnie taki cukier syntaktyczny, który został dodany w Swiftie. Jasne, jasne, tak. Nawet zrobiłem taką aplikację, która...
24:36
S… Speaker 2 (A Vivaldiego 11)
Ona jakby fetchowała, co prawda z API, więc nie była jakaś tam skomplikowana, ale pierwsza część jej nie była skomplikowana, no bo ona fetchowała jakby receptury z książki kucharskiej z internetu. Po prostu się podawało te składniki, no i się fetchowało. I w tej samej aplikacji, zrobiłem ogólnie ładnie UI taki, żeby się scrollowało, żeby tam się zamykało, jakiś blur się pojawiał. Jakieś tam lisnąłem sobie UI-a w tym UI-kicie.
25:00
S… Speaker 1 (A Vivaldiego 11)
No i drugą częścią tej aplikacji było to, że ja sobie wytrenowałem u siebie lokalnie na komputerze model tego, klasyfikacyjny. Wziąłem tam z ImageNet'a jakieś tam, chyba tam po kilkadziesiąt zdjęć na kategorie, czyli na na przykład tam ziemniaki, na kuchenne te przybory. Ziemniaki, nie, tam, wiadomo, marchewki, jakieś tam.
25:26
S… Speaker 1 (A Vivaldiego 11)
czosnek, no i tego. No i postarałem się zrobić coś takiego, że przy użyciu frameworku Vision, żebym tego, ja robił zdjęcia sobie iPhone'em, no i tam mi pokazywało, czego zrobiłem zdjęcia. Czyli na przykład zrobiłem, że czy czosnku zrobiłem zdjęcia, czy na przykład marchewki. No i potem na podstawie tego bym przechodził dalej i wyszukiwał receptury, do których brakuje mi najmniej składników.
25:55
S… Speaker 2 (A Vivaldiego 11)
w tym API, więc takie coś zrobiłem. Wipijcie. Na pewno...
26:07
S… Speaker 1 (A Vivaldiego 11)
Tak, no na pewno SwiftUI jest jakby, szybciej zrobi się więcej w takim Swiftcie UI, to bym mógł powiedzieć. Oczywiście czasami trzeba się cofać do tego UI-kita za pomocą np. takiej konstrukcji jak UI view representable, bo nie wszystko jest jeszcze zaimplementowane w Swiftcie UI, no ale wierzę, że w przyszłości ten SwiftUI będzie w stanie znakomicie to zastąpić, przynajmniej w znakomitej większości.
26:31
S… Speaker 1 (A Vivaldiego 11)
No ja bym powiedział, że jeśli chce się mieć taką... Właśnie są jeszcze takie rzeczy, takie na przykład ja nie lubię na przykład scroll view w tym Swiftie UI, jest to bardzo takie prymitywne i na przykład nie wiadomo często na przykład ile jest offsetu od scrolla i tak dalej, no to jest jeszcze pole do naprawy mają panowie z Apple'a. Więc ja bym powiedział...
26:55
S… Speaker 1 (A Vivaldiego 11)
Tak. Ja używałem czegoś takiego frameworka, którego się nie powinno używać, zresztą właśnie biblioteki, których się nie powinno używać, taki introspekt się nazywa, SwiftUI, więc to takie trochę niebezpieczne jest używanie tego. No ale to tak naprawdę to trzeba byłoby zrobić po prostu jakiś tivue presentable, no i tam to odpowiednio rozważyć po prostu. Tak.
27:19
S… Speaker 1 (A Vivaldiego 11)
Tak, ja wiem, że to można jakby też za pomocą tych geometry readerów obsługiwać te offsety. Ja zrobiłem nawet takiego klona Photoshopa, który całego tego faktycznie używał tych geometry readerów. Nie skończę, że w cztery miesiące spędziłem takiej aplikacji, no ale tak, no kojarzę.
27:52
S… Speaker 1 (A Vivaldiego 11)
Tak, dokładnie. Ja preferuję właśnie, żeby w kodzie robić te constraints, no bo gdybyśmy to robili wszyscy w tym jednym storyboardzie, no to potem były pewne jakieś merge-konflikty, które by się mogły pojawiać, gdybyśmy to w jednym pliku robili. Ja używam tego. Czasami się trzeba męczyć, żeby pisać zawsze te translates, auto-tether-sizing, maxing constraints, no to tam trochę męczy to.
28:13
S… Speaker 1 (A Vivaldiego 11)
ale są do tego jakieś inne frameworki, czy tam biblioteki, żeby to tam zniwelować w TVI-kicie, na przykład ten snapkit czy time constraints. No i tam ja ogólnie w kodzie aktywuję sobie te constraints, no i mam miarowe wyobrażenie, jak to się robi po prostu.
28:45
S… Speaker 1 (A Vivaldiego 11)
Tak, jasne. No to ja korzystałbym właśnie z takiego zestawu narzędzi funkcji, które jest zbudowane w języka Swift, który się nazywa Swift Konkurencji. Jeśli mówisz o tym, że mamy wielowątkowość, no to użyłbym takich konstrukcji jak właśnie AsyncLED, który pozwala nam na...
29:07
S… Speaker 1 (A Vivaldiego 11)
zadeklarowanie tych tasków. No i potem możemy je jednocześnie wykonać, na przykład jak w krotce możemy ich wartość dostać i to się jednocześnie wykonają się te operacje, te taski. Albo możemy użyć coś, czego ja w sumie zawsze używam niż litych asyncletów, czyli with group task. No i tam po prostu tworzymy sobie taką grupę tasków.
29:30
S… Speaker 1 (A Vivaldiego 11)
I następnie potem w naszej asynchronicznym sequence sobie iterujemy po tej liście i otrzymujemy nasze rezultaty. Możemy użyć takiego multifreading. Możemy puszczać po prostu te taski z ręki.
30:00
S… Speaker 1 (A Vivaldiego 11)
Grat Center Dispatch, tak. Tam jest jakby poziom niżej. Tam są takie konstrukcje jak Dispatch Queue, jak na przykład Main Async albo Global, Quality of Series i tak dalej. Tak jest, dokładnie. To nowe zadanie po prostu tego utworzy. Co nie zadanie, tylko po prostu tego. No jakby nowy wątek to utworzy, tak?
30:57
S… Speaker 1 (A Vivaldiego 11)
Nie chcę mówić z pewnością całą, ale działa na takiej pewnej zasadzie, która do cudzenia tego przypomina. No bo robi się to jakby synchronicznie, jakby się robią narasta rzeczy. To nie jest tak, że ja muszę czekać, jak się jeden, drugi zrobi. Więc raczej chyba tak, nie? Chyba nie do końca. Ja się kojarzę, ale nie wiem, co stanie o tym powiedzieć. No na przykład chodzi Państwu, że chodzi Ci, że MB wiem, czy na przykład monolit, czy...
31:57
S… Speaker 2 (A Vivaldiego 11)
Okej, no to ja znam np. MVVM, który właśnie używam domyślnie w Swiftie. Polega on na tym, że nasz widok ma referencję do tego view modelu i właściwie do pól tego view modelu. A ten view model ma za zadanie właśnie zmieniać stan swój, tego widoku.
32:27
S… Speaker 2 (A Vivaldiego 11)
one są jakby zbindowane ze sobą, akurat w tym z COUI, więc zmiana pola w Vue modelu od razu zrobi zmianę UI-a. Tak, no i oczywiście tak jest, dokładnie tak, więc o tym właśnie w bindingu mówię. No i jako published wartości powinien być używany model w takim Vue modelu.
32:54
S… Speaker 2 (A Vivaldiego 11)
Tak, i mamy jeszcze MVC, który służy, że mamy jeden duży właśnie ViewController i do niego właśnie podpięty model. Właśnie wadą jest to, że jest właśnie duża ściena tekstu u niego często. No i robi się naprawdę duże pliki czasami po kilkaset linii. On jest takim jakby prekursorem tego bym powiedział MVC.
33:20
S… Speaker 2 (A Vivaldiego 11)
później po prostu ludzie przeszli na to MVVM, jeszcze jest MVP, który ma prezentera i jego zadaniem to nie jest tak, że jest binding widoku tego właśnie prezentera, tylko prezenter jakoś tam o metodę delegata, która w tym widoku potem zmienia na przykład te pola.
33:42
S… Speaker 2 (A Vivaldiego 11)
Czyli po prostu ten presenter, on tam wywołuje metody tego widoku, on nakazuje mu, żeby zmienić tam na przykład text-labela. Tak właśnie działa ten MVP. No i jeszcze jest CleanSwift, trochę tam właśnie pobieżnie, to tylko znam, że tam jest ten ViewInteractor Presenter. No i po prostu, no to najgorzej znam, nie powiem. Jest to jeden taki po prostu...
34:18
S… Speaker 1 (A Vivaldiego 11)
Tak jest. Chyba mam innego. Tak jest. Jasne. Jasne, dziękuję ci. Jasne, dziękuję ci. Do usłyszenia.
35:00
S… Speaker 2 (A Vivaldiego 11)
Dzień dobry. Przepraszam, lekkiego spóźnienia, ale tam się nam rozmowa przedłużyła. Leciutko. Cześć, Łukasz. O, ja mu włączyłam. Tam by się włączyła tutaj do myśli. Okej, jasne. Jasne. Do M-boxa. Tak jest. Tak. Końcówka, okej, super, to nie będę przeszkadzał.
38:39
S… Speaker 1 (A Vivaldiego 11)
Okej, to moje doświadczenia są takie, że iOS-a się zacząłem uczyć właśnie, kiedy już byłem w liceum. Tata po raz pierwszy przyniósł mi Macbooka i tego iPada, właściwie sobie kupił, ale no ja podkradłem sobie. No i zrobiłem sobie oczywiście grę jakąś tam, pierwszą w Swifcie, w Scenkicie. No i tego...
39:06
S… Speaker 1 (A Vivaldiego 11)
Okej, nie, nie, nie, to ja będę w kamerę patrzył tylko. Ja w kamerę będę patrzył, jasne. Okej, no i tego.
39:13
S… Speaker 1 (A Vivaldiego 11)
No i tak zaczęła się moja przygoda. Potem zacząłem robić jakieś takie pierwsze aplikacje w SwiftJUI, kiedy już byłem na studiach. No i na studiach właśnie zobaczyłem, że miałem takie porównanie do innych właśnie technologii i poza tym, że to jest to, że to jest właśnie taka fajna, czysta technologia, taka nowoczesna, więc chciałem po prostu w tym być i wymasterować po prostu to.
39:40
S… Speaker 1 (A Vivaldiego 11)
Na pewno język jest nowoczesny, był kompilowany, a nie interpretowany, jak na przykład taki Python, więc to też nie było coś, co nie chciałem w tym robić, no bo uznałem, że jednak przyszłość jest w takim języku właśnie kompilowanym. Poza tym te frameworki SwiftUI to, moim zdaniem,
40:00
S… Speaker 1 (A Vivaldiego 11)
jest taki innawatorski, bo on właśnie bardzo, bardzo czysty jest. W sposób deklaratywny piszemy, co chcemy uzyskać.
40:08
S… Speaker 1 (A Vivaldiego 11)
więc stołek w tym się ja się zakochałem i plus nie było takich, nie ma za wiele niepotrzebnych znaków w kodzie, więc no i plus po prostu wszystko działa, tak? Mamy jakiś ogarniczony zbiór urządzeń, w przeciwieństwie na przykład takiego Androida, gdzie, z którym też miałem oczywiście do czynienia, ale takim Androidzie no jest problem, że jest właśnie bardzo wiele marek tych telefonów, no i każda może się inaczej zachować w danym tym.
40:33
S… Speaker 1 (A Vivaldiego 11)
modelu, więc no po prostu uznałem, że to jest właśnie takie przyszłościowe, że Apple szybko nie zniknie właśnie z rynku, więc do tego właśnie uznałem, że to jest dobry kierunek. Plus oczywiście mnie to super interesuje, jeszcze z tych bardzo wymianych pobudek. Więc tak, no i ja sobie oczywiście robiłem takie projekciki samodzielnie. Na początek zacząłem oczywiście od tutoriala na jakiegoś tam na Rendeaver Lichu, to się kiedyś nazywało.
41:01
S… Speaker 1 (A Vivaldiego 11)
teraz to się nazywa Kodeko, no i tam po prostu jakieś takie podstawy Swifta, ale potem uznałem, że to, że nad tym się daleko nie zajedzie i po prostu trzeba robić te projekty, żeby się nauczyć, bo inaczej może się po prostu wydaje się, że się umie, a nie się faktycznie umie. Więc chciałem sobie postawić taką wysoko postawioną poprzeczkę, czyli zrobić na przykład coś takiego jak klon Photoshopa, który ma bardzo wiele funkcjonalności z tego, no i coś takiego osiągnąłem, chyba robię to z 4-5 miesięcy.
41:31
S… Speaker 1 (A Vivaldiego 11)
No i właściwie na podstawie tego doświadczenia to już bardzo dużo miałem z architektury i z tego języka. Tak, i skoro tam o tej pracy, czy ja mam tam wspominać o tym stażu? Prawda jest taka na tym stażu, że...
41:48
S… Speaker 1 (A Vivaldiego 11)
że ja chciałem właśnie znaleźć, konkretnie we Wrocławiu szukałem, bo akurat wtedy byłem w Wrocławiu, bo studiowałem w Wrocławiu, więc szukałem stażu we Wrocławiu i na iOS-a nie było ani jednego stażu w ostatnim okresie i na mobilny był jeden staż, na którym się chyba nie udało, być może za słabo znałem Androida, więc po prostu chwyciłem się czegoś, co było dostępne w ostatnim okresie, bo po prostu byłem zobligowany, żeby to wykonać. Tak jest.
42:28
S… Speaker 2 (A Vivaldiego 11)
Jasne, tak. Tak, tak, tak, tak. Nawet stacjonarnie. Mhm. Tak. Jasne. Tak. Właśnie. Tak. Tak, właściwie to kocham w programowaniu, że z początku bardzo złożony problem.
43:02
S… Speaker 1 (A Vivaldiego 11)
jest jakby iteracyjnie robiony, rozwijany na podproblemy i gdy się skupiam w tych podproblemach, to okazuje się potem z perspektywy czasu, że jakiś progres zrobiłem. No i ja używałem czegoś takiego, bo oczywiście scruma robienia dla samego siebie to nie ma do końca sensu, ale już na przykład takiego kanbana, czyli zrobiłeś sobie co mam do zrobienia, co mam w backlogu, co robię, co już zrobiłem, no to...
43:27
S… Speaker 1 (A Vivaldiego 11)
już ma sens i jest prosty do użycia taki Kanban, no więc ja użyłem takiej właśnie metodyki. No właściwie o to pan pytał, tak? No właściwie tak, tak. A, przepraszam, właśnie nie ma się przedstawić, że jesteś starszy panów, nie? Tomku. Tak jest. Tak, na początku byłem...
43:58
S… Speaker 1 (A Vivaldiego 11)
Nie jest tak, że ja rozbijam jakby wszystkie problemy od razu, bardziej taki wycinek, takie okno kontekstowe miałem. No i je zapisywałem, jak akurat miałem coś na myśli, że coś, co będę robił na przykład w następnych około tygodniu czy dwóch tygodni. I to tam dawałem sobie tego backloga, czy tam w tym to do. No i po prostu myślałem, co powinienem logicznie teraz robić. I jakiś taki duży komponent i potem ten duży komponent sobie rozwijałem na takie podzadania.
44:29
S… Speaker 1 (A Vivaldiego 11)
Bardziej tak to robiłem w notatniku, jakby sobie pisałem dokładnie co pisać, jeżeli taką mam tablicę graficzną, ale można to nazwać, że takim kanbanem robiłem. No i ogólnie zrobiła się fajna struktura, wyrzuciłem to na AppStore'a. Uważam, że fajne świadczenie to było.
45:00
S… Speaker 2 (A Vivaldiego 11)
Jasne. Nie no, możemy na tym, bo on jest najbardziej skomplikowany, jeśli chodzi o iOS-a. No to...
45:07
S… Speaker 1 (A Vivaldiego 11)
Takie miałem wyzwanie, że kiedy ja manipulowałem tymi warstwami, to miałem gest przyciągania palcem. Problem jest taki, że jak był obrócony ta warstwa, to mój gest nie był w tej samej linii, co mi się intuicyjnie wydawało. Po prostu musiałem odpowiedni przy użyciu sinusów i kosinusów zrobić ten wektor wypadkowy, żeby to się jednak w dobrym miejscu...
45:36
S… Speaker 1 (A Vivaldiego 11)
żeby drag był intuicyjny właśnie, żeby pomimo obrotu czy tam jakiejś innej translacji, żeby on w dobrym właśnie miejscu był końcowo. To było takie jedno z tych trudności, a druga taka trudność to miałem, kiedy robiłem magiczną różdżkę, tam miałem taki algorytm Flood Fill, no i tam rozbijałem sobie cały obrazek na...
46:01
S… Speaker 1 (A Vivaldiego 11)
na wektor po prostu, na bufor po prostu tych bajtów. 4 bajty to jest ten 1 piksel, RGB i alfa, 4 bajty. No i nie byłem nawet początkowo świadomy, że...
46:14
S… Speaker 1 (A Vivaldiego 11)
że to nie jest tak, że one są jakby, że kwant tego to jest jakby 4 bajty, tylko na przykład jest większy ta ramka w buforze, że tam są na końcu na przykład puste jakieś te bajty, niezalokowane. No i miałem taki, byłem tak zaskoczony, że pomimo iż dobrze implementuję FluteFilla, to jakoś tam po skosie się te piksele zaznaczały, więc no i po jakimś czasie po prostu wpadłem, że tam jakiś tam konkretny był rozmiar,
46:44
S… Speaker 1 (A Vivaldiego 11)
tego, że nie piksele obrazka decydowały o tym, jaki jest off, jaki jest ten długość tej jednej linii pikseli, tylko, że tam jakiś był inny ten powód, inna tam wielokrotność była tego. No i to po prostu miałem problem z tym, parę godzin mi też zajęło. Więc tak bym powiedzieć. Ja starałem się to zrobić za pomocą trochę matematyki, że tak powiem, trochę metody prób i błędów, no bo
47:17
S… Speaker 1 (A Vivaldiego 11)
Właśnie pomyślałem, że skoro już kiedyś się uczyłem tej matematyki, tej geometrii analitycznej, no to po prostu postanowiłem, że policzę sobie ten wektor wypadkowy. To nie było jakieś rzeczą trudne. Właściwie ten po prostu kąt, jaki jest, pomiędzy tymi dwoma policzyć.
47:38
S… Speaker 1 (A Vivaldiego 11)
odpowiedni tam sinus i kosinus. Jeden kosinus dla wysokości, a drugi dla długości. No i to po prostu starałem się sam zrobić. No i tak samo z tym fruit fillem.
47:49
S… Speaker 1 (A Vivaldiego 11)
Oczywiście, że szukałem rozwiązania tego w internecie na Stack Overflow, ale nie miałem sukcesu z tym, bo w Swifcie nie ma aż tylu materiałów, szczególnie z takich rzeczy, z takich operacji, które ja wykonywałem, że przerobiłem sobie ten image na taki bufor bajtów. Więc nie miałem sukcesu w tym Stack Overflow, no jakoś na to wpadłem końcowo, bo po prostu myślałem na to intensywnie.
49:07
S… Speaker 1 (A Vivaldiego 11)
Nie, nie, nie. Ja prostoruję cały czas to. Jakby to był naprawdę skomplikowany, ja robię to w każdej wolnej chwili. Więc nie było czegoś takiego, nie ma czegoś takiego jaka grama czasowa. Jeśli jest proces, jeśli moim celem jest nauka, no to nie ma czegoś takiego, że ja mam limit i potem co, nie nauczę się? Nie, po prostu robię to i się uczę i tyle. No to nie jest tak, że ja robię to jakoś bardzo szybko. Ja się uczyłem bardzo dużo z tego.
49:30
S… Speaker 1 (A Vivaldiego 11)
Zresztą to był mój pierwszy taki załansowany projekt, jaki robiłem, więc też nie mogłem pędzić, musiałem zobaczyć, jakie są dobre praktyki na internecie czasami, no i eksperymentowałem też trochę z architekturą.
50:00
S… Speaker 1 (A Vivaldiego 11)
procesu nauki. Nie miałem takiego horyzontu. Naprawdę mówię, że to robię tak najszybciej. Nie śpieszyłem się. To jest nauka. Ja byłem na studiach. Okej. Jasne. Jasne. Ja się raczej nie poddaję. Ja się nie poddaję, jeśli chodzi o naukę i nie pożycam takich projektów. Tak jest.
51:15
S… Speaker 2 (A Vivaldiego 11)
Okej, tak, tak, okej, to potem wrócę ze studiów miałem doświadczenia, ale teraz tak, do tego stażu, no to tak, najpierw staż, dobra, to przypomnisz, dobra. Okej, no to tak, na tym stażu pracowałem w zespole trzyosobowym, byłem wtedy zdalnie, no i po prostu miałem takiego innego mentora, no bo to dla mnie taka dosyć nowa technologia.
51:39
S… Speaker 2 (A Vivaldiego 11)
ten C-Share, no jakby nie byłem zaawansowany w tym, no tak można powiedzieć, więc musiałem się na pewno wdrożyć, plus ich struktura projektowa taka na moduły była podzielona, więc ja po prostu miałem taki moduł, który po prostu służył do tego, że musiałem te backupy porobić, że taki moduł, który stworzył taką stronę, w której będę mógł zdalnie robić backupy z urządzeń IoT, które gdzieś są tam w sieci porozmieszczane.
52:06
S… Speaker 2 (A Vivaldiego 11)
W dodatku tam też moduł do zgłaszania tych urządzeń, czy one są w ogóle w sieci, bo one tam co jakieś tam na przykład się pingowały z siecią, żeby to odebrać. No i tam chyba robiłem te dwa miesiące, chyba trzy, jak pamiętam, tam wpisałem. Robiłem od tego, od lipca chyba do sierpnia, do końca sierpnia, więc tak, tak spracowałem.
52:30
S… Speaker 2 (A Vivaldiego 11)
No i tak, no i tam u mnie było te redmi, czyli tam po prostu na gita po prostu się wrzucało te, no miałem swój wydzielony branż przez mojego uventora i tego, i on, no ja tam wrzucałem po prostu te komity, no i on to merge'ował, jak to sprawdził, że to działa po prostu. No i czy ja miałem jakiś narzucony czas? Trochę bardziej takie luźne podejście, bo myślę, że nie wykorzystałem całego tego czasu ze stażu.
53:00
S… Speaker 1 (A Vivaldiego 11)
miałem po prostu do zrobienia zadania na tym stażu, no i zrobiłem to, tak myślę, że 3 czwarte czasu mniej więcej, nie? Więc w miarę luźno miałem. Tak jest, z zadania. Mhm, dokładnie. Mhm.
53:31
S… Speaker 2 (A Vivaldiego 11)
Ja tego, ja miałem tylko moduł do zrobienia, jakby nie mogłem się tam zaangażować bardziej w tą architekturę, no bo zresztą jestem świeży, nie moja technologia, no gdzie ja bym się wypowiadał o tym. Po prostu musiałem to zrobić, zrobiłem to osoba, tak, pan mentor był zadowolony, zdziwiony, że nigdy tego nie tygnąłem i że to mi się udało tak szybko zrobić, ogarnąć ten, jakie są w projekcie struktury, no i był zadowolony ogólnie. Tak.
54:04
S… Speaker 2 (A Vivaldiego 11)
Tak, z największą trudnością, dokładnie tak, z największą trudnością było rozszytanie się w tym projekcie. Musiałem się często pytać właśnie mojego tego przełożonego, o co chodzi w tym właśnie. Chciałem oczywiście też dobre praktyki, zanim gdzieś ruszę, żeby nie było tak, że ja naśmiecę im w tym Codebase'ie.
54:23
S… Speaker 2 (A Vivaldiego 11)
tylko, że faktycznie chciałem im pomóc jakby, skoro już mnie wzięli na te praktyki, no to chciałem im pomóc. No i najważniejsza odpoczyna się było, żeby rozczytać ich pomysł, zamysł tego projektu. C-Shark też jest trochę nieczytelną we się tą technologią, więc musiałem po prostu się rozczytać, a nie byłem w tym doświadczony. Odpowiedziałem sobie na to.
55:00
S… Speaker 1 (A Vivaldiego 11)
Tak, tak, tak. My na inżynierce nie mieliśmy czegoś takiego, że jest jedna osoba i inżynierka, tylko my mogliśmy zespołowe przedsięwzięcie inżynieryjskie zrobić. Więc my mieliśmy zespół taki trzyosobowy. No ja nie przekonałem kolegów, żeby na iOS-a to robić, ale na przykład Androida już robiłem wtedy. Więc uznałem, że podobna rzecz też tam częściej rzeczy powtarza.
55:26
S… Speaker 1 (A Vivaldiego 11)
trochę zatrzymają od iOSa, można tak powiedzieć. No więc po prostu ja rozwijałem aplikację na tego Androida według moich najlepszych tej wyczucia z tego iOSa, które miałem wcześniej podczas robienia tych solo projektów. No i my właśnie pracowaliśmy sobie w takiej kampanii. Jedna osoba była odpowiedzialna za backend. Ja byłem za Androida, no i...
55:52
S… Speaker 1 (A Vivaldiego 11)
Druga osoba też właśnie była takim bardziej osobą, która dokumentuje to. Powiedzieliśmy, dobra, proszę dokumentuj, a my zrobimy swoje po prostu. No i ja się po prostu komunikowałem się po prostu na bieżąco z tym panem, który właśnie robił design tego systemu, bo ten, który dokumentował, on nam jakby zrobił ten RD. Ja oczywiście też uczestniczyłem w tym procesie.
56:18
S… Speaker 1 (A Vivaldiego 11)
Tak, i miałem ciągły kontakt z panem z back-endu, który ten... Mówiłem mu, jakie tam end-pointy powinien mi wystawić i po prostu czekałem na to. Najpierw pierwszym etapem było, żeby poczekać trochę na ten back-end, więc ta praca była trochę zależna moja od niego. No, a potem już właśnie no, pracowałem po prostu na swoją rękę na Androidzie. No i co chwilę...
56:54
S… Speaker 2 (A Vivaldiego 11)
Tak, tak, tak.
56:59
S… Speaker 1 (A Vivaldiego 11)
Trochę kolegów musiałem zachęcać, żeby jednak oni robili to, nie? Ja też trochę pomagałem w tym backendzie temu koledze, bo ja tam właśnie zrobiłem potem projekt u siebie. Drugi mój projekt na absolutie, tam nawet robiłem swój backend, nie? Więc trochę też się nauczyłem tego backendu w tym miejscu, bo ja jestem osobą, która nie pójdzie na dno po prostu, jeśli są ludzie, którzy nie robią, tylko ja też po prostu pomogę im i podciągnę, no bo...
57:25
S… Speaker 1 (A Vivaldiego 11)
Nawet jeśli ta osoba, z którą współpracuję, włoży z siebie tam te 20%, to zawsze jest to 20%, jest to 20% więcej niż to, co ja zrobię. Więc trzeba doceniać po prostu każdy wysiłek, nieważne jak wielki. No i tak, jakie wyzwania były? No to natury technicznej miał po prostu takie wyzwanie, że musiałem...
57:52
S… Speaker 1 (A Vivaldiego 11)
O-alpha tego wdrażałem, no i po prostu jak zrobić, żeby użytkownik nie musiał dwa razy klikać przycisku, jak musiał akurat ten token przetapnić, tylko po prostu użyłem na przykład interceptora żądań, żeby tam z backendem po prostu odświeżyć sobie ten token, no i to musiałem jakoś na to wpaść.
58:13
S… Speaker 1 (A Vivaldiego 11)
To było takie wyzwanie, ale poza tym ja dużo miałem z tego, więc myślałem też trochę tego Androida, bo Androida miałem też na studiach, więc to nie jest tak, że to było jakieś nowe dla mnie, jako przerwę na studiach. No i tak, bez samych problemów to przeszło, bardziej organizacyjne, żeby kolegów zmotywować.
59:34
S… Speaker 1 (A Vivaldiego 11)
To jasne, bo ja tam tego, wyczytałem u Państwa na tej ofercie na pracy, że tam macie Państwo już tych 50 ekranów w tym MP Boxie. To jest jakby na stan dzisiejszy, nie? Na tym blogu, który był z te 3 lata temu, to tam było tych 25 ekranów. To jakby 25 ekranów Państwu doszło tak w te 3 lata, to właśnie mam takie pytanie do tego projektu MP Box, czy to jest jakiś bardzo skomplikowany...
1:00:00
S… Speaker 1 (A Vivaldiego 11)
projekt, że one jakby, żeby te ekrany są one bardzo skomplikowane i bardzo Państwo wymagacie, żeby... Jasne. OP Box, tak? A OP Box to coś jakby konwertuje się na Mboxa.
1:01:56
S… Speaker 1 (A Vivaldiego 11)
Mi bardziej brat zamawia, bo on ma Allegro Smarta kupionego, więc wiecie, trochę optymalizacja lekka leci. Nie, to ja chętnie, nie no, jasne, ileś możemy zgadać. O, super. To nie był prawdziwy skram, tak? Jasne.
1:05:25
S… Speaker 1 (A Vivaldiego 11)
Mhm. Tak, czy ja mam się zaopatrzyć w Macbooka, czy Państwo dostarczacie jakby sprzęt do pracy? Mhm. Mhm. Jasne, okej. Mhm. No tak. No to jeszcze może takie pytanie, kiedy Państwo tam werdykt wydacie, że Państwo Wy. Mhm. Chyba od lipca pierwszego było napisane w ofercie. Mhm. Nie, nie, do końca roku jest. Tak, tak, z Panią Rusiniak.
1:06:50
S… Speaker 2 (A Vivaldiego 11)
Jasne. Jasne. Myślałem, że dwa razy. Tam trzy razy było na ofercie napisane. No dla staż może po prostu. Pewnie tak. Pewnie więcej, tym lepiej. Lepsze doświadczenie jest. Pani Jagoda chwaliła, jakie biuro macie. Też bym chciał zobaczyć sobie. Dobry pomysł, dokładnie. Jasne.
1:09:08
S… Speaker 1 (A Vivaldiego 11)
No tak. Wszystko jasne. No jasne. Nie macie Państwa interesu, żeby zwylekać. Tak jest. Mhm. Mhm. Jasne. To super. Dobrze. To wszystko chyba z mojej strony. Dziękuję Ci za rozmowę. Tak?
1:09:50
S… Speaker 1 (A Vivaldiego 11)
Ja jestem zdecydowanie bardziej pod kontynuację. Dlatego chciałbym się zaangażować w trakcie tego stażu, żeby dostać coś.
1:10:00
S… Speaker 1 (A Vivaldiego 11)
w nagrodę, że tak powiem. Jasne. No jasne. Mhm. Tak. Okej. No to jest to tyle. Czy jeszcze jakieś pytania? Okej. Zatrzymaj się Tomku.

This transcript was generated by AI (automatic speech recognition). May contain errors — verify against the original audio for critical use. AI policy

❤️ STT.ai-i söýýäňmi? Dostlaryňa aýt
_Dürs
Bu transkripiň AI haýalnamasyny emele etmek üçin Çap et
Çap edilýär...
Bu transkripsiýa hakda AI-den sora
Bu transkripsiýa hakda bir zat soraň — AI degişli bölümleri tapyp jogap berer.