iOS/SwiftUI

    [Combine] 01_Hello, Combine!

    Combine은 앱이 이벤트를 처리하는 방법에 대해 선언적 접근 방식을 제공한다. 여러 delegate callback 또는 completion handler closure를 구현하는 대신 주어진 이벤트 소스에 대해 single processing chain을 작성할 수 있다. chain의 각 부분은 이전 단계에서 받은 요소에 대해 어떠한 조치를 취하는 결합연산자들을 의미한다. 비동기 프로그래밍 동기식 코드 begin var name = "Bo-Young" print(name) name += " Park" print(name) end 항상 같은 결과 반환 비동기식 코드 --- Thread 1 --- begin var name = "Tom" print(name) --- Thread 2 --- name = ..

    [SwiftUI] Property Wrapper @

    @State 값의 상태를 저장하고 변경을 감지하여 뷰를 다시 렌더링하는 데 사용됩니다. struct ContentView: View { @State private var count = 0 var body: some View { Button(action: { count += 1 }) { Text("Count: \\(count)") } } } 현재 뷰 UI의 특정 상태를 저장하기 위해 만들어진 것이기 때문에 보통 Private로 지정하여 사용 @Binding 값을 참조하는 데 사용되며, 뷰 간에 데이터를 양방향으로 전달하는 데 유용합니다. 값의 소유권은 다른 뷰가 가지고 있으며 해당 뷰는 변경 사항을 수신할 수 있습니다. struct DetailView: View { @Binding var showDetai..

    [SwiftUI] Stack, LazyStack, Grid, List, Form

    Stack "A view that arranges its children in a line, either horizontally or vertically." Stack은 모든 자식 뷰를 로드하고 정렬합니다. 따라서 자식 뷰가 화면에 나타나는 즉시 생성됩니다. HStack VStack ZStack VStack { Text("View 1") Text("View 2") Text("View 3") } Lazy Stack "A view that arranges its children in a line, either horizontally or vertically, but defers creating its children until the layout pass." LazyStack은 뷰의 생성을 지연하고, 필요한..