일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클린 코드
- ribs
- clean architecture
- uitableview
- Refactoring
- Clean Code
- collectionview
- tableView
- swift documentation
- Human interface guide
- UITextView
- ios
- Observable
- map
- 애니메이션
- RxCocoa
- 리펙터링
- swiftUI
- 리팩토링
- uiscrollview
- HIG
- SWIFT
- 리펙토링
- Xcode
- Protocol
- MVVM
- combine
- UICollectionView
- rxswift
- 스위프트
- Today
- Total
목록2023/01 (31)
김종권의 iOS 앱 개발 알아가기
Thumbnail이 나열된 뷰 트위터에서 프로필이 나열된 형태의 뷰가 존재 이 뷰에서 동그란 썸네일이 나열된 형태이며, 얼핏 보기에 어려워 보이지만 UIStackView를 사용하면 쉽게 구현이 가능 구현 아이디어 1. stackView의 spacing 프로퍼티에 음수값을 대입 2. 안에 넣는 뷰들은 나중에 추가되는 뷰가 아래로 가야하므로 layer.zPosition을 통해 제어 3. 안에 넣는 뷰들의 borderWidth와 color를 배경 색과 같게하여, 마치 썸네일이 겹치는 부분은 배경색으로 표현되게끔구현 구현 상수값 color 준비 import UIKit class ViewController: UIViewController { private let color = UIColor.lightGray } ..
LLDB란? LLVM라는 컴파일 프로젝트 안에 LLDB라는 기능이 있는데, Xcode에도 LLDB가 내장 Objective-C, Swift를 지원 LLDB 커멘드 command와 subcommand는 LLDB 디버거의 객체를 의미 LLDB 동작은 Xcode에서 브레이크 포인트를 걸고 실행 시 콘솔창에 (lldb)와 같은 단어가 보이는데 이곳에서 적절한 command를 입력하여 사용 thread list 입력 시 현재 스레드의 정보 획득이 가능 LLDB 커맨드의 특성 LLDB는 XCode에만 있는것이 아닌, 일종의 디버깅 표준이므로 LLDB docu를 참고 모든 명령어에는 단축어가 존재하여 빠른 디버깅에 도움 ex) 실행하는 명령어 run을 r로만 입력해도 동작 1. LLDB 유용한 커맨드 - po po ..
1. UI 성능 분석 - Render Loop 이해하기 (Commit, Layout, Display, Prepare, Commit) 2. UI 성능 분석 - Instrument의 Animation Hitches 사용하여 UI 성능 개선하기 3. UI 성능 분석 - Commit Hitch를 줄이는 UI 성능 최적화 프로그래밍
1. UI 성능 분석 - Render Loop 이해하기 (Commit, Layout, Display, Prepare, Commit) 2. UI 성능 분석 - Instrument의 Animation Hitches 사용하여 UI 성능 개선하기 이번 글에서는 Commit hitch를 잡는 내용 Commit 개념 (복습) commit 한다는 의미? 사용자가 버튼을 탭 > 뷰 UI 내부적으로 계산하여 업데이트 > 업데이트된 layer tree를 GPU에게 제출하는 행위 Commit Hitch란? Commit 단계가 지연되어 이전 프레임을 보여주어 끊기는 듯한 현상 발생 Commit Transaction의 4가지 단계 Layout 레이아웃 변경 단계 변경이 필요한 subview들의 레이아웃이 layoutSubvie..
1. UI 성능 분석 - Render Loop 이해하기 (Commit, Layout, Display, Prepare, Commit)
UITableViewCell안에 버튼이 있을때의 highlighted 애니메이션 보통 회색 뷰의 버튼처럼 짧게 버튼을 눌러도 hilighted 색상으로 변하지만, UITableView안에 버튼이 있는 경우 (아래 흰색 뷰) hilighted 애니메이션이 안보일 정도로 짧게 동작 길게 누르고 있어야 애니메이션이 highlighted 애니메이션이 동작 delaysContentTouches 프로퍼티 UIScrollView이 가지고 있는 프로퍼티 UIScrollView 위에 쌓아진 뷰들을 touch-down 했을 때, 쌓아진 뷰를 잠깐 delay하고 UIScrollView가 대신 touch-down 이벤트를 받을지 판단할때 사용 true인 경우 (=디폴트): 셀 위에 button이 있을때, button이 터치 ..
UIPageViewController 첫 페이지와 마지막 페이지 스크롤 disable 방법 UIPageViewController의 일반적인 경우 첫번째 페이지에서 swipe left to right를 해도 스크롤 (bounce) 마지막 페이지에서 swipe right to left를 해도 스크롤 (bounce) 첫번째 페이지와 마지막 페이지에서 bounce 효과를 없애는 방법? 구현 방법 UIPageViewController에는 내부적으로 UIScrollView가 있는데, 이 스크롤뷰를 스크롤 할때마다 bounces 프로퍼티를 가지고 on/off 시도하여 구현 기본 PageViewController UI 준비 PageViewController 내부에는 LabelViewController가 있는 구성 im..
Debug Veiw Hierarchy 뷰의 계층 구조를 시각적으로 보여주고, stack으로도 보여주는 가장 널리 알려진 툴 ex) 디버깅할 뷰 준비 class ViewController: UIViewController { private let tableView: UITableView = { let view = UITableView() view.allowsSelection = false view.backgroundColor = .clear view.separatorStyle = .none view.bounces = true view.showsVerticalScrollIndicator = true view.contentInset = .zero view.register(UITableViewCell.self,..