IOS
-
[iOS/Swift/AVFoundation] 카메라를 붙이며 알게된 것, + 알아볼 것앱등이에게 살충제를 뿌린다./일기는 일기장에 2017. 3. 16. 16:47
한개의 AVCaptureSession은 여러개의 Connection, input, output으로 구성된다.input은 카메라, 마이크 등이 될 것이고output은 video프리뷰나, 파일 등이 될 것이다. Connection은 1 or more input과 1개의 output으로 구성된다.즉, 카메라-video프리뷰의 pair 또는 카메라-파일 등의 pair가 될 것이다. input은 AVCaptureInput, output은 AVCaptureOutput클래스의 객체고 session에 addInput / addOutput으로 추가할 수 있다.session은 startSession / stopSession으로 on/off가능하다. AVCaptureVideoPreviewLayer를 생성하여 SomeView..
-
Photos Framework를 이용하여 사진을 가져오자. 샘플코드앱등이에게 살충제를 뿌린다./iOS 2017. 3. 11. 23:14
http://rhammer.tistory.com/229에서 Photos 프레임워크의 주요 클래스들에 대한 이야기를 했습니다.하지만 샘플코드가 있어야 이해가 빠를듯 하여 샘플코드를 작성해보았습니다. 이 샘플코드를 작동시키기 위해서 필요한 조건은 아래와 같습니다.1. XCode8, Swift32. 새 프로젝트를 만들면 스토리보드의 Initial ViewController가 UIViewController로 되어있죠? 이 친구를 UICollectionViewController로 바꿔주세요.3. 새롭게 만든 UICollectionViewController의 Cell은 ImageCell이라는 클래스로 바꿔주시고, 셀에는 이미지뷰를 추가하여 아래 샘플코드의 IBOutlet으로 연결해주세요.4. Privacy - Ph..
-
[iOS] Photos Framework를 알아보자. (간단히)앱등이에게 살충제를 뿌린다./iOS 2017. 3. 11. 22:55
as of iOS10.2, XCode8, Swift3 앱에서 사진첩에 있는 사진, 동영상을 보여줄일이 많습니다.이 때, Photos 프레임워크를 사용해야합니다.기존에는 AssetsLibrary 프레임워크를 많이 사용했지만 iOS9에 들어서 Deprecated되었다. 대체로 사용해야할 프레임워크가 바로 Photos프레임워크인거죠. Photos 프레임워크에 있는 클래스는 PH라는 Prefix를 갖습니다. ex) PHAsset, PHCollection 등등. Photos 프레임워크를 사용해야 한다는 사실을 알았으니, 이 글에서는 Photos에서 제공하는 주요 클래스들에 대한 이야기를 해볼까합니다.(야 다 집어치코 샘플코드내놔 하시는 분은 링크를 클릭) -> 링크PHAssetPHAssetCollectionPHC..
-
[푸쉬알림] iOS앱에서 푸쉬알림 등록하기 (AppDelegate 사이클정도만)앱등이에게 살충제를 뿌린다./iOS 2017. 3. 10. 13:39
iOS10 / Swift3를 기반으로 작성하였습니다. 대부분의 앱이 알림기능을 사용하는데요.이 기능을 구현하려면 굉장히 많은 작업이 필요합니다.APP ID에 푸쉬서비스 등록, 푸쉬 인증서 발급, 앱에 알림권한 획득을 위한 코드추가, Provider서버 구축 등등.정말로 많아요. 이 중에서 "앱에 알림권한 획득을 위한 코드추가" 이 부분만 간단하게 스토리텔링하듯 적어보겠습니다. 1. 단말에서 알림을 받으려면 디바이스 토큰이 필요합니다.애플의 푸쉬알림은 APNs(Apple Push Notification Service)에서 발송하는데요. 이 때 애플서버에서는 디바이스토큰을 통해 푸쉬알림을 보냅니다.이 디바이스 토큰을 만들어 애플서버에 알려주는 과정만 살펴볼 예정입니다. 2. 푸쉬알림을 사용하는 앱이라면 앱이..
-
[Swift3의 Access Control] - open Class가 뭐야?앱등이에게 살충제를 뿌린다./Swift 2017. 1. 11. 15:32
UIApplication클래스의 shared라는 프로퍼티를 찾아보니 이렇게 적혀있었다. open class UIApplication : UIResponder { open class var shared: UIApplication { get } // ... } 그래서 open class가 뭔지를 찾아보니 이렇게 꿀정리가~ 스위프트 3 액세스 제어기존의 private은 정의한 스코프(scope)내에서 즉, 같은 중괄호 { } 내에서만 접근을 허용하도록 좀 더 엄격한 의미로 바뀌었습니다. 대신 새로운 fileprivate가 추가되었고 기존의 스위프트 2에서의 private과 같은 의미로 사용됩니다.보통 이전에 private 으로 정의된 변수나 메서드는 같은 소스파일에 정의된 익스텐션에서 접근할 수 있었으나 더 ..
-
[iOS/GCD] dispatch_async, dispatch_sync앱등이에게 살충제를 뿌린다./고무망치를 도와라 2016. 11. 12. 20:53
1. dispatch_async(queue, block)queue에 block을 비동기로 실행하도록 작업을 추가한다. 이 때, queue가 concurrent queue라면, 원하는대로 작업이 가능함하지만 serial queue라면? asnyc로 추가한 의미가 사라지는 것인가? 2. dispatch_sync(queue, block)queue에 block을 동기로 실행하도록 작업을 추가한다. 이 때는 queue가 serial queue인지, concurrent queue인지 무의미한 것이 아닌가?concurrent queue에 넣어봤자, 동기로 처리할텐데 즉..dispatch_sync에서는 어떤 큐에 넣어도 같은 결과가 나오고,dispatch_asnyc에서는 큐가 serial인지 concurrent인지에 ..