일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- stateobject
- swift
- WWDC
- CS
- gesture
- iphone
- dataflow
- firebase
- SwiftUI
- arkit
- auth
- RxSwift
- ios
- Animation
- 달력
- 접근성제어
- Network
- UIKit
- 네트워크
- avsession
- state
- authentication
- view
- Performance
- 최적화
- toolbarvisibility
- Concurrency
- withAnimation
- combine
- GCD
- Today
- Total
목록Swift/UIKit (9)
XLOG

1. ObservableObservable = Observable sequence = seqquenece비동기이벤트를 만들고, emitting 한다.관찰 가능한 함수형태의 연산자next 를 통해 이벤트를 방출completed 이벤트를 통해 종료error 가 발생되더라도 종료된다.// just: 하나의 요소를 방출하는 Observable sequence 를 생성let just = Observable.just(1)// of: 여러 요소를 순서대로 방출하는 Observable sequence 를 생성let of = Observable.of(1,2,3,4,5)// from: array 를 취하며 array 내부 요소를 하나씩 방출하는 시퀀스를 생성let from = Observable.from([1, 2, 3,..

1. DiffableDataSource 란?Apple 이 WWDC19 에서 발표한 iOS 13 이상부터 사용이 가능한 UITableView, UICollectionView의 데이터 관리를 쉽게 하기 위한 도구이다.2. DiffableDataSource 의 특징선언적 업데이트DiffableDataSource 를 사용하게 되면 사용하고 싶은 데이터를 선언하여 적용할 수 있다.Snapshopt 기반데이터 소스를 직접 관리하는 것이 아닌 Snapshopt을 활용하여 스냅샷의 변경사항을 단순한 UI 뿐만이 아닌 애니메이션까지 적용한다.프레임 워크에서 자동으로 비교하여 적용하기에 특별한 관리 없이 최적화된 변화를 적용한다.3. 공식 문서DiffableDataSource 는 class 객체로 collectionVi..

1. 배경 많은 취업 공고에 Autolayout 에 대한 이해를 기본 자격요건으로 적혀있는 경우가 많다. Autolayout 이 왜 중요할까? 이유는 간단한 것 같다. 2010년 이전엔 대부분이 비슷한 크기, 비슷한 비율의 모니터로 인터넷을 사용했다. 하지만 2010대에 다양한 핸드폰, 태블릿... IT 서비스를 즐길 수 있는 다양한 기기가 나왔으며, 그만큼 사이즈 또한 다양해졌다. 가로모드까지.... UIKit 의 경우 이전 포스팅에서도 얘기를 했었지만, 명시형 프로그래밍 언어이다. View 를 명시하고 추가할때, 사이즈도 추가를 해줘야 한다. 위에 사진을 보게 되면, 사이즈를 정한 View의 경우 시뮬레이터 상에서 우리가 확인할 수 있지만, 사이즈를 지정해주지 않은 View는 눈에 보이진 않는다. 하..

UIKit 에서 UIView 에 cornerRadius 를 주기 위해선 layer 에 속성값을 주고 clipToBound 를 해준다. 마치 View 를 Layer로 자르는 작업을 하는 듯... 그렇다면 이 Layer 는 무엇일까? CALayer 타입이다. CA 는 CoreAnimation 을 뜻한다. UIKit의 Core Animation 은 그래픽렌더링 및 애니메이션 인프라라고 한다. 그리고 Layer 는 우리의 View 가 Core Animation에서 작동하도록 만들어 주는 요소인 것 같다. 왜 UIKit은 Core Animation을 사용할까? 우리의 UI 는 단순히 view를 보여주기만 하는 것이 아닌 사용자와의 인터랙션도 일어난다. 다들 알고 있겠지만 main thread 는 UI를 담당하고 ..

https://yagomacademy.notion.site/iOS-2-3f670cc9788f4384b000bfe940447d59 원티드 프리온보딩 챌린지 iOS 2차과정 사전과제 - 사전과제는 자신의 GitHub의 공개 저장소에 작성하여 링크를 전달주세요. [제출 링크] - 사전 과제는 챌린지를 준비하며 스스로의 학습 수준을 점검하기 위한 용도입니다. - 학습 커리큘럼은 사 yagomacademy.notion.site 커리어 전환을 위해 작년 Apple Developer Academy 1기를 수료 후, 취업 준비를 하는도중 원티드에서 프리온보딩 iOS 챌린지가 열린다는 소식을 들었다. 참가신청을 하려고 했더니 동시성 프로그래밍 관련 과제가 있었다. 과제는 GCD 를 이용하여 이미지를 불러오는 것이었다. ..

프로젝트를 진행하면서 UICollectionView 와 Image를 함께 사용할 일이 많았다. Asset을 이용하여 사용할 때는 큰 문제가 없었지만, 서버에서 이미지를 불러오면서 그 효율성에 대한 고민을 하기 시작했다. 그리기 위해 UIImage, UiImageView 가 어떻게 동작하는지 알아야 겠다는 생각을 했다. 그래서 WWDC18 에 Image and Graphics Best Practice 영상을 확인했다. 보통 이미지는 우리 데이터공간, 혹은 네트워크를 통해 다운받아 UIImage로 Load 하여 Decode 한다. Decode를 하는 과정에서 image사이즈에 따라 image buffer의 크기가 결정된다. Buffer 란 연속되 메모리 영역이다. Buffer엔 Data Buffer, Ima..

우선적으로 프로젝트에 FirebaseAuth 와 GoogleSignIn을 설치해야 한다. (pod or Swift Package Manager) 이용 custom URL schemes 를 Xcode 프로젝트에 추가한다. GoogleService-Info.plist 에 REVERSED_CLIENT_ID 값을 확인(복사) Info plist에서 URL Types 에 + 버튼 클릭 URL Schemes 에서 a에서 복사한 붙여넣기 URL Scheme는 특정 형태의 URL로 내 앱을 호출할 수 있다는 것이다. 즉 URL을 통해 다른 앱과 통신할 수단을 제공하는 것이다. AppDelegate 에 application:didFinishLaunchingWithOptions: 메서드에 FirebaseApp.config..
SwiftUI의 경우 view에 onTapGesture를 추가하게 되면 간단하게 탭제스쳐에 반응을 할 수 있게 된다. 하지만 UIKit에서는 onTapGesture가 없다. 하지만 개발을 하다보면 버튼이 아닌 imageView 나 기타 UIView에 액션을 추가하고 싶은 일이 발생한다. 우리에게 필요한것은 gesture 객체와, view가 필요하다. 또한 viewController에 view에 isUserInteractionEnabled 의 변수 값을 true로 설정해주면 된다. private let actionView = UIView() let gesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(t..
우리는 UITextField를 컨트롤 하기 위해 UITextFieldDelegate를 상속받아야 한다. UITextFieldDelegate에는 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {} 함수가 존재하는데 return 값이 true 면 수정이 가능하며, false 면 textfield 값의 수정이 불가능 하다. 맨처음 접근은 위의 함수에서 string 값의 갯수를 카운트하여 갯수에 따라 return 값을 조절해 주려고 했다. 하지만 한글은 초성, 중성, 종성이 결합되어 한글자로 카운트가 되어야 한다. 하지만 위에 함수에서는 ..