[SwiftUI] SwiftUI 스택 정렬(VStack, HStack, ZStack)과 정렬 가이드
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 이번 시간에는 SwiftUI를 배우면 꼭 알아야 하는 스택 정렬과 정렬 가이드 대해서 포스팅을 해보겠습니다! 그럼 바로 시작하겠습니다! 컨테이너 정렬SwiftUI 스택을 사용할 때 가장 기본적인 정렬 방법은 컨테이너 정렬입니다.  컨테이너 정렬이란 스택에 포함된 하위 뷰들이 스택 내에서 정렬되는 방식을 말하는데, 스택에 포함된 각각의 뷰에 지정된 정렬이 따로 없다면, 스택에 적용한 정렬이 하위 뷰에 적용되게 됩니다. 이렇게 개별적으로 적용된 정렬이 없는 하위 뷰에 상위 뷰의 정렬 방법이 적용되는 것을 암묵적으로 정렬(implicitly aligned)되었다고 표현합니다. 정렬을 할 때 중요한 점은 HStack은 하위 뷰를 수직 방향으로 정렬을 하고, VStack은 하위 뷰..
[Swift] 배열(Array)
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 Swift에서 자주 사용하는 데이터 구조 중 하나인 배열(Array)에 대해 알아보고 Swift 배열의 기본 개념, 생성, 조작 방법, 그리고 고급 기능들에 대해 간단하게 정리해보겠습니다.  그럼 바로 시작하겠습니다. Swift 배열이란?배열은 동일한 타입의 값들을 순서대로 저장하는 컬렉션 타입입니다. 배열은 인덱스를 통해 요소에 접근할 수 있으며, 요소의 순서는 배열에 추가된 순서대로 유지됩니다. Swift 배열은 값 타입(value type)으로, 복사 시 독립적으로 동작합니다. 배열의 생성배열을 생성하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 대괄호 []를 사용하는 것입니다.// 빈 배열 생성var emptyArray: [Int] = []..
[SwiftUI] SwiftUI 뷰(View) 이해하기
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 서론 SwiftUI를 사용해서 개발을 할 때 중요한 요소 중 하나는 SwiftUI의 내장 뷰를 활용하는 동시에, 개별적으로 커스텀 뷰를 생성하여 사용자 인터페이스 디자인을 선언하는 방법을 익히는 것입니다. 그래서 이번에는 포스팅에서는 SwiftUI 뷰의 개념에 대해서 정리를 하고 어떻게 구성이 되어 있는지 정리 해볼까 합니다. SwiftUI 뷰 먼저 사용자 인터페이스 레이아웃은 뷰 사용과 생성, 그리고 결합을 통해서 SwiftUI로 구성됩니다. 가장 먼저 뷰(View)에 대해서 이해하는 것이 중요한데, SwiftUI에서 뷰는 View 프로토콜을 따르는 구조체로 선언되게 됩니다. 이 View 프로토콜을 따르도록 하기 위해서 구조체는 body 프로퍼티를 가지고 있어야 하고 바로..
[Swift] 초기화(Initializers) 알아보기 (6) - Failable Initalizers
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 실패 가능한 이니셜라이저(Failable Initailzer)에 대해서 포스팅을 하려고 합니다. 그럼 바로 시작하겠습니다! 실패 가능한 이니셜라이저(Failable Initailzer)란?개발을 하다 보면 이니셜라이저를 통해 인스턴스를 초기화할 수 없는 예외 상황들을 만나게 됩니다. 예를 들어보면, 이니셜라이저의 전달인자로 잘못된 값이나 적절치 못한 값이 전달 되었을 때, 이니셜라이저는 인스턴스 초기화에 실패할 수 있습니다.  Swift에서는 초기화 과정에서 잘못된 파라미터 값이 들어올 경우 이를 안전하게 처리하기 위한 방법으로 실패 가능한 이니셜라이저(Failable Initializer)를 제공합니다. 실패 가능한 이니셜라이저는 클래스, 구조체, 열거..
[Swift] 초기화(Initializers) 알아보기 (5) - 요구 이니셜라이저
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅은 저번 포스팅들에 이어서 초기화에 대해 정리해볼 건데 이번에 다룰 내용은 요구 이니셜라이저입니다! 그럼 바로 시작하겠습니다! 요구 이니셜라이저란?요구 이니셜라이저(required initailzer)는 '반드시 필요한 초기화 방법'을 의미합니다. 클래스를 만들 때, 그 클래스를 기반으로 만들어지는 모든 서브클래스가 반드시 따라야 하는 초기화 규칙을 정하는 것입니다. 이 규칙은 'required'라는 키워드를 사용해서 정합니다. 이게 무슨 말인지 잘 모르겠죠? 좀 더 쉽게 설명해보겠습니다. 예를 들어, 핸드폰을 생산하는 회사가 있다고 생각해보겠습니다. 이 회사는 모든 핸드폰이 반드시 '제품 번호'를 가지도록 만들어야 합니다. 그래야 각 핸드폰을 식별하거나 문제가 ..
[Swift] 초기화(Initializers) 알아보기 (4) - 이니셜라이저의 상속 재정의와 자동 상속
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서도 저번에 이어서 초기화(Initializers)에 대해 정리를 해볼텐데 이번에는 초기화 중에서 상속과 재정의에 대해서 알아보도록 하겠습니다! 그럼 바로 시작하겠습니다. 이니셜라이저 상속과 재정의Swift에서 이니셜라이저는 기본적으로 부모 클래스로부터 상속되지 않는 특성을 가지고 있습니다. 이는 자식 클래스가 부모 클래스의 이니셜라이저를 그대로 사용할 경우, 자식 클래스의 새로운 인스턴스가 완벽하게 초기화되지 않는 문제를 예방하기 위함입니다. 그러나, 특별한 상황에서는 부모 클래스의 이니셜라이저가 자동으로 상속되기도 합니다.(이 내용은 아래에서 다시 설명하도록 하겠습니다) 만약 자식 클래스에서 부모 클래스의 이니셜라이저를 사용하고자 한다면, 동일한 이니셜라이저..