본문 바로가기

전체 글

(67)
SwiftUI) URL로 비동기 이미지 생성하기 - Combine과 Network 1. NetworkService 우선 네트워크 처리를 할 수 있는 객체를 생성해야 합니다. 네트워크 처리를 위해 필요한 것으로 URLSession과 URLRequest이 있습니다. URLRequest URLRequest는 네트워킹하는 곳에서 매번 생성하기에는 귀찮은 작업입니다. NetworkMethod도 String으로 입력하므로 오탈자가 발생하는 등의 문제가 생길 수도 있습니다. 따라서 따로 객체로 분리하면 더 편하게 사용할 수 있습니다. 아래 코드에서 body는 보통 post할 때 서버로 보낼 데이터를 저장합니다. enum NetworkMethod: String { case get case post case put case patch case delete } struct RequestBuilder {..
SwiftUI) ViewBuilder 와 guard let 일단 결론부터 말하면 ViewBuilder에 guard let 쓰지 마세요 🌝 AnyView와 Performance AnyView를 사용하면 퍼포먼스에 영향이 있을 수 있다고 하여 다음의 코드를 ViewBuilder로 변경하고자 하였습니다. func getDestination(to routingDestination: MiniVibeType, with id: Int?) -> AnyView { guard let id = id else{ return AnyView(ErrorView())} //TODO: 타입에따라서 다른 destination 보여주게하기! (대부분 id넘겨서 tracklist 보여주기 switch routingDestination { case .magazines: return AnyView(M..
SwiftUI) ObservableObject와 상속 ViewModel 객체 분리 뷰에서 표현해야할 데이터를 네트워킹을 통해 외부에서 가져와야할 때 ViewModel 객체로 분리시켜서 데이터를 업데이트 했습니다. 네트워킹을 통해 데이터를 가져와야 하는 뷰가 많아서 각 뷰모델이 겹치는 경우가 많아서 전체적으로 사용할 기본 뷰모델 MiniVibeViewModel을 만들었습니다. class MiniVibeViewModel: ObservableObject { private let network = NetworkService(session: URLSession.shared) private var cancellabes = Set() func internalFetch(endPoint: MiniVibeType, id: Int? = nil, filterQuery: Stri..
git) 깃 프로젝트 관리하기(1) - issue, label, project, milestone 깃 레퍼지토리에 들어가면 메뉴 바에 여러 선택지가 보인다. 이 중 Issues, Projects에 대해 다룰 것이다. 이와 관련하여 Labels, Milestones에 대해서도 다룬다. Issues 깃 레퍼지토리에 들어가면 메뉴 바에서 Issues 버튼을 클릭하면 다음과 같은 화면이 보인다. 이슈에는 개발해야할 기능이나 개발하는데 발생한 버그 등 수행해야할 과제 위주로 올린다. 보통은 수행해야할 목적을 바탕으로 제목을 작성하고 관련된 주제에 대해 라벨을 연결한다. 제목에 모든 내용을 포함하기보다 겹치는 내용은 라벨로 분리하여 가독성을 높이고 검색도 용이하게 할 수 있다. Milestones 마일스톤은 연결된 이슈의 상황을 알려준다. 이슈를 생성할 때 마일스톤을 연결할 수 있는데 이 때 최대 단 한 개의 ..
SwiftUI) MVVM과 Combine 학습 정리 SwiftUI MVVM Programming with ObservableObject @Published @ObservedObject SwiftUI 2.0 + Combine - Getting Started 을 바탕으로 학습한 내용 정리 Combine What is Combine? 비동기적(Asynchronous) 이벤트를 처리하기 위한 애플의 프레임워크 iOS 개발을 위한 코드는 Asynchronous event를 처리할 일이 많다. 이 떼 Combine을 사용하면 코드를 단순화 해준다. Advantages of Combine No More Callback Hells! 위 코드는 어떤 동작을 하고 있는지 이해하기 어렵다. 이런식으로 코드가 지저분해지는 것을 막을 수 있다. Key Concepts..