What’s New in Swift 오늘날 여러방면으로 스위프트 주변이 활성화 되고있다. 차례 애플 OS와 API에서의 스위프트 오픈소스 라이브러리 크로스 플랫폼 스위프트5의 ABI 안정성으로 바이너리 프레임워크가 더욱 빨라졌다. 이는 강력한 새로운 API를 출현하도록 이끌었다. 결국 스위프트는 크로스 플랫폼 언어로 도달했다. 스위프트 런타임 퍼포먼스 코드 사이즈 코드 사이즈는 앱의 일부이고 앱의 로직에서 기계어를 나타낸다. 코드 사이즈는 지금까지 최적화에 집중해서 여러번에 걸쳐 출시했다. 그 과정을 추적해보자 (줄어드는 바이너리 사이즈) 스위프트와 오브젝티브씨 버전을 비교했을 때, 스위프트4 에서는 코드 사이즈가 오브젝티브씨의 2.3배였다. 스위프트4.1에서 코드 사이즈 최적화 설정으로 큰 덩어리를 걸..
WWDC 2020 애플은 코로나 바이러스의 영향으로 ‘WWDC2020'를 온라인 라이브 스트리밍으로 개최했다. 1) iOS 새롭게 iOS14를 출시한다. 홈 화면세월이 지나도 변치 않는 홈 화면.지금까지 기본의 형태를 유지하되 신중하게 몇 가지 요소를 추가했다.예를 들어 폴더, 위젯 등 개인화된 경험이 추가되었다.기존에는 앱이 점점 늘어나면서 페이지가 많아지게 된다.그리고 각각의 페이지에 어떤 앱이 존재하는지 모르는 상황도 발생하게 된다. 그래서 앱 보관함(App Library)이 생성된다.이는 카테고리 별로 분류하여 앱을 쉽게 찾을 수 있게 하고 홈 화면에 마지막 페이지에 존재하게 된다.또한 검색을 통해 앱 검색도 할 수 있다. 위젯 우리는 위젯으로 한눈에 데이터를 확인할 수 있다.위젯은 더 풍부한 데..
업무를 처리하다가 프로퍼티의 상황을 체크해야 하는 작업이 있었다. 프로퍼티 옵저버 프로퍼티 값이 설정될 때마다 옵저버가 호출된다. willSet은 값이 저장되기 직전에 호출된다. didSet은 값이 저장된 직후에 호출된다. 그래서 당연히 프로퍼티 옵저버를 사용해야지 하며 사용했다. 초기화하면서 당연히 여기서 프로퍼티 옵저버도 사용되겠지 하면서 사용했는데 초기화 시에는 옵저버가 호출되지 않았다. 그래서 뭐지 🤔이상하네 하면서 문서를 보니까 나만 몰랐던 내용이 적혀있었다. 또 찾아보니 프로퍼티 옵저버를 사용하기 위해서는 프로퍼티의 값이 반드시 초기화되어 있어야 한다고 나와있었다. 그렇기 때문에 클래스의 init()안에서 값을 할당할 때 didSet과 willSet이 호출되지 않았다. 생각해보니 옵저버가 관찰..
스탠퍼드 대학의 강의를 학습하면서 Identifiable프로토콜을 사용하길래 궁금해진 Identifiable 프로토콜 🤔 그래서 오늘은 Identifiable 프로토콜에 대해서 살펴보겠습니다. 저는 이 친구를 처음 보았는데요. 이 프로토콜은 5.1에 구현되었다고 합니다. 한마디로 말하자면 Indentifiable프로토콜은 식별 가능하게 하는 프로토콜입니다. 이 프로토콜이 어떻게 이뤄져 있는지 살펴보겠습니다. associatedtype으로 ID가 선언되어 있습니다. 그리고 이는 Hashable을 준수합니다. Hashable프로토콜을 준수하기 때문에 hashValue를 갖게 됩니다. 이 hashValue는 각 인스턴스를 식별 가능하도록 합니다. 예를 들어서 카드 매칭 하는 게임을 만든다고 해봅시다. 카드를 ..
클래스 내 상수 프로퍼티 / 클래스 인스턴스 상수 클래스 A의 property를 상수로 선언했다. 클래스 인스턴스 one, two를 상수로 생성했다. ❌ 여기서 one의 a값을 10으로 변경해보면 에러가 발생한다. ❌ 여기서 one을 two의 참조값으로 변경해보면 에러가 발생한다. 아무것도 변경할 수 없음. 클래스 내 변수 프로퍼티 / 클래스 인스턴스 상수 클래스 A의 property를 변수로 선언했다. 클래스 인스턴스 one, two를 상수로 생성했다. ⭕️ 여기서 one의 a값을 10으로 변경해보면 잘 변경된다. ❌ 여기서 one을 two의 참조값으로 변경해보면 에러가 발생한다. 결과 클래스 내에 선언된 프로퍼티는 변수라 변경 가능하다. 하지만 참조값은 변경되지 않는다. 클래스 내 상수 프로퍼티 / ..
https://www.raywenderlich.com/762435-swift-interview-questions-and-answers 에서 본 인터뷰 질문에 내 생각을 작성해봄. 튜토리얼 1의 값은 1이고 튜토리얼 2의 값은 2다. 레퍼런스를 참조하는 것이 아니라 복사하기 때문에 1과 2를 별개로 생각해야 한다. 클래스였다면 튜토리얼1, 튜토리얼 2는 2가 될 것. 참조값이 변경되는 것을 논함. 변수면 참조값이 변할 수 있고 상수면 변할 수 없다. view2의 프로퍼티를 변경하는 건 상관없다. view2에 새로운 참조값을 넣는건 불가능. animals.sort { return $0 < $1 } animals.sort { $0 < $1 } animals.sort(by:
SwiftUI에서 스택은 3가지 종류가 있습니다. 3가지 종류는 VStack, HStack, ZStack입니다. VStack 먼저 VStack을 살펴보겠습니다. 공식 문서를 살펴보면 VStack은 Gneric Structure이며, 자식들을 수직으로 배열하는 뷰입니다. ContentView의 body에 VStack을 추가하겠습니다. VStack에는 Text가 두 개 들어가 있습니다. Hello, World1 그리고 Hello World2가 수직으로 나열됩니다. HStack 다음은 HStack을 살펴보겠습니다. 공식 문서를 살펴보면 HStack은 Gneric Structure이며, 자식들을 수평으로 배열하는 뷰입니다. ContentView의 body에 HStack을 추가하겠습니다. HStack에는 Text..
SwiftUI에서 뷰 라이프 사이클 이벤트는 onApeear, onDissapear를 통해서 반응한다. SwiftUI는 UIKit의 같게 viewDidAppear( )과 viewDidDisappear( ) 대신대신 onappear( )그리고 ondisapppear( )를 가진다. VStack에 onAppear( ) 메소드를 작성해주면, VStack이 나타날 때마다 메소드가 호출되어 appear :)이 출력될 것이다. 실행을 시켜본다. appear :)이 잘 출력되는 것을 확인할 수 있다.
- Total
- Today
- Yesterday
- SWIFT
- objc
- 책
- iOS SwiftUI
- string
- ios
- 스위프트
- 독서
- swiftUI
- stanford SwiftUI
- 알고리즘
- 문자열
- Xcode
- swift5
- Deep learning
- 애니메이션
- rxswift
- 스위프트UI
- ReactiveX
- 책 추천
- Animation
- ARC
- RX
- objective-c
- leetcode
- 딥러닝
- 책 후기
- wwdc
- Algorithm
- 머신러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |