일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- widgetkit
- 멋사
- widget
- Swift
- 문법
- 위젯킷
- cs
- 네트워크
- 후기
- 컴퓨터그래픽스
- SwiftUI
- 영남대
- spritekit
- 웹
- TCA
- composable architecture
- 스유
- 대외활동
- uikit
- 운영체제
- 멋쟁이사자처럼
- 리액트
- dispatchqueue
- Protocol
- 스위프트
- 백준
- swift concurrency
- 1일1알골
- 알고리즘
- c++
- Today
- Total
목록앱/Swift (61)
맛동산이
스토리보드를 기준으로 바텀시트를 직접 만들려고 햇는데 잘 안되서, 그냥 외부라이브러리 쓰기로 했다. 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을 통해서 해결하였다. 이름..
예전에 urlSession을 간단하게 사용해본적은 있지만, 명확하게 사용을 깔끔하게 헤더와, 다양한 파라미터를 넣어서 사용해본적은 없기때문에 정리를 하게 됐다. URLSession의 큰틀은 다음과 같다. URL 생성 URL Request 생성 URLSession 생성 URLtask생성 resum 하지만, 여기에서 URLRequest 를 생성하는 시점에서 다양한 헤더, request body, parameter, query를 추가해서 다양한 내용을 전달할수 있기 때문에 이를 한번 디테일하게 정리해보자 한다. URLRequest struct Body: Codable { let page: Int let results: String let totalPages: Int enum CodingKeys: String,..
Combine을 처음 공부할때 가장힘들었던점 콤바인, rx모두 같은 맥락으로 처음 공부할때 힘든점은 그래서 subscriber, publisher가 뭔지는 알겠는데 어떻게 생성하는가? 이다. 따라서, 최대한 쉽게 나만의 해석을 하고 이해하여서 설명해보려고 한다. Combine을 사용하는 이유 우선 콤바인을 사용하는 이유를 이해 해야하는데, 콤바인을 사용하는 이유는 공식문서에 나와있다. 하지만 내가 생각하는 combine이나 rx를 사용하는 이유는 바로 데이터 바인딩을 하기 위함이다. 데이터 바인딩을 한다는 말은, 뷰에 있는 어떠한 컴포넌트(textfield, button, text..)에 이벤트 감지를 하고, 감지를 통해서 다시 어떠한 값의 변경을 이끌어 내는것을 의미한다 나는 이러한 방법에서 combi..
대표적으로 Foundation 프레임워크 내에서 텍스트 대치 방법은( 텍스트에 스타일을 추가해주는 방법 )은 크게 NSAttributedString NSMutableAttributedString 또한 하위로 문단 스타일을 설정하는데 있어서 NSParagraphStyle NSMutableParagraphStyle 가 있다. NSAttributedString nsAttributedString은 기본 시스템의 스타일이 아닌, 텍스트 자체에 다양한 설정을 추가할수 있는 텍스트 클래스를 의미한다. NSAttributedString 사용하는 방법 1. Attribute 선언하기 텍스트에 어떠한 설정을 주고 싶은지 미리 선언을 한다. let paragraphStyle = NSMutableParagraphStyle()..
nsLineBreakMode는 텍스트가 줄바꿈할때 어떻게 잘리는지에 대한 속성값이다. UILabel에 직접적으로 줄수있으니 어떻게 되는지 한번 살펴보자 byWordWrapping 단어가 한줄에 다 들어가지않으면 단어 단위로 줄바꿈을 한다는 속성 안녀어어어엉이 긴 단어고, 다음줄에서 끊기지 않게 하기 위해서 해당 단어에서 줄바꿈을 하게 된다. 따로 값을 주지 않는 경우에 기본값. byCharWrapping charWrapping의 경우 문자하나하나로 해서 문자단위로 줄을 끊게 된다. byClipping ByWordWrapping과 동일하게 작동한다. byTruncatingHead 줄바꿈이 없는경우 문장이 폭을 넘어가게 되면 앞부분을 …으로 처리하고 뒤에 부분이 나오도록 하는 속성 byTruncatingTa..