[SwiftUI] TCA 아키텍처를 ALABOZA
예전에 SwiftUI 아키텍처에 대한 학습을 하다가 우연히 TCA를 알게 된 일이 있었다. 간단하게 설명하자면 SwiftUI는 이미 MVVM 구조로 구성이 되어있기에, 여기에 MVVM을 적용하는 것은 날 수 있는 스케이트보드에 바퀴를 달아준 모양이라나. 어느정도 공감이 되긴 했는데… 지금 생각해보면 사실 아키텍처 패턴이란 단순 코드의 흐름을 잡아...
예전에 SwiftUI 아키텍처에 대한 학습을 하다가 우연히 TCA를 알게 된 일이 있었다. 간단하게 설명하자면 SwiftUI는 이미 MVVM 구조로 구성이 되어있기에, 여기에 MVVM을 적용하는 것은 날 수 있는 스케이트보드에 바퀴를 달아준 모양이라나. 어느정도 공감이 되긴 했는데… 지금 생각해보면 사실 아키텍처 패턴이란 단순 코드의 흐름을 잡아...
처음 팀에 들어오고 가장 먼저 맡았던 일은 코드 리뷰였다. 당시 팀은 전반적인 리팩토링을 원하고 있었기에, 프로젝트가 어떤 구조로 되어 있는지, 어떤 부분을 개선해야 할지 꼼꼼히 살펴보려 노력했다. 그런데… 후… 코드 스타일이 이렇게 중요하다는 걸 실감한 건 그 리뷰 과정을 거치면서였다. 클래스는 잘 나눠져 있고 기능도 나쁘지 않았지만, 들여쓰...
PhotoGether는 최대 4명이 동시에 접속하여 실시간으로 함께 사진을 편집할 수 있는 iOS 앱입니다. WebRTC를 기반으로 한 P2P 연결을 통해 참가자들이 같은 화면을 보면서 스티커 추가, 이동, 삭제 등의 편집 작업을 동시에 수행할 수 있습니다. 마치 Google Docs에서 여러 명이 동시에 문서를 편집하듯이, PhotoGether에서...
Bundle을 이용해 앱 내부 리소스에서 이미지를 로드하는 과정에서 UIImage(data: )를 이용했을 때 이미지가 정상적으로 표시되지 않는 문제가 발생했다. 해당 문제를 해결하기 위한 트러블 슈팅 과정에서 Bundle에 대한 이해가 필요했고, 최종적으로 문제의 원인이 SVG와 PNG의 차이점에서 비롯된 것임을 알 수 있었다. 이 글에서는 문제...
부스트캠프에서 3~4주차 스프린트를 진행하는 동안 정말 다양한 사람들의 코드를 볼 수 있었다. 그러던중 UIKit에서 MVVM 패턴을 사용하는것을 보기도 했고, 이번 5~6주차 스프린트 팀원과 같이 모각코를 하던중 MVVM 패턴을 이용해서 설계한다는 말을 들으면서 사람들은 왜 UIKit에서 권장하는 MVC를 뒤로하고 MVVM을 선택하는지, MVC의 문...
Swift 언어를 학습하다보면 새롭게 접하는 프로그래밍 패러다임이 있다. 오늘은 새로운 프로그래밍 패러다임인 POP(Protocol Oriented Programming)에 대하여 알아볼까 한다. 🤔 프로토콜이란? POP를 이해하기 위해선 우선 프로토콜이라는 개념을 명확히 잡고갈 필요가 있다. Protocols | Documentation ...
팀 동료와 미션 수행한 내용을 공유하는 과정에서 스토리보드도 파일 분리를 할 수 있다는 것을 알게 되었다. 그래서 기존에 Main.storyboard에서 관리되고 있던 스토리보드 컴포넌트들을 별도의 파일로 분리를 했었다. 그런데 이 과정에서 Tabbar의 아이템들을 설정하던 코드가 정상 작동을 하지 않았다. 이전의 스토리보드는 Main에 있고 하...
요즘 테스트코드를 작성하는 횟수가 부쩍 많이 늘어났다. 처음에는 테스트코드를 짜는게 마냥 막막하고 어려웠는데, 지금은 금방금방 만들어내고 있다. 그런데 나 혹시 지금 좋은테스팅을 하고 있는게 맞을까? 예전에 학교에서 오픈소스응용프로그래밍이라는 강의를 들은적이 있다 (개인적으로 내 인생 강의) 그 당시 교수님이 프로젝트를 팀으로 진행하도록 하면서...
여러개의 자료형들을 묶어 하나의 타입으로 만드는 방법의 대표적인 방법에는 Struct와 class가 있다. 평소 Class를 사용하는것이 익숙해서 자주 이용을 하는데 이번에 이 둘의 차이에 대해 알아볼 계기가 생겨 조사할 겸 포스팅을 남겨볼까 한다. 🍏 우선은 개발자 문서 가장 먼저 살펴본것은 애플 개발자 문서인데 이 둘의 선택을 할때에 대해 간략...
뷰의 라이프사이클은 앱을 생성할 때 가장 먼저 보이는 것중 하나이다. 언제 나오냐고요? 여러분이 바로 앱을 생성하자마자 나오는 코드중 ViewDidLoad()함수가 뷰 라이프사이클을 관리하는 함수 중 하나이다. 그만큼 뷰의 생명주기에 대해서 이해하는 것은 앱을 설계하는데 있어서 중요한 요소중 하나이고, 오늘은 이 ViewController의 생명...