일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MVVM
- combine
- Human interface guide
- SWIFT
- collectionview
- HIG
- Xcode
- uiscrollview
- 리팩토링
- Observable
- Refactoring
- ribs
- swiftUI
- Protocol
- 스위프트
- 애니메이션
- tableView
- Clean Code
- RxCocoa
- map
- 리펙토링
- 리펙터링
- ios
- clean architecture
- uitableview
- UITextView
- rxswift
- 클린 코드
- UICollectionView
- swift documentation
- Today
- Total
목록분류 전체보기 (1640)
김종권의 iOS 앱 개발 알아가기
Custom View 구현 시 프로토콜을 사용하면 좋은 이유 보통 커스텀 뷰를 구현하면 사용하는쪽에서 가져다 쓰는데, 사용하는곳이 여러곳이면 이 커스텀 뷰를 수정할때 여러곳을 고려해야하여 수정이 어려움이 존재 프로토콜을 사용한다면? 구현체의 의존성을 사용하는쪽에 두지 않는것이 가장 큰 의미, DIP(Dependency Inversion Principle) 사용하는쪽에서는 Interface에만 의존하고 있기 때문에 구현체에 여러가지 변화를 주더라도 유연한 구조 유지가 가능 ex) 커스텀 뷰가 공통 뷰이고 이 뷰가 Swift에서 SwiftUI로 넘어갈 때 역시도 protocol로만 외부에게 노출했으면 유연하게 수정이 가능 protocol로 커스텀 뷰 구현하기 커스텀 버튼을 만든다고 했을 때, UIView로 ..
1. 메모리 프로파일링 - VM Tracker 사용 방법 (#Instrument) 2. 메모리 프로파일링 - VM Tracker을 사용하여 메모리 프로파일링하기 (resident size, dirty size, swapped size, virtual size) VM Tracker에서 메모리 살펴보기 resident, dirty, swapped, virutal을 확인하여 메모리 상태 확인이 가능 resident size: 실제로 RAM에 올라와서 현재 사용되고 있는 데이터의 크기 dirty size: RAM에 올라온 것 중에 데이터의 변경이 일어나서, page out될 수 없는 페이지의 크기 swapped: RAM disk 페이지 변경된 크기 (자세한 residen size, dirty size, swap..
CAAnimationGroup 개념 이름 그대로 동시에 여러가지의 CAAnimation을 적용하고 싶은 경우, group으로 묶어서 실행되게끔 할 수 있는데 이때 사용하는게 CAAnimationGroup CAAnmationGroup 사용방법 직관적으로 CABasicAnimation들을 group에 넣고 이 group을 뷰의 layer에 add해주면 완성 파란색 뷰 준비 final class CircleView: UIView { override func layoutSubviews() { super.layoutSubviews() clipsToBounds = true layer.cornerRadius = frame.height / 2 } } class ViewController: UIViewController..
1. 메모리 프로파일링 - VM Tracker 사용 방법 (#Instrument) 2. 메모리 프로파일링 - VM Tracker을 사용하여 메모리 프로파일링하기 (resident size, dirty size, swapped size, virtual size VM Tracker란? Virutal Memory Tracker라는 의미로, XCode에서 Instrument 중 메모리 할당에 관한 프로파일링 기법 중 하나 VM Tracker를 이용하면 resident size, dirty size, swapped size, virtual size를 분석 할 수 있는데, 이렇게 각 size별로 볼 수 있어서 더욱 디테일하게 메모리 프로파일링이 가능 residen size, dirty size, swapped si..
* 이미지를 이용한 방법은 이전 포스팅 글 참고 구현 아이디어 UIBezierPath를 통해서 동그란 layer 그리기 layer의 lineWith를 1보다 크게하여 테두리를 만들고 이 테두리의 색상(strokeColor)은 blue, 내부에 채워지는 색상(fillColor)은 clear로 설정 테두리가 꽉차 있으면 안되고 중간이 뚫려 있어야 하므로 strokeStart를 0.2정도로 설정하여 20%는 비어지도록 설정 이 뷰를 CABasicAnimation의 transform.rotation을 사용하여 효과를 주면 완성 구현 LoadingView 정의 final class LoadingView: UIView { init() { super.init(frame: .init(origin: .zero, size..
virtual memory 개념 운영체제에서의 가상메모리를 의미 하드웨어 RAM (맥북에서의 16G 등)을 물리적 RAM이라고 한다면, 이 16G의 부족한 공간을 위해서 디스크 공간도 같이 사용하는 방법 process가 계산을 하다가 메모리에서 데이터를 찾는데, 이 때 virtual memory라는것을 두고 virutal memory에서는 RAM과 disk공간을 바라보는 것 virtual memory 부분을 적절한 단위로 나누는데, 그것을 page라고 명칭 중요한 용어 page out: physical메모리에 page에 대응하는 데이터가 없어서, physical메모리에 있는 어느 한 page와 disk에 있는 page랑 swap해야하는데, 이 때 physical memory에서 사용하지 않은 공간을 내준..
* 가장 기초) iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory 이해하기 포스팅 글 1. memgraph 메모리 프로파일링 - 샘플 준비 2. memgraph 메모리 프로파일링 - vmmap을 사용하여 문제가 있는 코드의 메모리 주소 찾아내기 3. memgraph 메모리 프로파일링 - 메모리 주소로 코드 역추적하기 (malloc_history , Malloc Stack Logging) malloc_history로 코드 역추적하기 malloc_history를 사용하면 참조 타입 인스턴스들이 할당된 코드를 역추적이 가능 단, memgraph를 얻어올때 Xcode에서 "Malloc Stack..
* 가장 기초) iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory 이해하기 포스팅 글 1. memgraph 메모리 프로파일링 - 샘플 준비 2. memgraph 메모리 프로파일링 - vmmap을 사용하여 문제가 있는 코드의 메모리 주소 찾아내기 3. memgraph 메모리 프로파일링 - 메모리 주소로 코드 역추적하기 vmmap으로 memgraph파일 분석 .mamgraph 파일은 이전 포스팅 글 참고 분석 목적: 큰 메모리를 잡아먹는 곳의 메모리를 분석하여 역으로 어떤 코드 부분인지 파악하는 것 vmmap --summary ExImageOptimazationBackground\[23907..