ios 43

[iOS] AVFoundation Foundation

PrologAsset과 Track의 이해asset은 하나 혹은 다수의 track으로 이루어져있다. track은 비디오 프레임, 오디오, 자막 등으로 재생에 이용되는 개별 컨텐츠를 의미한다. 이러한 컨텐츠들이 asset이라는 컨테이너에 담긴다. 플레이어는 asset이라는 컨테이너를 읽어와서, 각 track을 적절한 시간에 표시하여 재생한다. AVAsset과 AVPlayerItem의 이해AVAsset은 미디어를 담은 컨테이너인 asset의 데이터를 읽어오고 편집 등을 하기 위한 용도로 사용한다. 편집된거나 합성한 데이터를 읽거나 쓰기 위해서 사용되는 미디어 파일 그 자체라고 생각하면 된다. AVPlayerItem은 AVAsset을 재생하기 위해 사용하는 데이터 모델로서, 플레이어에서 재생에 관한 모든 제어..

[iOS] Core Video Foundation

Prolog레퍼런스 클래스 - 해당 타입의 기반이 되는 클래스로 동일한 기능의 사용을 위해서 상속 받아야하는 클래스인터페이스 (or 프로토콜) - 메소드의 Function Type을 선언하여 하위 구현체들의 용도/행위를 정의하기 위한 추상클래스 About Video비디오에 대한 이해비디오는 기본적으로 정지 이미지(Frame) 가 시간 축을 따라 연속적으로 표시하면서 움직임을 인식하게 만드는 시각적 매체입니다. 하나의 비디오는 수많은 이미지 프레임으로 구성되며, 이 프레임들은 일정한 속도(프레임 레이트, fps)로 표시됩니다. 예를 들어 1초당 30장의 이미지를 순차적으로 보여주는 영상을 30fps라고 합니다. 이때 각 이미지(Frame)는 약 33.3ms 간격으로 화면에 표시되며, 인간의 시각은 이 빠른..

[iOS] SwiftUI : View update에 대한 고찰

BackgroundSwiftUI는 선언형 기반으로 구현하도록 설계되어 있다. 이 선언형의 관점을 이해하기 위해서는 함수형 프로그래밍에 대한 깊이있는 이해가 필요하다. Immutable type을 왜 쓰는지, Value type을 왜 사용하는지, 순수함수를 왜 쓰고 어떻게 비지니스 로직을 구현해야 하는지 등이다. 그리고 SwiftUI의 동작 체계에 대한 이해도 필요하다. View의 업데이트는 어떻게 이루어지는지, 이에 대한 최적화 작업은 어떻게 해야 하는지 등이다. SwiftUI를 가볍게만 사용하던지라 이에 대한 이해가 부족했고, 그러기에 이에 대해서 정리하려고 합니다. SwiftUI가 iOS 13부터 지원했지만, 최근까지 버그도 많고 아직 기술 자체가 덜 성숙했던지라 어떤 변화가 생겼는지 정도만 관심을 ..

[Apple] WWDC 2018 키노트 요약

메인 키노트 요약Welcome home, developers77개국 개발자가 모임전세계 2천만명의 애플 개발자매주 5억명의 앱스토어 방문자iOSIos11 81% 설치 : 안드로이드 6% – 만족도 95%Ios11이 동작하는 모든 기기에서 ios12가 동작 할 수 있다.구형 기기를 target으로 성능 향상 : 앱 런치 40%, 키보드 50%, 카메라 70%, share sheet 2배, overload 환경에서 앱 런치 2배ARKit : 픽사와 새로운 AR 파일 포맷 만듦 -> USDZ어도비 CC에서 USDZ 지원Measure : 센서를 이용한 측정 앱 (길이, 넓이 등)ARKit 2 : 멀티유저 증강현실 지원Photo : search suggestion (장소, 카데고리, 이벤트 등), for you ..

WWDC/2018 2018.10.14

[Tip] 사라진 '네이버 음악 검색' 단축키, iOS 단축어로 쉽게 이용하기!!

