일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RxCocoa
- tableView
- 리펙터링
- SWIFT
- swiftUI
- Refactoring
- Human interface guide
- collectionview
- map
- rxswift
- 애니메이션
- ribs
- 스위프트
- Clean Code
- Observable
- ios
- MVVM
- UICollectionView
- 리펙토링
- Protocol
- clean architecture
- 리팩토링
- uiscrollview
- combine
- UITextView
- Xcode
- swift documentation
- 클린 코드
- HIG
- uitableview
- Today
- Total
목록iOS 기본 (swift) (149)
김종권의 iOS 앱 개발 알아가기
* 레이아웃 구현에 편의를 위해 예제에서 사용한 프레임워크 SnapKit UIScrollView 간단 구현 UIScrollView 하나를 두고, 안에 내용들이 들어갈 UIStackView를 준비 내용이 표시될 label, button 준비 // ViewController.swift private lazy var scrollView: UIScrollView = { let view = UIScrollView() return view }() private lazy var stackView: UIStackView = { let view = UIStackView() view.axis = .vertical view.spacing = 8 return view }() private lazy var label: UILa..
1. AVFoundation 개념 - 구조, AVAsset, AVKit 2. AVFoundation 개념 - AVPlayer, AVPlayerItem 3. AVFoundation 개념 - AVPlayer 오디오 재생, 일시정지, 재생구간 이동 구현 (play, pause, seek) 4. AVFoundation 개념 - AVPlayer, AVPlayerLayer로 동영상 재생 방법 5. AVFoundation 개념 - AVAudioSession 개념 (오디오 활성화, 입출력 변경, 잠금화면 재생, 재생 중 전화가 온 경우 처리) * 오디오 재생 관련 방법은 AVPlayer 방법과 AVAudioPlayer 사용이 존재 - 단순히 오디오를 재생시키는 경우 AVPlayer를 사용 (play, pause, se..
1. AVFoundation 개념 - 구조, AVAsset, AVKit 2. AVFoundation 개념 - AVPlayer, AVPlayerItem 3. AVFoundation 개념 - AVPlayer 오디오 재생, 일시정지, 재생구간 이동 구현 (play, pause, seek) 4. AVFoundation 개념 - AVPlayer, AVPlayerLayer로 동영상 재생 방법 5. AVFoundation 개념 - AVAudioSession 개념 (오디오 활성화, 입출력 변경, 잠금화면 재생, 재생 중 전화가 온 경우 처리) AVPlayer 개념 AVPlayer: player 작업에 관한 인터페이스를 제공하는 객체 실시간 스트리밍 파일을 재생할때 사용 (mp3 url만 가지고, 다운로드 받지 않고 재..
1. AVFoundation 개념 - 구조, AVAsset, AVKit 2. AVFoundation 개념 - AVPlayer, AVPlayerItem 3. AVFoundation 개념 - AVPlayer 오디오 재생, 일시정지, 재생구간 이동 구현 (play, pause, seek) 4. AVFoundation 개념 - AVPlayer, AVPlayerLayer로 동영상 재생 방법 5. AVFoundation 개념 - AVAudioSession 개념 (오디오 활성화, 입출력 변경, 잠금화면 재생, 재생 중 전화가 온 경우 처리) AVFoundation 시간에 따른 시청각 미디어 재생 / 생성 할 수 있게 해주는 프레임워크 Objective-c 인터페이스를 제공해주어 아래와같은 미디어에 대한 상세한 컨트롤..
사전 지식1) capture와 escaping의 개념 공통점: 둘 다 closure에서 사용되는 개념 차이점 capture: 클로저 내부에서 밖에 있는 scope의 instance를 참조하는 것 escaping: 클로저 외부에서 해당 클로저 자체를 참조하고 있는 것 사전 지식2) Escaping closure의 의미 `저장`되고, `지연`시킬 수 있는 기능 블록을 가지는 클로저가 바깥의 변수에 의해서 저장되는 경우 "Escaping closure"라고 정의 인자로 전달받은 함수 중 함수의 리턴 이후에 실행될 수 있는 함수 함수가 리턴되면 해당 scope은 사라지지만, closure는 함수의 scope을 escaping하여 함수 종료 후에 실행된다는 의미 // 함수의 return보다 completion이 ..
예제에서 편의를 위해 사용한 프레임워크 pod 'SnapKit' pod 'Then' pod 'RxSwift' pod 'RxCocoa' pod 'RxGesture' UITapGestureRecognizer를 사용하면서 발생되는 문제 맨 밑에 깔려있는 view에 tapGesture를 등록했을 때, subviews들을 tap해도 이벤트가 발생하는 문제가 존재 ex) 흰색 뷰에 tapGesture를 등록했을 때, layer2, layer1 뷰들을 탭해도 이벤트가 발동 - 상단에 팝업이 있고, 밑에 배경이 있을 때 배경을 탭한 경우 팝업을 숨기고 싶은 경우에 아래와 같이 처리되면 문제가 발생 (layer2만 탭해도 사라지는 현상이 발생할 것) Responder chain의 기본 원리는 superview부터 체크하..
@unknown이란? enum타입을 접근하는 switch-case문에서 사용되는 키워드 추가적인 case가 생겼을 때, 기존에 switch-case문에서 해당 case를 선언하지 않고 @unknown default로 선언해 놓으면 사용하는 쪽에서 warning 메시지를 받아볼 수 있어 인지할 수 있게끔 하는 키워드 예시) switch문에서 case에 대한 모든 조건을 선언하면 컴파일 에러와 워닝이 발생하지 않고 정상적인 케이스 enum Color { case blue(name: String, alpha: CGFloat) case green(name: String, alpha: CGFloat) } let color = Color.blue(name: "blue", alpha: 0.5) switch color..
* 스위즐링 관련 설명이 더욱 추가된 최신 포스팅 글은 이 포스팅 글 참고 사전 지식) Objective-c에서 메소드가 실행되는 과정 Objective-C는 동적인 언어(dynamic language) 동적인 언어: 어떤 코드가 실행될지 런타임에 결정 (실행되는 순간가지 코드의 실행을 미룰 수 있다는 의미) 정적인 언어: 어떤 코드가 실행될지 컴파일/링크 시점에 결정 Objective-C는 런타임에 메세지를 날리고, 그 메세지를 통해 메소드를 찾아서 실행 message 생성 - [receive message] 컴파일러에 의해 컨버젼 - objc_msgSend(receiver, selector, arg1, arg2, ...) // ex) objective-c 메소드이므로, 런타임 때 코드 실행이 결정 @..