iOS

· iOS
이번에 새롭게 시작한 SwiftUI 프로젝트에 Coordinator Pattern을 적용해보았다. UIKit은 구현방식이 어느정도 비슷한 느낌을 받았는데 SwiftUI 방식은 정형화된 방식이 없는것처럼 느껴졌다. 그중에 나름 이해가 잘되고 직관적으로 느껴지는 방법을 정해서 구현을 해보았다. 첫번째로 고민했던점은 앱에서 Coordinator를 어떠한 기준으로 나누냐를 고민하게 되었다. UIKit에서는 화면한개당 하나의 Coordinator가 존재한다. 하지만 예전에 적용했던 SwiftUI에서 방식은 한개의 코디네이터로 화면을 이동해도 겉으로 나타나는 문제는 없었다.내가 이해한 UIkit에서의 Coordinator는 flow마다 Coordinator를 나누는 느낌으로 받아들였다. 예를들어 a, b, c 라는..
· iOS
인스타그램을 보면 피드 화면에는 모든 피드가 랜덤으로 나타나고 유저의 프로필을 들어가면 해당 유저가 작성한 피드만 나타난다 앱을 만들다 보면 이러한 경우가 종종 발생한다 그럴때 어떻게 로직을 구성해야 할지 잘 모르겠고 이 방식이 맞나 고민이 됬었다. 탐색화면으로 가면 모든 게시물을 보여준다 이러한 경우에는 모든 게시물을 가져오도록 기능을 구현하면 된다. 하지만 특정 유저의 게시물을 갔을때는 유저가 작성한 게시물만 나타도록 해야한다 가장 간단한 방법은 현재 SearchViewModel 에서 fetchPosts 메서드의 인자로 유저의 id를 받고 해당 유저의 id가 존재하면 특정 유저의 id를 가져오고 id가 존재하지 않는다면 모든 게시물을 가져오는 방식을 생각했다. 해당 방식을 사용할 수 있지만 PostG..
· iOS
SwiftUI에서 UIViewRepresntable 프로토콜을 이용하여 SwiftUI에서 UIKit 뷰를 래핑하고 코디네이터를 구현하여 SwiftUI와 UIKit 이벤트를 브릿징 하는 방법을 알아보도록 하자! 애플 공식문서 에서는 UIViewRepresentable을 SwiftUI에 UIKit 뷰 계층구조에 통합하는데 사용되는 래퍼클러스라고 소개하고 있다. SwiftUI가 빠르게 업데이트 되고 편리성이 많은것은 사실이지만 사실 이번에 팀프로젝트를 진행하면서 가장크게 느낀것은 UIKit은 이미 너무나도 많은 기능을 가지고 있고 실제로 모든것을 대체하기 까지는 아직은 시간이 걸릴것 같다는것을 몸으로 체감하게 되었다. 이번에 팀프로젝트에서 사용한 맵뷰와 같은 외부라이브러리 뿐만이 아니라 UI를 빌드할때도 종..
· iOS
iOS 내부의 파일에 접근하기 위해서 Swift 에서는 3가지 작업 클래스를 제공한다 해당 클래스를 이용하면 기기 내부에 파일에 접근하여 읽기, 수정, 삭제, 파일이동 등등 여러가지 작업이 가능하다 크게 3가지 클래스가 있지만 오늘 다뤄볼 클래스는 FileManager 클래스 이다. 클래스 종류 FileManager - 파일 생성, 이동, 읽기, 쓰기, 삭제 및 파일 정보 가져오기 가능 FileHandle - 지정된 바이트 청크 수만큼 내용을 읽고 쓰기 가능(?) Data - 파일 읽기, 저장 버퍼를 제공 FileHandle 의 경우 자세히 다뤄보지는 않았지만 조금 더 세세한 파일 컨트롤이 가능하다고 알고있다. 기기 디렉토리 경로 작업을 하기전에 기기의 디렉토리 경로를 알아보고 해당 경로에 접근하는 방법..
· iOS
수업시간에 배운 내용으로 간단하게 메모장 앱을 만드는 프로젝트를 진행하고 있다 그러던중 StateObject 와 ObsevableObject는 굉장히 비슷한 기능을 하는거 같은데 정확히 어떤 상황에 무엇을 사용해야 하는지 궁금해졌다 책에서는 왠만하면 StateObject 쓰세요~ 라고 했지만 찝찝한 마음이 들어서 공부한 내용을 정리해서 써보려고한다. @StateObject, @ObservedObject 왜 사용하는 걸까? SwiftUI 에서는 MVVM 모델을 사용한다 MVVM 에 대하여 간단하게 설명을 하자면 View 가 ViewModel 의 데이터를 구독하여 ViewModel의 데이터가 변경되면 View 또한 다시 렌더링 되는 원리이다. 뷰모델 - 뷰 간의 데이터 변화 - ViewModel 이라는 파일..
석_기
'iOS' 카테고리의 글 목록