분류 전체보기 25

[AVFoundation]

https://developer.apple.com/documentation/avfoundationAVAsset한개이상의 AVAssetTrack 으로 구성된다.local / remote 의 media 를 담는다.file-based / streamed(HLS = HTTP Live Streaming) media 를 담는다.duration : asset 길이, providesPreciseDurationAndTiming 가 false 인 경우 durationprovidesPreciseDurationAndTiming : default false, 단순 asset play 용도라면 false 로 충분, asset 이 조작될 여지가 있다면 true 로 세팅되어야한다.AVAssetTrack하나의 media type 을 ..

기타 2024.08.01

[Swift Standard Library]

ConcurrencyTask(idel time 부여)ex) try? await Task.sleep(for: .milliseconds(500))Actorprotocol Actor : AnyActor[ ] https://sujinnaljin.medium.com/swift-actor-뿌시기-249aee2b732d 추가 공부 필요!병렬 프로그래밍에서 데이터 경합(Data Race) 문제를 줄이기 위해 고안되었다.동기화된 상태 관리 : actor 내부의 상태는 actor 자신만이 직접 접근할 수 있으며, 다른 코드가 접근하려면 actor의 메서드를 통해야 합니다. 이렇게 하면 동시성 문제를 피할 수 있습니다.직렬화된 접근 : actor의 메서드는 한 번에 하나의 쓰레드만 접근할 수 있도록 직렬화됩니다. 따라서 동..

Swift 2024.08.01

[iOS] 공부 링크 (ing...)

init, required init, convenience init, override init required init : 클래스 상속시 반드시 init이 재구현 되어야함 convenience init : self.init 을 더 쉽게 호출할 수 있도록 구현한 init override init : 클래스 상속시 상위클래스와 init 파라미터가 동일한 경우 사용 https://ios-development.tistory.com/44 [swift] 13. 초기화(init, convenience init, required init, override init) let b = Boo() 원래의 의미는 "let b = Boo.init()" 1. init의 존재 이유 - 모든 저장 프로퍼티들은 초기화 되어야 함, in..

iOS 2022.02.07

[iOS] Rendering

* 렌더링 처리 과정 (렌더링; 사람이 이해할 수 있도록 2D/3D 로 형상화하는 것) 우선 iPhone/iPad 의 평균 주사율(refresh rate, FPS)은 60Hz 이다. (요즘 신형으로 나오고 있는 아이패드 프로나 아이폰12 같은 기기는 120Hz 까지도 나온다고 한다..!) 주사율은 1초당 refresh 하는 횟수. 즉, 주사율이 높을수록 화면 갱신이 자주 일어나 더 스무스하게 화면을 이용할 수 있다. 그리고 각각의 refresh 마다 렌더링이 반복될 수 있다. '프레임 버퍼' 라는 디스플레이의 비트맵 정보를 저장하는 메모리 공간이 있는데, 렌더링 된 결과가 이 공간에 저장되며, 이 공간에 저장된 값은 화면 디스플레이에 사용된다. 그렇다고 해서 1초에 60번씩 render 되는 것은 아니다..

iOS 2020.12.31

[iOS] Swift 기본 문법 (YouTube - yagom)

# 이름짓기 function, method, variable, constant : Lower Camel Case 사용 class, struct, enum, extension: Upper Camel Case 사용 # 콘솔로그 print, dump print : 단순 문자열 출력 dump : 인스턴스의 자세한 설명(description 프로퍼티)까지 출력 (streaming 을 이용해 파일로 로그 기록할 수 있다) # 문자열 보간법 \() "안녕하세요 제 이름은 \(name)입니다." # 변수(var)와 상수(let) var : 차후 값이 변경되는 변수 선언시 사용 let : 차후 값이 변경되지 않는 변수 선언시 사용 (TIP) // ` 사용하면 사용불가 한 변수명 사용가능해짐 var `class`: Str..

iOS 2020.10.26

[iOS] Nine-Patch, 둥근모서리 이미지 소스 사용하기

Nine-Patch? 아래 그림 한장으로 Nine-Patch에 대한 모든 설명이 가능하다. 나인패치를 사용하지 않는 이미지는 크기를 늘렸을 때, 위와 같이 모서리 부분도 같이 늘어난다. 나인패치를 사용하면, 이미지 사이즈가 변해도 모서리 부분을 유지할 수 있다. Android Asset Studio를 이용해 Nine-Patch 개념을 더 알아보자. (Android Asset Studio 사이트는 아래 링크 참고) 1. Stretch Region 나인패치는 이미지를 아래와 같이 9개의 영역(3x3)으로 나누고, 늘어나는 범위를 설정해 해당 영역만 늘어나도록 하면, 모서리 부분의 이미지는 유지한채 이미지를 늘릴 수 있다. (파란영역 : 유지되는 영역, 빨간 영역 : 늘어나는 영역) 2. Contents Pa..

iOS 2020.10.20

[iOS] Warning 없는 Clean Code 만들기 (SwiftLint, Pods file)

SwiftLint? Swift 스타일과 규칙을 적용하는데 사용하는 도구. 좀 더 깔끔한 소스(Clean Code)를 만들고 싶다면, 사용해보길 권한다. 적용 1. CocoaPod 설치 pod 'SwiftLint' 2. script 적용 Target > Build Phases > + > New Run Script Phase > Shell에 아래코드 추가 # 자동으로 소스 수정을 원하는 경우, 뒤에 autocorrect 를 붙이면 된다 ${PODS_ROOT}/SwiftLint/swiftlint autocorrect 3. Pods 파일은 SwiftLint 무시하도록 설정 Project Root 위치에 .swiftlint.yml 파일 생성 > 아래 소스 추가하기 disabled_rules: included: e..

iOS 2020.10.07