전체 글 115

[아이폰 추천 앱] 라이브포토 동영상으로 변환하기

안녕하세요. 아이폰을 사용하는데, 저는 항상 라이브포토로 찍습니다. 매번 설정도 귀찮고, 찍어두면 간간히 재밌는 사진들을 획득할 수 있더라구요. 하지만 이걸 다른사람에게 공유해서 보여주는게 힘들었습니다. 기존의 앱들도 유료앱 밖에 없었는데, 무료앱이 있습니다. 앱 이름 : 모두의사진 - 라이브포토 변환 앱스토어 링크 앱 설명이 없을 정도로 간단합니다. 사진첩처럼 앱의 사진들을 보고 클릭하면 상세로 들어가고 상세화면에서 동영상으로 변환하면 됩니다.이렇게 간단히 변환을 하면 앱에 동영상이 저장되게 됩니다. 그럼 이 동영상을 공유하면 간단하게 라이브포토를 동영상으로 공유가 가능합니다. 모두들 라이프 포토를 공유해보세요.

블로는? 2018.07.09

iOS 아키텍처 VIPER

iOS 아키텍처를 공부하다 VIPER란걸 접하게 되었고,VIPER을 정리하는 포스팅이다. Apple에서는 MVC 아키텍처를 사용을 권하고 그에대한 개발문서도 있다(링크)하지만 Apple이 설명하는 MVC는 Model이 View에 접근해 화면에 데이터를 뿌려주는게 아니라,Controller가 View와 Model의 중간역할을 하기 때문에 MVP 패턴에 가깝다고 생각된다. 하지만 이런 아키텍쳐는 Controller(iOS에선 ViewController)에서 하는 일이 너무나 많아진다.그래서 코드가 길어지고 중복되는 코드가 많아져서 단점이 있다. 그걸 해결하는게 바로 VIPER 이다.VIPER란 패턴을 처음 접했지만, 기존에 내가 코딩하는 패턴과 크게 다르지 않았다.역시 패턴은 어떠한 패턴이 중요한게 아니고,..

Developer/Pattern 2018.06.22

베로니카, 죽기로 결심하다

책장에 있는 이 책의 제목을 보고 이 책을 읽어봐야겠단 생각이 들게 되어 읽게 되었다. "베로니카는 왜 죽기로 결심했을까?" 베로니카는 평범한 사람이였지만 반복되는 일상에 공허함을 시달리던 베로니카는 죽기로 결심한다.하지만 자살에 실패를 하고, 정신병원에서 생활하게 되고 자살을 시도한 휴우증으로 삶의 주어진 시간이 1주일이란걸 알게 된다. 그 정신병원 안에서 제드카, 에뒤아르 등과 대화를 통하며 생을 살고 싶은 마음이 커지게 되는이야기이다.베로니카는 자신의 남은 생이 일주일이 때문에, 그 일주일. 과거와 미래따윈 생각하지 않고 현재에만 집중하게 된다.지금 무엇을 하고 싶은지를 생각하고 실천에 옮기면서, 삶이 곧 끝나간다는걸 알기 때문에 더욱 더 열심히 절실히 살게되면서정신병원을 탈출해 작은것에도 소중하게..

2018.06.22

좋은 아키텍처란?

각각의 객체들은 구체적이고, 명확한 역할을 가지고 있어야 한다고 생각한다..코드만 봐도 이게 무엇을 하는것인지 명확히 알 수 있어야 되고, 쉽게 이해할 수 있고, 쉽게 변경할 수 있어야 한다. 또한, 에러가 발생했을 때 쉽게 디버깅이 가능하도록, 단순한 데이터 흐름을 가져야 한다.데이터는 단방향 흐름의 형태로 해야, 특정 지점에 브레이킹을 설정하고 데이터에 어떠한 변화가 일어나는지 쉽게 확인 할수 있어야 하지, 여러개의 다른 객체들 사이를 왔다 갔다 하거나, 같은 공유 자원을 조작해서 사용할 경우 오류의 원인을 찾기 힘들기 때문에 피하는 것이 좋다. 아키텍처는 쉽게 이해할 수 있고 쉽게 바꿀수 있도록 단순해야 한다. 추상 클래스가 존재하고 시간이 갈 수록 개발자 본인도 이해하지 못하는 구조나 새로운 기능..

Developer 2018.06.22

[iOS]What's New in the Apple Push Notification Service

