Jak dostac pierwsza prace jako junior iOS

0

Jak pewnie widać, pytanie jest niby trywialne ale nie do końca. Od ponad roku próbuje się dostać gdzieś na juniora i jest słabo. Jestem z Wro ale probówałem chyba wszędzie.
Wiem, że jeszcze sporo nie umiem i za każdym razem czegoś mi brakuje ale z tego co porównuje po innych technologiach to wejście jest dużo trudniejsze. Teraz co prawda macbook mi sie posypał i mam chwilowa przerwę ale stawiam VM i znów wracam do nauki.

Chciałbym was podpytac o kilka punktów

1.) Z rozmowy z wrzesnie w tamtym roku mialem do wykonania ToDo App - apka w całości wykonana ale rzekomo Save oraz Cancel nie były rozmieszczone zgodnie ze standardami Apple Interface Guideline. Nie za bardzo wiem o co z tym chodzi. Czy przyciski powinny mieć określone wymiary/ kolory?

2.) Za każdym razem dostało mi się za clean code oraz za MVC lub MVVM, którym rzekomo brakuje sporo do tego, żeby mówić o takiej architekturze
Ma ktoś może jakiś materiał/tutorial jak powinien jeden lub drugi wzorzec wyglądać? Głównie uczyłem się z tutorialów. Starałem się to jakoś ulepszać ciągle. Jeśli tworze ViewController to protokoły wrzucam w extension w innym pliku jak np delegate czy data source dla przykladu. Pod viewdidload wrzucam tylko funkcje zbiorcze tak jak np "func setupUI" czy cos tego typu. Wszystko poparte komentarzami itd wiec nie bardzo rozumiem co oznacza dla ludzi sprawdzajacych "clean code"

3.) SOLID - nigdzie nie widzialem zeby bylo to poparte jakimis zrozumialymi przykladami, jesli zle szukam to mnie poprawcie, dopiero zacząlem czytac Clean Code, wiec licze, ze moze to mnie troche podciagnie.

4.) Nazewnictwo - na jednej rozmów miałem zwróconą uwagę na nazewnictwo. Nie wiadomo do jakiego obiektu się odnosi. Ciężko mi się w tym połapać bo co rusz znajduje sprzeczne lub po prostu uczę się/uczyłem z błędnych źródeł.

Dzięki z góry jeśli ktokolwiek coś poradzi. Za miesiąc dwa próbuje się gdzieś odezwać do krk lub gdańska bo we wro chyba będzie ciężko coś ugrać. Na razie daje sobie chwile czasu na przypomnienie wszystkiego.

3

Może wrzuć przykład kodu na gh i udostępnij tu linka. Ktoś może Ci objaśni w czym problem.

2

Ciężko się odnieść bez konkretnych przykładów ale

  1. Próbowałeś szukać odpowiedzi na https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/ ?
  2. Na Githubie masz pełno przykładów - https://github.com/search?q=swift+mvvm
    Z drugiej strony aplikujesz na juniora więc ciężko żebyś miał duże doświadczenie z architekturami. Z drugiej strony jeśli dostajesz takie uwagi to zapytaj rozmówcy co by tutaj poprawił, co jest do ulepszenia. Zawsze możesz się czegoś nauczyć.
  3. Szukaj różnych przykładów, które pomogą Ci to zrozumieć. Nie ograniczaj się do Swifta, popatrz na przykłady z innych języków (bo sam nie język nie jest tutaj istotny).
  4. Możesz podać przykład takiej nazwy? No jeśli nie wiadomo do czego się ta nazwa odnosi no to faktycznie może być zła nazwa.
0

https://github.com/jkb91jkb91/NBP

Apka pobierajaca kursy walut.

Podrzuciłem ostatnią apke, którą robiłem jakiś czas temu. Tutaj dostalem troche uwag, szczegolnie jesli chodzi o clean code i ze MVC nie jest takie jak powinno być.

Jak by ktos z was mial chwile przejrzec czy rzeczywiscie jest tak zle ze nawet na juniora sie nie nadaje to fajnie by bylo sie dowiedziec gdzie robie bledy przynajmniej te razace.

Dziekuje wam serdecznie za zainteresowanie tematem.

1

Tak sobie rzuciłem okiem...

cell.AverageLabel.text = String(((row.ask + row.bid)/2).roundToPlace(places: 4))

Clean code raczej takich kombosów nie pochwala. Napisz odpowiednią metodę liczącą średnią dla odpowiednio nazwanych argumentów.


func convertDateToString(date: Date) {
        
        if buttonSelected == ButtonValues.from {
            
            if date > toDate {
                dateFromPicker = DateFunc.toString(date: toDate)
                fromDate = toDate
            } else {
                dateFromPicker = DateFunc.toString(date: date)
                fromDate = date
            }
        } else {
            
            if date > fromDate {
                dateFromPicker = DateFunc.toString(date: date)
                toDate = date
            } else {
                dateFromPicker = DateFunc.toString(date: fromDate)
                toDate = fromDate
            }
        }
    }

Drabinka ifów, nazwa funkcji nie mówi za wiele. Funkcja mogłaby zwracać jakąś wartość.


delegate?.sendDate(pickerDate: dateFromPicker, buttonSelected: buttonSelected)

Ja takie długie linijki lubię rozbijać na linijkę dla każdego argumentu:

delegate?.sendDate(
    pickerDate: dateFromPicker,
    buttonSelected: buttonSelected)

Nazwy klas mogłyby coś mówić. "MainScreen", "SecondScreen", "PopUpScreen" brzmią jak "Untitled1", "Untitled2", "Untitled3".

0

Zastanawia mnie jeszcze jedna rzecz odnosnie clean architecture.
Jesli korzystamy np z CoreData, to czy użycie Singletona w takim przypadku bedzie lamaniem no nie wiem CLEAN CODE czy SOLID?? czy bedzie ok??.

Powiedzmy mam 2 ekrany VC, na pierwszym robie fetch z CoreData, a na drugim robie Save. Czy wstrzykniecie obiektu CoreData przy inicjalizacji pierwszego VC byloby moze lepsze? Analogicznie, jesli przechodze do drugiego ekranu to tam powinienem wstrzykiwac obiekt CoreData utworzony juz wczesniej przy inicjalizacji pierwszego VC czy utworzyc calkowicie nowy obiekt(zakladam ze wstrzykuje istniejacy juz obiekt)?

To samo do korzystania z API i GET REQUEST, czy Singleton sie sprawdzi czy tez uzyc Dependency Injection. Na wielu tutorialach uzywali typowego singletona do samej klasy Networking(get request) oraz kolejnej klasy Response która dekodowała JSONa. Następnie w ViewControlerze wywolywalem metode przez Singleton aby pobrac dane i zapopulowac powiedzmy tabele. Zastanawiam sie czy to tez nie jest zla praktyka kodowania.

Generalnie planuje nowy watek zalozyc na temat czystej architekury zeby troche podpytac bo chyba na tym troche przespalem i zaluje ze sie nie pytalem wczesniej. Wstyd sie przyznac ale kilka odpowiedzi dodalem na stacku, pozniej odjeli mi punktow i przez jakis czas nie moglem nic dodawac, wiec sobie darowalem tamto miejsce.

1 użytkowników online, w tym zalogowanych: 0, gości: 1