플러터 개발자에서 iOS 개발자 전환 팁

brokenchj·2023년 3월 10일
0

나는 현재 플러터에서 iOS 개발자로 갈아타고 있다.

제대로 공부한 지 한 3주 된 시점에서 팁? 후기?를 한 번 써보려고 한다.

시간 지나면 생각이 바뀔 수도 있다는 걸 염두해주시길 바람.

내가 플러터를 공부하는 것을 보류하고 iOS 개발자로 갈아타고 있는 이유는 다음과 같다.

  1. 플러터의 양질의 일자리 부족 (타 모바일에 비해 적음 + 대기업 전멸)
  2. 플러터 구인 페이지의 JD에 Native 역량을 요구하는 비율이 높아지고 있음
  3. 미래가 불확실함.

제일 큰 이유는 1번이 아닐까 싶음.

본론으로 들어가서,

  1. iOS UIkit에는 프로바이더 Bloc과 같은 상태관리가 따로 없다. 기본이되는 UIkit가 상태 기반이 아니라 Event Driven 기반 방식이기 때문이다. 굳이 하고싶다면 대신 Observe 라는 개념을 이용하면 될 것 같음. swiftUI에 @State가 있기는 함. 아무튼 플러터에서처럼 상태를 관리하는 개념은 적용되기 힘들다. MVVM에서 VM에서 처리가 가능

  2. UIkit와 StoryBoard, Interface Builder 또는 UIKit + 코드 조합으로 앱을 구성가능하며, 다른 옵션으로는 UIkit와 SwiftUI가 있다.

  3. 이미 Declarative UI를 플러터를 통해 경험을 했기 때문에 스토리보드와 UIKit + IB + 코드베이스 를 공부하는게 맞음. 특히 스토리보드 + IB는 애로 사항이 많기 때문에 한번만 경험해보고 UIkit와 코드베이스로 넘어가자.

  4. 공부할 때는 어줍잖은 유튜브나 책보다 공식문서를 봐야한다. 특히 앞부분 Scene 라이프 사이클과 앱 라이프 사이클, 그리고 뷰 라이프 사이클은 필수적으로 애플 공식문서를 보고 이해해야함.

  5. 애플 공식 개발 튜토리얼을 진행하는 것을 추천함. 매우 잘되어 있음. 하지만 나는 유튜브 Let's build that app을 참고 많이함.

  6. DB: Core Data, UserDefaults(=SharedPreference), sqlite, Realm

  7. 영어 못하면 iOS개발 때려치는 게 정신건강에 이로움. 차라리 안드로이드로 가셈.

  8. SwiftUI를 통해 핫리로드가 가능하지만 플러터에 비해 느리고 별로다. 그리고 어차피 UIkit공부해야하기때문에 계속해서 빌드해야함. 이게 엄청난 단점이지만 어쩔수 없는 부분이므로 감당하자.

  9. 플러터는 싱글스레드라 동시성 프로그래밍을 제대로 한 경험이 많이 부족할텐데, iOS Concurrency 가이드 문서를 읽고 공부하자.

  10. 동시성 관련 라이브러리 갖다 쓰지말고 DispatchQueue와 Async await, Operation으로 구현을 해보자.

  11. 일차 목표는 UIKit를 완벽히 다룰 줄 아는 수준이다. UIKit를 통해 커스텀UI를 자유자제로 만들 수 있고, 오토레이아웃에 통달했다면 그때부터 SwiftUI를 깔짝여보자...

  12. 자바만 알면 바로 쓸 수 있던 다트와 스위프트는 많이 다르다. 스위프트를 제대로 공부해야함! 빡세게 공부해야함.

profile
취준생입니다.

0개의 댓글