일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙터링
- SWIFT
- uitableview
- Human interface guide
- UITextView
- Xcode
- clean architecture
- Clean Code
- HIG
- combine
- uiscrollview
- 스위프트
- collectionview
- MVVM
- RxCocoa
- Protocol
- 리펙토링
- 리팩토링
- Refactoring
- map
- rxswift
- UICollectionView
- ribs
- swiftUI
- Observable
- swift documentation
- ios
- 애니메이션
- 클린 코드
- tableView
- Today
- Total
목록iOS framework (33)
김종권의 iOS 앱 개발 알아가기
1. Kingfisher 프레임워크 (이미지 캐싱, 이미지 로드) - 사용 방법 2. Kingfisher 프레임워크 (이미지 캐싱, 이미지 로드) - .processor, progressiveJPEG 옵션 .processor 옵션 URL로부터 이미지를 불러올때 보통 down sampling이라는 것을 통하여 이미지 그대로 불러오는게 아닌, 필요한 사이즈만큼 샘플링해서 가져오는데, 이때 이 기능을 사용하는 옵션 down sampling할때 얼마만의 크기가 필요한지 알아야하는데, 아이폰은 기기의 해상도별 픽셀의 수가 다르므로 UIScreen.main.scale을 이용 ex) UIScreen.main.scale값 - iPhone7은 2.0, iPhone 13 Pro는 3.0 ex) 예제 코드 imageURLS..
1. Protobuf (프로토콜 버퍼) 사용 방법 - 개념, 설치 2. Protobuf (프로토콜 버퍼) 사용 방법 - Xcode 자동화, Build script, Shell Script 연동 * 이 포스팅 글전에 이전 글, rotobuf (프로토콜 버퍼) 사용 방법 - 개념, 설치 참고 (아래 글에서 사용할 샘플용 시작 프로젝트 - 링크) 기본 지식) 리눅스 명령어 find와 같이 쓰이는 -exec -exec: 조건을 가지고 찾은 파일들을 대상으로 다음 명령어를 실행 -exec는 세미콜론을 만나기 전까지 포함하므로, 명령의 끝에는 꼭 세미콜론이 필요 주의) 세미콜론만 적으면 유닉스에서 명령어를 연속적으로 실행하라는 의미가 있으므로, (clear;ls하면 clear후 ls 명령어 실행) 연속적으로 실행하..
1. Protobuf (프로토콜 버퍼) 사용 방법 - 개념, 설치 2. Protobuf (프로토콜 버퍼) 사용 방법 - Xcode 자동화, Build script, Shell Script 연동 기본 지식) 직렬화 (Seirialize) (protobuf는 직렬화 기술중에 하나이므로 직렬화에 관한 이해가 필요) 객체의 내용을 binary file로 만드는 것 객체의 내용을 byte 단위로 변환하여, 송수신이 가능하도록 하는 것을 의미 서버, iOS, 안드로이드 등 모두 데이터를 주고 받을 때 형식을 Int, String 등의 형태로 주고받을 수 있지만, Int만해도 메모리의 크기를 다 다르게 점유하므로 공통된 형식이 필요 공통된 형식인 byte단위의 데이터를 주고 받게된다면 모두 byte로 받아서 필요한 ..
구현 아이디어 PhotoService라는 클래스를 싱글톤으로 만든 후, 이 서비스를 통해서 앨범에 있는 사진을 꺼내오도록 구현 PhotoService의 주요 메소드 getAlbums(): iOS에는 일반 앨범과 스마트 앨범이 있는데 이 앨범 정보들을 불러오는 메소드 getPHAssets(album:): 앨범을 파라미터로 주면 해당 앨범에 있는 이미지들 [PHAsset] 정보를 가져오는 메소드 fetchImages(asset:size:contentMode:): asset을 파라미터로 주면, 해당 asset을 UIImage로 변경하는 메소드 구현 UI 구성 ViewController에서 album버튼을 누르면 PhotoViewController 화면이 나오고, 이 화면은 collectionView와 pick..
xUnique 충돌 문제 대응 Xcode는 프로젝트 정보를 .xcodeproj 파일을 통해 관리하는데, 이 파일 에서는 파일을 새로 생성할 때마다 UUID가 달라지고, 파일들이 정렬되지 않아 충돌 문제가 존재 xUnique는 동일한 파일에 같은 UUID를 할당하고 이름을 기준으로 정렬하는 방식을 사용 xUnique은 python으로 설치해야 하므로 python 설치 home brew 설치 파이썬 DI 관리 도구인 poetry 설치 python의 pip는 .lock파일이 없어서 버전관리가 번거롭지만, poetry는 lock파일이 존재하여 버전 관리에 용이 (DI 관리) // intel brew install poetry // apple silicon chip arch -arm64 brew install p..
UIGestureRecognizer Gesture를 등록할 때는 UIView의 성격을 가지고 있으면 UIGestureRecognizer를 등록하여 사용 // tap gesture let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:))) myView.addGestureRecognizer(tapGesture) @objc func handleTap(_ sender: UITapGestureRecognizer? = nil) { // handle... } // swipe gesture let swipeGesture = UISwipeGestureRecognizer(target: self, action: #se..
1. GraphQL - 개념 2. GraphQL - Apollo 사용 준비 3. GraphQL - Apollo 모델 생성 (generate model) 4. GraphQL - Apollo의 request pipeline, Interceptor, token, header 5. GraphQL - Apollo의 fetch 예제 (Pagination) Apollo 준비 1~3 개념을 참고하여 튜토리얼 Sandbox에서 아래 쿼리 생성 & generate query LaunchList { launches { hasMore cursor launches { id site mission { name missionPatch(size: SMALL) } } } } Apollo 접근 singleton 정의 import Apo..
1. GraphQL - 개념 2. GraphQL - Apollo 사용 준비 3. GraphQL - Apollo 모델 생성 (generate model) 4. GraphQL - Apollo의 request pipeline, Interceptor, token, header 5. GraphQL - Apollo의 fetch 예제 (Pagination) Request pipeline, Interceptor 작업이 실행되면 작업이라는 개체가 InterceptorProvider를 생성 - RequestChain이 되는 것 이 chain이 First Interceptor, Second Interceptor들을 실행 Interceptor의 기능 HTTP Header 추가 가능 서버에 request 기능 Intercept..