async let 으로 비동기 작업들을 동시에 수행하기 (2)
·
SwiftUI
async let을 사용하면 여러 데이터를 한번에 처리할 수 있습니다 https://apple-document.tistory.com/170 async let 으로 비동기 작업들을 동시에 수행하기 (1)async let 을 사용하면 시스템이 async let  오른쪽에 있는 비동기 함수를 병렬적으로 실행시킵니다   await를 사용할 때는 시스템이 해당 비동기 함수를 실행시킬 때마다 실행을 담당하는 스레드를apple-document.tistory.com 지난번에 이미지를 예를 들어 여러 이미지를 가져올 때 딜레이를 없애고 여러 이미지를 동시에 가져오는 방법인 async let을 알아봤었습니다. 이번에는 실제로는 어떻게 사용되었는지 코드를 분석하면서 알아볼 것입니다. 사용 사례박스오피스 영화 데이터를 가져오..
confirmationDialog 로 하단 메뉴 나타나게하기
·
SwiftUI
confirmationDialog는 하단에서 나타나는 메뉴로 앱에서도 자주 사용되는 컴포넌트입니다  struct ContentView: View { @State var pressed: Bool = false var body: some View { Button { pressed.toggle() } label: { Text("버튼") } .confirmationDialog("confimationDialog입니다", isPresented: $pressed) { Button { } label: { Text("버튼..
AsyncPublisher (.value로 비동기적으로 데이터 처리)
·
SwiftUI
AsyncPublisher은 간단하고 비동기적으로 Publisher로부터 받는 데이터를 처리하고 싶을 때 사용합니다 코드로 이해하기우선 AsyncPublisherDataManager라는 클래스가 있고 @Published로 선언된 [String] 타입의 데이터가 존재합니다.addData 메서드를 이용하여 2초마다 데이터를 삽입하며 이것은 비동기적으로 수행됩니다.class AsyncPublisherDataManager { @Published var myData: [String] = [] func addData() async { myData.append("Apple") try? await Task.sleep(nanoseconds: 2_000_000_000) ..
Struct 구조체
·
SwiftUI
Struct의 특징Class와 다르게 상속이 불가능value type 입니다, 여기서 value type이란 Int, Double , String 등이 포함value type 이란 인스턴스를 전달할 때 값을 복사해 새로 만들지 참조하지는 않는다는 것을 의미Struct는 함수 호출이 끝나면 자동으로 메모리에서 해제되므로, 메모리 관리가 쉽고 효율적입니다Struct는 Class에 비해 컴파일러가 훨씬 더 빠르게 컴파일할 수 있습니다(참조같은 복잡한 일 대신 새롭게 만들기 때문에)Thread Safe 타입입니다Struct를 사용하는 경우다른 객체 또는 함수 등으로 전달될 때 - 참조가 아닌 복사를 원할 때, 원본 데이터가 변경되지 않음을 보장하고 싶을 때자신을 상속할 필요가 없거나 자신이 다른 타입을 상속받을..
공공 데이터 지도에 띄우기 (with 네이버 지도)
·
SwiftUI
지하철 1~8호선의 역사 내 공중화장실 데이터를 가져와 지도에 띄워줍니다 https://www.data.go.kr/data/15044453/fileData.do 서울교통공사_역사공중화장실정보_20230814지하철 1~8호선의 역사 내 공중화장실 데이터(화장실명, 소재지도로명주소, 소재지지번주소, 남녀공용화장실여부, 대/소변기수, 등)입니다.www.data.go.kr 데이터 분석데이터 시트를 열어보면 아래 사진처럼 여러개의 데이터들이 존재합니다, 하지만 여기서 남녀공용화장실 여부라던지 관리기관명 같은 데이터들은 사용자한테 별로 유용한 정보가 아닙니다. 데이터 필터링추가로 데이터를 분석해보면  145번째 행에 위치는 서울이지만 위도가 36인 outlier 가 존재합니다. 해당 데이터를 37로 수정해줍니다. ..
custom binding
·
SwiftUI
@Binding 프로퍼티 래퍼는 뷰간 데이터를 전달할 때 사용됩니다 @Binding은 누구나 사용해 봤을 것입니다. 하지만 @Binding을 커스텀화하여 사용할 수도 있다는 사실은 몰랐습니다.   간단하게 3개의 View를 만들어보겠습니다.title은 각 View에서 사용자에게 보여줄 Text에 들어갈 string이며 errorTitle은 에러 메시지 showError는 에러 메시지를 보여주는 유무@State var title: String = "Start"@State private var errorTitle: String? = nil@State private var showError: Bool = false 첫 번째 View다음은 일반적으로 평소에 많이 쓰는 @State 프로퍼티 래퍼와 @Binding..
ytw_developer
'SwiftUI' 태그의 글 목록