일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Protocol
- 운영체제
- widget
- dispatchqueue
- 멋쟁이사자처럼
- composable architecture
- widgetkit
- spritekit
- 알고리즘
- 백준
- 영남대
- 리액트
- 후기
- 대외활동
- uikit
- 스유
- ReactorKit
- cs
- 네트워크
- SwiftUI
- 웹
- swift concurrency
- TCA
- 문법
- 컴퓨터그래픽스
- Swift
- 위젯킷
- c++
- 스위프트
- 멋사
- Today
- Total
목록앱/Swift (65)
맛동산이
transform()transform() transforms each stream. There are three transform() functions:func transform(action: Observable) -> Observablefunc transform(mutation: Observable) -> Observablefunc transform(state: Observable) -> ObservableImplement these methods to transform and combine with other observable streams. For example, transform(mutation:) is the best place for combining a global event stream ..

MKWebView란기존의 웹뷰는 UIWebView를 사용했지만, 현재는 deprecated되었다.따라서 WKWebView를 통해서 iOS에서는 웹뷰를 로딩할수 있다.WKWebView는 javascript를 통해서 네트워킹을 할수 있으며, 이는 비동기적으로 동작하게 된다.사전에 필요한 개념들을 미리 정리해보자!MKWebViewDataStore?MKWebView는 쿠키, 디스크 그리고 메모리캐시등 다양한 웹뷰의 데이터를 저장하고, 처리하는 클래스이다.즉 해당 클래스를 통해서웹사이트에서 사용하는 쿠키 관리웹사이트가 저장하는 데이터 타입 확인웹사이트에 저장된 데이터 제거등을 할수 있다.실제로 캐시를 제거하는 코드WKWebsiteDataStore.default().removeData(ofTypes:[WKWebsi..
처음에 어플리케이션을 만들때, 콜렉션뷰에서 cell 내부의 버튼을 통해서 현재 cell의 이미지를 홈뷰 이미지뷰에 넣어주기 위해서 cell 내부에는 클로저를, item controller에는 delegate를 사용해서 homeView에 이벤트를 넘겨주었는데 작동하지 않았다. Notificatin Center 우선 Notification Center은 클래스이다. 그리고 이 Notification Center의 인스턴스는 enables the broadcast of information to registered observers,라는 역할을 하는데, 번역하자면 등록된 옵저버들에게 정보를 전달해주는 역할을 한다는 뜻이다. 노티피케이션 센터는 옵저버 패턴이다. 옵저버란, 스타크래프트에서 프로토스 유닛으로 다른..

: 오토레이아웃을 통한 애니메이션을 주는 방법(constraint를 이용한)에서 layoutifneeded()가 무엇을 뜻하는지 찾다가 공부하게 되었다. Draw cycle이란, ios어플리케이션에서 view가 업데이트 되는, 과정을 의미한다. 이러한 draw cycle을 이해하기 위해서는 우선적으로, ios의 main run loop에 대한 이해를 필요로 한다. Main run loop 이전에도 잠깐 언급되었지만, uiapplication은 ios os 시스템에서 event 큐를 통해서 이벤트를 입력받고 그것을 처리하는 런루프에 의해서 해당 uiapplication객체를 생성, 그 안에서 다양한 이벤트를 처리하여, 해당객체를 리턴해주는 방식으로 작동한다. 그렇다면 런루프란 정확히 무엇을 뜻하는것일까??..

스토리보드를 기준으로 바텀시트를 직접 만들려고 햇는데 잘 안되서, 그냥 외부라이브러리 쓰기로 했다. panmodal 이라는 오픈소스 라이브러리이다. 패키지 매니저를 통해서 해당 오픈소스를 다운받을수 있다. 1. 패키지 매니저를 통해서 다운 https://github.com/slackhq/PanModal.git 다운햇으면 사용할 부분에 당연하게도, import해주자. 2. 모달해줄 뷰컨트롤 만들기 뷰컨트롤러의 종류는 크게 3개가 있다. 뷰 컨트롤러 콜렉션뷰 컨트롤러 테이블뷰 컨트롤러 해당 컨트롤러를 스토리보드에서 만들면된다. 나는 콜렉션뷰로 만들었다. 3. 콜렉션뷰 설정하기 기존의 콜랙션뷰와 동일하게 진행하면 되는데, 처음부터 콜렉션뷰 컨트롤러자체 내부에서 datasource와 delegate가 내장되어있..
UICollectionVIewCompositionalLayout 복잡한 컬렉션뷰의 중첩을 하여 만드는 레이아웃의 경우에는 IOS 13부터 compositionalLayout을 통해서 해결하였다. 컴포지셔널 레이아웃은 크게 섹션, 그룹, 그리고 아이템으로 나뉜다. 테이블뷰는 다음과 같이 구성되어있다. 각 섹션마다 안에 그룹이 있고 그 그룹안에 각각의 아이탬이 존재한다. Section NSCollectionLayoutSection을 이용합니다. Group을 담는 Container입니다. Collection View는 하나 또는 여러 개의 Section을 가질 수 있습니다. Section은 Layout의 각각의 영역을 나타냅니다. Section은 NSCollectionLayoutGroup에 의해 결정됩니다. ..
CollectionView 우선 컬렉션뷰가 어떻게 생겻는지 보고 가자. 컬렉션뷰는 다음과 같이 content-related object와, layout-realated data object로 이루어 진다. content-related object content relataed object는 테이블뷰와 동일하게 delegate, datasource로 이루어져 있다. 해당 메소드에서는 셀에 각각 어떠한 내용이 들어가는지 그리고 셀의 갯수가 몇개인지가 들어가는 기본 메소드가 존재한다. 이를 통해서 셀의 갯수와 정으를 했다면 해당 셀의 위치를 잡아주어야 하는데 이를 위해서 사용하는 클래스이다. numberOfSection : 섹션의 수 numberOfItemsInSection : 하나의 섹션에 들어갈 아이템의 ..
공식 홈페이지 가이드 bookmark bookmark 최적화를 하기 앞서서, 앱 사이즈 체크 앱사이즈 최적화 보고서 통합워크플로우를 생성해서 app thinning size report를 자동생성하도록 할수있다. 이를 통해 매번 빌드 배포시, app thinning size를 체크할수 있게 된다. 앱사이즈 최적화 보고서 만드는법 1. 직접 생성하는 법 Archive your app in Xcode. Export your archived app as an Ad Hoc, Development, or Enterprise build. In the sheet for setting the development distribution options, choose “All compatible device variant..
장점 우선 rxDataSource가 나오는 이유는 tableView와 CollectionView의 delegate가 많은 메소드를 생성해야하는 부분에서 불편감이 많기 때문이다. 즉 굳이 tableViewDelegate, collectionViewDelegate의 프로토콜을 채택하여 메소드를 구현해줄 필요가 없어진다. 이전의 rx를 사용한 datasource를 사용하게 되면, 여러 섹션이 존재하거나, 데이터 추가, 수정, 삭제등의 변경사항이 생겨도 reloadData를 기반으로 움직이기 때문에 애니메이션을 사용하기가 굉장히 힘들었다고 한다~ (난 써본적없다. ) 이러한 부분을 RxDataSource는 SectionModelType과 AnimatableSectionModelType을 통해서 해결하였다. 이름..