우리나라 검색 필수 앱인 '네이버앱'!!! 어느 순간 3D 터치 단축키에서 '음악 검색'이 사라졌다. 이를 편리하게 사용할 수 있는 방법이 있어 공유드립니다. 네이버 앱에서는 네이버 앱과 쉽게 연동할 수 있도록 URL 연동 가이드를 제공합니다. 아래의 URL 연동 가이드를 참고하면 네이버 앱 안의 여러 기능들을 연동할 수 있습니다. 우리는 이 연동 가이드 중 '음악 검색'을 이용할 예정입니다. 네이버 앱 URL 연동 가이드 먼저 아이폰은 iOS 12로 업데이트 해주세요. iOS 12에서 제공하는 단축어 기능을 사용하여 실행할 예정입니다. 단축어 기능은 아이폰을 이용할 때 사용하는 여러 사용자 동작들을 하나의 명령어로 단축시켜 주는 기능을 해주는 유용한 기능입니다. 단축어 기능 아래의 영상을 따라서 하면 ..

Tips/iPhone 2018.10.07

[iOS] 버전별 히스토리 관리

지속 업데이트 중.... OS 버전기능SDK출시일비고1iOS 11 (beta 2)파일 탐색기 지원독을 활용한 Splitview/Slideover (멀티태스킹)드래그앤 드롭 기능Live Photo 루프/바운스/장노출 효과App Store 리뉴얼Siri 번역 기능Apple Music 친구 기능 강화제어센터 리뉴얼애플 지도 건물 내부 지원Quicktype 키보드 한손 타이핑 가능가까이 있는 iOS와 Mac으로 자동 복원 기능사진앱에서 GIF 및 QR code 기능 지원파일앱에서 FLAC 재생 가능32-bit 미지원ARKit (증간현실) 지원ApplePay (NFC API 개방 : iPhone7 이후 모델 대상)바이너리 바코드 지원 : CIBardoceDescriptor를 이용MusicKit : 애플 뮤직 카탈..

[iOS] UIViewController 심층 분석

View Controller View controller는 앱의 UI를 꾸미는 view들을 관리한다. 개발할 기능과 시각적 요소를 제공하기 위해서 view controller를 상속받아 클래스를 구현한다. view controller는 관리하고 있는 view들과 엮여 있으며 event를 처리하기 위한 Responder chain에 관여한다. view controller는 UIResponder 객체로서, 해당 view controller의 root view와 super view 사이의 Responder chain에 위치한다. view controller의 view가 event를 처리하지 않는다면 해당 event를 super view로 넘길 수 있다. 그리고 다른 view controller를 contain..

[iOS] addSubview & addChildViewController (P. S. Container View Controller)

addSubview & addChildViewController addSubview는 view를 view hierarcky에 추가한다. addChildViewController는 Container View Controller에 child view controller를 추가한다. 전자의 경우, 하나의 view controller에서 event를 관리한다. 후자의 경우, 각각의 view controller들이 자신이 소유하고 있는 view의 event를 따로 관리하게 된다. 그리고 각 child view controller를 소유하고 있는 view controller를 container view controller라고 한다. 우리가 가장 흔하게 볼 수 있는 container view controller의 예..

[iOS] Autorelease Pool과 메모리 관리

Autorelease pool은 객체가 즉시 해제되는 가능성을 피하고자 할 때, 객체에 대한 소유권을 포기하도록 하는 메카니즘이다. autorelease pool은 '@autoreleasepool'이라는 키워드로 사용한다. 블록안 에서 autorelease 메시지를 받은 객체들은 '@autoreleasepool'로 선언한 블록의 끝에서 release 메시지를 받는다. 일반적으로 autorelease 메시지는 객체를 할당한 구역 밖에서 객체를 해제하고자 할때, 컴파일러에게 이를 알리고자 사용하는 메시지이다. 하지만 autorelease 메시지는 객체가 언제 해제되는지 불명확해 진다. autorelease pool은 이런 autorelease 객체가 해제되는 시점을 명시적으로 보여준다. 즉 autorelea..

[iOS] Visually Rich User Experiences

UI 시스템UIKit/ AppKit : 기본 UI를 제공해주는 framework로 cocoa/ cocoa touch의 주요 자원이 됩니다. 커스터마이징을 통하여 새로운 감각을 지닌 UI로 바꿀 수도 있습니다.CoreAnimation : 각 UI의 움직임 모션 등을 CALayer를 통해 구현할 수 있습니다.CoreGraphics : 이미지를 생성할 때, 사용하는 API입니다. CoreGraphics을 이용한 드로잉 작업은 런타임에서 수행하게 됩니다. iOS 10에서 소개된 UIGraphicsImageRenderer를 사용하면, CoreGraphics를 사용하는 것보다 편하게 이미지를 그릴 수 있습니다. renderer 객체에 image 생성 부분에 클로저를 통하여 이미지를 그리고 반환하면 됩니다.CoreI..

WWDC/2017 2017.06.21