[Sample App] About Me
·
iOS/SwiftUI
Tabview Tab을 만들어 각각의 view 마다 다른 화면을 보여주는것 Tabview { View() .tabItem { //- tabItem 의 내용 이미지, 이름 등을 설정 } } tabItem에는 Label , Text, Image 만 허용하고, Button 과 같은 컴포넌트가 포함되면 해당 뷰는 빈 페이지로 로드 Data Model 개념의 구조체로 데이터의 ‘청사진' 을 구성 struct Info { let image: String let name: String let story: String let hobbies: [String] let foods: [String] let colors: [Color] let funFacts: [String] } 해당 데이터의 모델 구성하면, 앱의 전반적인 곳..
View 프로토콜
·
iOS/SwiftUI
SwiftUI에서 어떠한 view는 View 프로토콜을 준수해야 한다 protocol View { associatedtype Body: View var body: Self.Body { get } } => 프로토콜을 보면 알 수 있듯, 필수로 구현해 줘야 하는것은 연산프로퍼티인 읽기 전용 body 임을 알 수 있음 Text, Image, Color, Stack, Group, GeometryReader 등의 컨텐츠나 컨테이너 뷰에는 더이상 Body를 호출하지 않게 Never 타입을 사용 typealias Body = Never
SwiftUI의 4가지 원칙
·
iOS/SwiftUI
1. 선언형 명령형 vs 선언형 명령형 UIKit 의 경우 명령형 선언으로써, 방법(How)에 초점을 두어 코드를 서술한다. 1) 버튼을 생성 2) 버튼의 제목 설정 3) 버튼 제목의 색상 설정 4) 폰트 지정 5) 버튼 클릭시 호출할 메서드 지정 6) 루트 뷰에 자식 뷰를 추가 7) 버튼을 화면 가운데로 배치 선언형 SwiftUI의 경우 선언형 선언으로써, 무엇(What)에 초첨을 두어 코드를 서술 Button(action: { print("Hello, SwiftUI") }) { Text("SwiftUI") .font(.title) .foregroundColor(.black) } => 버튼을 생성하는데 버튼의 글자는 "SwiftUI" 이고, 폰트는 title, 색상은 검정색, 클릭했을때는 "Hello,..
Frame vs Bounds 차이점
·
iOS
이제부터 습관화 하기로 했다.. 무언갈 찾아볼때 순서를.. 1. 공식문서 2. 이해 안된 내용 + 추가적인 내용에 대해서 구글링 결론.. 공식문서 짱짱.. 1. 공식문서 훑어보기 1) Frame The frame rectangle, which describes the view’s location and size in its superview’s coordinate system. -> 슈퍼뷰 를 기준으로 위치 및 크기를 정의 강조한 부분을 잘 기억해야한다! 기준점이 자신보다 한단계 위의 뷰인 슈퍼뷰 이다! var frame: CGRect { get set } 2) Bounds The bounds rectangle describing the item’s location and size in its own c..
ARC - 기초 개념
·
iOS/iOS 개념
iOS 공부하면서 스토리보드에서 컴포넌트를 끌어다 놓을때 strong / weak 의 연결을 하는것을 알게되었고 이게 무슨의미인가.. 싶었지만 그냥 weak으로 해라! 라고만해서 그 의미에 대해 깊게 파악해보진 않았던거 같다.. 그래서 이 강한참조 / 약한참조 의 근본(?)인 ARC 를 공부해보쟈! What is ARC? ARC 는 Automatic Reference Counting의 약자다! ARC는 메모리를 스스로 관리하는 기능을 수행한다 일반적으로 Swift가 자동으로 ARC를 이용해 메모리를 관리하기 때문에 사용자는 메모리는 어떻게 처리해야하는지 깊게 생각할 필요는 없다고.. (공식문서에 써있다..) 💡 Objective-C 에서는 MRC 라고 하는 수동 메모리 관리 기법을 사용하였다, Objec..