일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Clean Code
- 리팩토링
- UITextView
- 스위프트
- Observable
- ribs
- Refactoring
- 리펙터링
- 리펙토링
- MVVM
- ios
- uiscrollview
- 클린 코드
- map
- tableView
- Human interface guide
- uitableview
- rxswift
- HIG
- UICollectionView
- clean architecture
- combine
- swift documentation
- Xcode
- 애니메이션
- Protocol
- RxCocoa
- SWIFT
- collectionview
- swiftUI
- Today
- Total
목록ios (1095)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cFdHkV/btsqM8jQxWd/ppxwWKizU0ZFdleWVsQFXK/img.png)
OptionSet 개념 enum-case의 case와 같이 사용할 수 있고 동시에 set 연산자인 insert, remove 등도 사용할 수 있는 API OptionSet 프로토콜 형태 SetAlgebra는 set의 연산자를 정의해놓은 프로토콜 public protocol OptionSet : RawRepresentable, SetAlgebra { associatedtype Element = Self init(rawValue: Self.RawValue) } SetAlgebra 형태 /// - `S() == []` /// - `x.intersection(x) == x` /// - `x.intersection([]) == []` /// - `x.union(x) == x` /// - `x.union([]) =..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NYqpq/btsp9p1yw9k/waZ4mb6VY8my2RZWOQyfv1/img.png)
1. Swift 메모리 할당 - address 확인 방법, withUnsafePointer, Memory Graph Debugger, vmmap 2. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 기본 (stack, heap) 3. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 심화 (String타입, struct안에 class, class안에 struct) 4. Swift 메모리 할당 - MALLOC, MALLOC guard, dyld private memory, Shared memory, ColorSync (vmmap PID) vmmap 명령어 virtual memory map이라는 의미이고 이 명령어를 통해 해당 process에 의해서 할당된 메모리 상황을 볼 수 있음 virt..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kJiNk/btsp8zQw9TI/VKyv2O1uGjkRrcYOklejHk/img.png)
1. Swift 메모리 할당 - address 확인 방법, withUnsafePointer, Memory Graph Debugger, vmmap 2. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 기본 (stack, heap) 3. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 심화 (String타입, struct안에 class, class안에 struct) 4. Swift 메모리 할당 - MALLOC, MALLOC guard, dyld private memory, Shared memory, ColorSync (vmmap PID) 메모리 어디에 할당되는지 확인 방법 복습 1번 글, 2번 글에서 살펴본대로 아래 함수로 각 프로퍼티가 어떤 메모리에 할당되는지 확인이 가능 @inlinab..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/J96Lu/btsp64KuEUw/0uAdinqVRbH8iQ6ZtM8ziK/img.png)
1. Swift 메모리 할당 - address 확인 방법, withUnsafePointer, Memory Graph Debugger, vmmap 2. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 기본 (stack, heap) 3. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 심화 (String타입, struct안에 class, class안에 struct) 4. Swift 메모리 할당 - MALLOC, MALLOC guard, dyld private memory, Shared memory, ColorSync (vmmap PID) 사전지식) 메모리 표현 식 (16진수, Byte, bit) 0x16d2dc000의 의미? 16진수(hexadecimal)로 표현된 메모리 주소 16진수는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BsoQc/btsp33LMPbq/x1ipauRIn8XnpQVO82J0gk/img.png)
1. Swift 메모리 할당 - address 확인 방법, withUnsafePointer, Memory Graph Debugger, vmmap 2. Swift 메모리 할당 - 타입별 메모리 할당 위치 (stack, heap) 3. Swift 메모리 할당 - 타입별 메모리 할당 위치 분석 심화 (String타입, struct안에 class, class안에 struct) 4. Swift 메모리 할당 - MALLOC, MALLOC guard, dyld private memory, Shared memory, ColorSync (vmmap PID) 사전 지식) 메모리 구조 swift에서의 struct, enum과 같은 value type은 메모리 주소가 높은 stack영역에 할당 class와 같은 referen..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bXkcW8/btsp19ZQp7i/Q5oow0xi1D8k0MCzfqkPm1/img.png)
사전지식) RxSwift의 GCD 종류 1) main (serial) main thread에서 처리되는 serial queue (모든 UI관련 작업은 해당 큐에서 main queue에서 실행) 2) global (concurrent) 전체 시스템에서 공유되는 concurrent queue이고, concurrent이기 queue끼리의 우선순위를 위해서 queue를 사용할 때 QoS 설정 필요 userInteractive: 유저가 누르면 즉각 반응 (main queue) userInitiated: 유저가 실행시킨 작업들을 즉각적이지는 않지만, async하도록 처리 default utility: I/O, n/w API 호출 background: 유저가 인지하지 못할 정도의 뒷단에서 수행하는 작업 3) 커스텀 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Vnn7H/btsp2apk8Ds/xSmNbsGd6fw2rU4vB6gSIK/img.gif)
completion 구현 방법 특정 애니메이션이나 화면 전환이나, 특정 작업 후 completion 을 실행시키고 싶은 경우 보통의 API는 completion이 있지만 없을 때 CATransaction를 사용하면 completion 구현이 가능 CATransaction은 렌더링에 관한 작업들을 그룹화하는 것 렌더링 트리를 그룹화 한다는 것 애니메이션이나, 화면전환이나 UI에 관한 업데이트들을 하나로 그룹화하는 것 Core Animation에서 애니메이션과 관련된 여러 속성들을 하나로 묶어서 실행한다는 의미 CATransaction으로 completion 만드는 방법 1) CATransaction.begin()을 통해 새로운 트랜잭션을 시작 (= 현재 스레드에서 애니메이션과 관련된 여러 속성들을 하나로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b9buvD/btspOB2AGGB/QBdYE5Hcrz9s2EDxbsD1W0/img.gif)
beginFromCurrentState 개념 UIView.animate로 애니메이션을 줄 때, 현재 애니메이션이 진행되는게 있으면 그것에 이어서 적용되도록 하는 옵션 즉 beginFromCurrentState옵션은 현재 애니메이션이 동작하는게 있을때 그 애니메이션에 이어서 자연스럽게 동작하도록 구현할 때 사용 ex) 왼쪽 상단부터 가운데로 왔다갔다 하는 애니메이션이 있는 상태에서, 새로운 애니메이션을 넣었을때 자연스럽게 이어지도록 구현 왼쪽 상단부터 가운데로 왔다갔다 하는 애니메이션 준비 UIView.animate의 옵션에 .repeat, .autoreverse 사용 class ViewController: UIViewController { let myView = UIView(frame: CGRect(x:..