분류 전체보기35 Building Custom View with SwiftUI(WWDC19) - 1 SwiftUI는 UIKit에 비해 상당히 편하게 View를 만들어준다. 하지만, 조금만 Custom하려고 하면 상당히 애를 먹곤 했었는데, WWDC의 내용을 보면서 조금씩 기초를 이해 해보자. 기본 레이아웃 규칙 SwiftUI의 Layout에는 다음과 같은 규칙이 기본적으로 있다. 간단하게 Hello World를 가지고 있는 TextView를 보여준다고 해보자. 예시의 View Hierarchy는 위와 같을 것이다. 하지만 ContentView는 중립 상태이기 때문에 항상 body의 크기를 따라간다. 따라서, Layout의 관점에서 볼때에는.. Root View와 Text의 계층이 있다고 생각 할 수 있다. 여기서 LayoutSystem은 세 가지 단계를 거친다. 1. Root View는 적당한 사이즈를.. 2022. 11. 12. iOS Bluetooth 목표 iOS에서 블루투스의 전반적인 기능과 구현방식을 알아보고 이해하기. Core Bluetooth & BLE(Bluetooth Low Energy) iOS와 Mac App들은 Core Bluetooth framework를 사용하여 BLE 기능이 탑재된 기기와 통신한다. Ex) 심박수 모니터, 디지털 온도 조절계 등등.. Mac및 iOS 기기들은 MacOS 10.9, iOS 6버전 이상이라면 기능을 지원하기 때문에, 거의 모든 기기들이 기능을 가지고 있다고 할 수 있다. Core Bluetooth Framework는 저수준의 BLE protocol stack을 추상화 해주어 개발자로 하여금 쉽게 블루투스 기능을 개발하게 도와준다. * BLE란, 기존 블루투스의 단점이었던 전력 소모의 단점을 보완한 기술이.. 2022. 10. 7. 클래스의 초기화 iOS 개발을 하다보면 한번 쯤은 밑과 같은 코드를 사용한다. 클래스에서 이니셜라이저를 override(재정의)하는 코드인데 super.~~~를 쓰지 않으면 에러가 나는 경우가 많았다. 하지만.. 어떤경우에는 super.~~~코드를 빼도 컴파일 에러가 나지 않는 경우도 있었다. 그 이유 에 대해 알아보기 위해 Swift에서 클래스의 초기화가 어떤 방식으로 이루어 지는지 알아보았다. override init() { self.property = "property" super.init() } 클래스 초기화 Swift에서 클래스들의 초기화는 크게 2단계를 거친다. 클래스에 정의한 각각의 저장 프로퍼티에 초깃값이 할당됨. 새로운 인스턴스의 사용이 준비됐다고 알려주기 전에 저장프로퍼티들을 커스터마이징 할 수 있는.. 2022. 8. 7. DiffableDataSource 알아보기. DiffableDataSource 얘는 대체 뭘까? The object you use to manage data and provide cells for a collection view. - 애플 TableView 혹은 CollectionView의 데이터를 관리하고 cell을 제공하기 위한 object. 근데 이미 우리는 dataSource를 사용하고 있지 않나? 이 친구는 어째서 나오게 된걸까? 탄생 배경 애플의 표현에 따르면 단하나의 Truth Data를 가질 수 있게 하기 위해서라고 한다. Truth Data가 뭔데?? 우리가 일반적인 DataSource를 이용해서 CollectionView를 구현할 때를 살펴보자. DataSource에 있는 함수들을 이용해서 우리는 View를 그리게 된다. 이 함수.. 2022. 7. 25. 이전 1 2 3 4 5 6 ··· 9 다음