애플에서 푸쉬서비스 토큰 방식이 추가되어서 알아봤다. 중요개선사항1. HTTP/2 로 영구 푸시를 기반으로하는 새로운 프로토콜을 도입했다. HTTP/2는 단일 연결을 통해 여러개의 스트림을 지원하는 매우 빠른 바이너리 프로토콜입니다.2. 프로토콜은 더 이상 활성화되지 않은 장치 토큰을 나타내는 즉각적인 피드백 제공을 지원합니다. 푸쉬를 보내는 API를 호출했을 때, PUSH가 전달되지 않으면 Response로 알려주는게 추가되었다.3. 페이로드가 최대 4KB로 증가되었다. 하나의 생성된 Key 토큰으로 개발자의 푸쉬를 보낼수가 있습니다.이로 인해 많은 개발자가 여러 인증서를 관리, 갱신 및 취소 할 수있는 어려움이 줄어 들었습니다.

Developer/iOS 2017.08.08

iOS의 코드 서명(데이터 실행 보호(DEP - Data Execution Prevention))

iOS는 왜 해킹에 강할까? 라는 의문점을 가지고 찾아 보는 중에 DEP라는 매커니즘이 적용된 것을 알 수 있었다. 01 DEP란?프로세서가 데이터 영역은 실행하지 않고 코드 영역만 구동하도록 메모리에서 코드 영역과 데이터 영역을 구분하기 위한 메커니즘.즉, 공격 코드가 다운로드한 코드를 실행시키는 것을 막을 수 있다는 뜻이다. 다운로드한 코드는 DEP를 통해 데이터로 취급되어서 실행을 할 수 없게 된다.그래서 iOS를 공격할 때는 ROP를 사용한단다. ( ROP에 대해선 나중에..) 02 iOS의 코드서명.iOS의 코드서명은 매커니즘은 DEP와 비슷하지만 좀 더 강력하다.DEP를 매커니즘이 되어있다면, ROP를 활용해 쓰고 실행할 수 있는 메모리 영역을 먼저 생성한 후, 공격에 필요한 페이로드를 작성하..

Developer/iOS 2017.03.21

iOS10.0의 새로운 점(What's New in iOS 10.0)

iOS10.0이 나온지 꽤 시간이 지났지만,iOS 개발자로써 iOS가 새로 나올때마다 정리를 해둬야 될 것 같아서 뒤늦게 애플문서를 보고 정리를 해야겠다 생각하고 글을 쓴다.자세한 내용(https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html#//apple_ref/doc/uid/TP40017084-SW1) Providing Haptic Feedback아이폰7, 아이폰7Plus 에서 기존 맥북에 있던 트랙패드처럼 홈버튼이 햅틱방식으로 변경되었다.UIKit의 UIFeedbackGenerator로 사용할 수 있다.아이폰7이 출시 된 후 만져본 느낌으론 어색했지만 적응이 된..

Developer/iOS 2016.11.07

비동기(NSOperation, GCD)의 차이점.

1. NSOperation- 고수준의 편리한 API제공한다.(KVO 키 감시, operation cancel제어등..)- 일반 스레드보다 약간 처리속도에 손실이 있다고 한다. 그럼에도 불구하고 편리한 메소드들은 이러한 단점을 커버하기 충분하다.- GCD의 객체형이라고 볼 수 있을까?사용후 알아서 메모리 해제. 2. GCD- 블록으로 구현되어 있어 간단하게 사용가능하고 또한 코드 가독성도 좋다.- 저수준 스레드 구현가능되기에 속도면에서 좋다고 한다. 다만, 상태감시, 오퍼레이션 캔슬 등등 다 직접 만들어야 한다는 귀찮음을 동반한다.GCD는 NSOperation과 유사합니다. GCD는 C언어 기반이라는 차이점을 갖습니다.사용후 직접 메모리 해제. NSOperation과 GCD의 차이가 뭘지 궁금해서 검색해서..

Developer/iOS 2016.08.16

[iOS]WCSession으로 iWatch와 iPhone 데이터 주고 받기

- ViewController.m : 아이폰에서 값을 보낼 화면에서 다음과 같이 하시면 됩니다. #import @interface ViewController () @end - (void)viewDidLoad { [super viewDidLoad]; //WCSession을 activate합니다. if(WCSession.isSupported){ WCSession* session = WCSession.defaultSession; session.delegate = self; [session activateSession]; }}-(void)packageAndSendMessage{ //보낼 Dictionary를 설정합니다. NSDictionary* request = "보낼 Dictionary"; if(WCSessi..

Developer/iOS 2016.08.02