본문 바로가기

반응형

분류 전체보기

(65)
SwiftUI) GridItem 알아보기 SwftUI Grid에 대해서 공부하면서 제일 어려웠던 GridItem이다.. GridItem이란? LazyGrid의 행과 열에 대한 설명이다..? 무슨 말이냐면 저번 글에서 LazyGrid에 대해서 공부할 때, LazyHGrid의 선언부를 보면 rows는 [GridItem]으로 타입이 나타나 있다. 결과적으로 LazyGrid의 각 열 혹은 행의 크기를 정하고 배치하는 역할(레이아웃 속성을 지정)을 하는 애로 보면 될 것 같다. GridItem의 선언부를 보면 다음과 같다. size: gridItem의 크기 spacing: item 사이의 간격 alignment: 그리드 항목에 사용할 정렬 방법 이렇게 보면 너무 간단하게 나와있어서 좀 더 들어가보겠다. GridItem.Size에 들어갈 수 있는 Case..
SwiftUI) LazyH(V)Grid 알아보기 저번 시간에 Grid와 GridRow에 대해서 공부하면서 막연했던 Grid에 대해서 감을 잡을 수 있었다. 오늘은 이어서 LazyH(V)Grid에 대해서 공부해보도록 하겠다. 지난번에 LazyStack에 대해서도 공부했는데 "Lazy"가 붙었을 때는 공통점이 있었다. 1. 한번에 모든 하위 뷰를 그리지 않는다.(렌더링을 빠르게 하기 위해) 2. 일반 Stack이나 Grid로 그릴 때, 너무 많은 뷰를 그려 성능이 떨어지는 경우에만 사용해라(Lazy를 먼저 고려하지 말아라) 이번 LazyGrid 역시도 마찬가지였다. 우선 공식문서의 내용을 더 살펴보자 LazyHGrid 수평으로 증가하는 그리드에서 하위 뷰를 정렬하고 필요한 경우에만 항목을 생성하는 컨테이너 뷰 2차원 레이아웃으로 배열된, 크고 수평으로 스..
SwiftUI) Grid, GridRow 알아보기 SwiftUI에서 레이아웃을 구성할 때 주로 HStack, VStack을 많이 사용해왔다 사실 Grid라는 개념을 최근에 알게 되어서 공부해봤는데 쉽지 않았다..! 그래도 공식문서를 보면서 공부하니 많은 도움이 되었고 어떤 기능들이 있는지 좀 더 확실하게 알게 되었다! 우선 Grid Grid란 쉽게 말해 다른 뷰들을 2차원 배치로 정렬하는 컨테이너 뷰이다. 우선 간단한 Grid 예제를 보자 이것만 봤을 때는 HStack, VStack으로 구현하는 느낌이 들었다. Grid는 VStack?, GridRow는 HStack? 여기까지는 공식문서에서도 비슷하게 소개한다. A grid and its rows behave something like a collection of HStack instances wrapp..
SwiftUI @Binding 알아보기 최근 SwiftUI 공부를 다시 시작하였다. 화면을 만드는 것은 UIkit보다 간결한 것 같지만 개념이 다른 부분이 달라 정리할 필요를 느꼈다..! @Binding이란? A Property wratter type that can read and write a value onwned by a source of truth @Binding 프로퍼티 래퍼는 전달받은 데이터를 읽거나 직접 변경할 수 있도록 만들어진 타입이다. 예시를 들어 @Binding을 왜 사용해야 하는지 알아보겠다. 다음과 같이 SuperView안에 SubView(버튼)을 가져다 쓴다고 가정해보자. SubView의 버튼은 SuperView의 클릭 여부에 따라서 상태가 바뀌게 될 것이다. 이때, SuperView와 SubView의 상태는 같아야..
Swift 공부) iOS Google Admob 구현해보기 ,The Google Mobile Ads SDK was initialized without AppMeasurement 에러 해결 오늘은 앞으로 진행할 프로젝트에 광고를 달아보면 어떨까하는 생각에 Google Admob으로 광고를 띄우는 방법을 알아보았다. https://developers.google.com/admob/ios/quick-start 시작하기 | iOS | Google Developers iOS 앱을 제작 중인 AdMob 게시자를 위한 모바일 광고 SDK입니다. developers.google.com 사실 공식문서 중에 정말 쉽고 간단하게 나와있기 때문에 보고 그대로 따라하면 되지만 중간에 하나의 에러를 만나서 글을 써서 다음에 참고해야겠다라는 마음으로 글을 쓰게 되었다! 1. 모바일 광고 SDK 가져오기 여기에는 2가지 방법이 있다. cocoapods, SPM 공식문서에는 cocoapods을 권장하고 있지만 SPM이..
Swift 기본 문법) 상속 알아보기 상속을 공부하는데 어려움이 항상 많았는데 좋은 포스팅이 있길래 이 글을 토대로 공부를 해보고자 한다. 클래스(Class)는 상속이 가능하며, 오직 하나의 상속만이 가능하다. 또한 메섣, 프로퍼티 등을 상속할 수 있다. Base Class(기반 클래스)란? 다른 어떤 클래스로부터도 상속받지 않은 클래스를 기반 클래스라고 한다. class Vehicle { var currentSpeed: Double = 0.0 var description: String { return "현재 속도는 \(currentSpeed)입니다. " } func makeNoise() { } } let bike = Vehicle() print(bike.description) 간단하게 Class를 만들어봤다. Vehicle이라는 Class..
swift 기본 문법) 연산 프로퍼티(get, set) 알아보기 오늘은 수업에서 다뤘던 연산 프로퍼티에 대해서 복습해보려고 한다. 우선 연산 프로퍼티의 핵심 내용은 다음과 같다. 1. 클래스, 구조체, 열거형에 사용 2. 저장 프로퍼티와 달리 저장 공간을 갖지 않는다. + 저장할 프로퍼티를 만들어야 한다. 3. 항상 var로 정의해야 한다. (다른 프로퍼티의 값을 연산, 프로퍼티로 전달받은 값을 다른 프로퍼티에 저장하기 때문에) 연산 프로퍼티 말을 이해해보면 값을 저장하지 않고 연산을 하는 프로퍼티구나 라고 짐작해볼 수 있다. 그리고 연산 프로퍼티는 값을 저장하지 않고 연산하기 때문에 어떤 타입을 연산할지 알기 위해 타입을 명시해야 한다. 추가로 연산 이라고 하면 어떤 값을 받고 다른 프로퍼티에 넘겨줄지를 알아야 한다고 짐작할 수 있다. 우선 예시를 들어서 설명하면 ..
swift 기본문법) if let, guard let의 목적과 의미 알아보기 최근 수업을 들으면서 문법을 다시 공부하고 있다. 무심히 쓴 코드들에 대한 의미를 다시 한번 듣고 이해하면서 좋은 공부가 되어가고 있다. if le과 guard let은 Optional Binding과 연결되어 있는 개념이지만 추가적인 개념이 있어서 정리해보았다. Optional이란? 이 변수에는 값이 있을 수도 있고 없을 수도 있다.라는 의미이다. 개인적인 경험으로 optional이 왜 필요해볼까를 생각해 봤을 때, 앱이 네트워크 통신으로 값을 받을 때, 항상 값이 있다고 확신할 수 없다. optional을 사용하지 않고 변수를 선언하였는데 빈 값이 온다면? 해당 코드가 이니셜되었을 때 앱은 죽게 될 것이다. 이러한 이유 때문에 Optional 이 유용하게 사용되었다. 하지만 Optional로 처리를 ..

반응형