일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- clean architecture
- swiftUI
- tableView
- rxswift
- 리펙터링
- Human interface guide
- Observable
- swift documentation
- Xcode
- uiscrollview
- SWIFT
- map
- UICollectionView
- RxCocoa
- combine
- MVVM
- 스위프트
- 애니메이션
- Refactoring
- Clean Code
- 리팩토링
- Protocol
- UITextView
- 클린 코드
- ribs
- HIG
- ios
- uitableview
- 리펙토링
- collectionview
- Today
- Total
목록iOS 응용 (swift) (724)
김종권의 iOS 앱 개발 알아가기
* 가장 기초) iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory 이해하기 포스팅 글 1. memgraph 메모리 프로파일링 - 샘플 준비 2. memgraph 메모리 프로파일링 - vmmap을 사용하여 문제가 있는 코드의 메모리 주소 찾아내기 3. memgraph 메모리 프로파일링 - 메모리 주소로 코드 역추적하기 프로파일링 대상 샘플 앱 이미지 10000개를 리사이징하여 UIImageView에 넣는 코드 리사이징에서는 비효율적인 ImageContext 방법 사용 (이미지 리사이징 최적화 관련 개념은 이전 포스팅 글 참고) class ViewController: UIViewControl..
Dictionary 초기화 시 주의사항 dictionary: key - value 쌍으로 데이터를 저장할 수 있는 형태 dictionary 값을 초기화하는 방법에 대해서 명확히 알고 있어야 사용할때 혼동이 생기지 않음 초기화 방법 key-value 모두 날리고 싶은 경우 dictinoary 대괄호 안에 key값을 넣고, 오른쪽에 nil을 대입 var dict: [Int: String?] = [1: "1", 2: "2", 3: "3"] dict[1] = nil // [2: Optional("2"), 3: Optional("3")] or removeValue(forKey:) 사용 var dict: [Int: String?] = [1: "1", 2: "2", 3: "3"] dict.removeValue(for..
UIPinchGestureRecognizer 개념 애플에서는 pinch이라는 단어는 일반적으로 사용자가 "줌"하는 행위를 의미 UIPinchGestureRecognizer를 사용하여 줌 기능 적용이 가능 줌기능 (Pinching) 구현 파란색 뷰 준비 import UIKit class ViewController: UIViewController { private let blueView = { let view = UIView() view.backgroundColor = .blue view.translatesAutoresizingMaskIntoConstraints = false return view }() override func viewDidLoad() { super.viewDidLoad() view.add..
LazySequence 개념 배열에서 특정 연산이 요청될 때까지 값을 계산하지 않고 지연시키는 데 사용 map, filter, reduce에서 값을 구하고자할때 값을 계산하여 바로 가져오지 않고, 계산이 필요하다는것만 저장해놓는 상태 (=lazy 상태) ex) map은 호출 즉시 수행되어 변환된 배열이 반환되지만 LazySequence를 사용하면 해당 변환은 요청이 있을 때까지 실제로 수행되지 않음 ex11) LazySequence 간단 사용 케이스 func ex1() { // LazySequence 사용 x let numbers = [1, 2, 3, 4, 5] let mappedValues = numbers.map { $0 * 2 } // LazySequence를 사용 o let lazyMappedVa..
* iOS 메모리 기초 개념은 Memory Deep Dive 포스팅 글 참고 기본 지식) 이미지의 중요한 요소 - 해상도 이미지를 다룰때 중요한 것은 파일의 크기(volume)가 아닌 이미지의 크기(resolution)이라는 점을 알 것 이미지를 구성하고 있는 pixcel관점에서, 1pixel을 이룰 때 RGB요소에 의해 각 1byte씩 3개가 필요하므로 3byte가 필요 여기에다 alpha 채널까지 합하면 1pixel당 4byte가 필요 만약 크기가 2048px * 1536px 의 이미지 파일 크기가 590KB가 디스크에 있을 때, 이 파일을 뷰에 표현할때는 약 10mb가 필요 (2048px * 1536px * 4byte) UIImage 관리 - 이미지를 메모리에 잡고 있지 말 것 UIImage는 위에..
1. VoiceOver 접근성 실전 - 개발 시작하기 (손쉬운 사용 단축키, Accessibility Inspector, 테스트) 2. VoiceOver 접근성 실전 - 개념 (isAccessibilityElement, accessibilityTraits, accessibilityLabel, accessibilityHint, accessibilityValue, accessibilityElements) 3. VoiceOver 접근성 실전 - 접근성 처리 (순서 처리, 이미지 인식, accessibility label, value, traits, hint 사용) 4. VoiceOver 접근성 실전 - UIAccessibility Notification (post, 노티) 5. VoiceOver 접근성 실전 ..
* 가장 기초) iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory 이해하기 포스팅 글 1. Memory Deep Dive - iOS 메모리 운영체제 기초 (가상 메모리, 페이징, clean memory, dirty memory, compressed memory) 2. Memory Deep Dive - Memory를 줄여야 하는 이유 (+ 앱 메모리 사용량 아는 방법) 3. Memory Deep Dive - Memory Footprint (페이징, Compressed 메모리) 4. Memory Deep Dive - Memory Footprint 프로파일링 방법 (Allocation, Lea..
* 가장 기초) iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory 이해하기 포스팅 글 1. Memory Deep Dive - iOS 메모리 운영체제 기초 (가상 메모리, 페이징, clean memory, dirty memory, compressed memory) 2. Memory Deep Dive - Memory를 줄여야 하는 이유 (+ 앱 메모리 사용량 아는 방법) 3. Memory Deep Dive - Memory Footprint (페이징, Compressed 메모리) 4. Memory Deep Dive - Memory Footprint 프로파일링 방법 (Allocation, Lea..