iOS 뉴비입니다.

[iOS][Swift]구글 매터리얼 디자인의 물결 효과 만들기

April 4, 2016 Code

가끔씩 매터리얼 디자인의 물결 효과를 보면서 iOS에 적용해볼까 했지만, 이 효과때문에 Material 라이브러리를 추가해야하나 했습니다. 그래서 CALayer를 이용해서 구현해보았습니다. class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad()...

[Swift]Hashable 프로토콜

March 29, 2016 Code

Swift에서는 hashable이라는 프로토콜을 통해 커스텀 구조 및 고유 값을 만들 수 있습니다. struct Point { let x: Int let y: Int } extension Point: Hashable { var hashValue:...

[ReactiveX][RxSwift]Observable과 Driver

March 21, 2016 Code

Driver RxSwift는 다른 언어의 Rx 구현체와는 다르게 Driver라는 unit을 제공합니다. 하지만 기본으로 Observable을 제공하기 때문에 Driver를 언제 써야 할 지 궁금했습니다. Driver는 UI layer에서 좀 더 직관적으로 사용하도록...

[Objective-C][LLVM]Clang diagnostic 경고 무시하기

February 7, 2016 Code

Clang diagnostic 경고 무시하기 코드를 작성하다 보면 어쩔 수 없이 경고가 발생하더라도 그대로 작업해야 하는 경우가 있습니다. 예를 들면, 컴파일 및 배포를 해도 상관은 없지만 Xcode Server에서 경고...

[iOS][Swift]NSHTTPCookieStorage를 이용하여 사라진 Cookie 찾기

February 3, 2016 Code

사내에서 돌아가고 있는 서비스를 웹페이지를 파싱해서 앱으로 만들고 있습니다. 사내 서비스가 토이 프로젝트였기 때문에 앱 형태의 서비스는 고려되지 않지만 대부분 작업을 수월하게 진행하였습니다. 그러나 마지막 작업을 진행하던 도중...

[ReactiveX][RxSwift]들어가기 전 – 0

February 1, 2016 Code

UI와 관련된 프로그래밍을 주로 하다 보니 항상 UI와 데이터 간의 바인딩 문제, 구조적 설계에 미숙하여 나중에 고칠 때 다시 찾는 데 어려움을 겪은 적이 많았습니다. 그러면 이를 어떻게...

[Apple][iTMSTransporter]iTMSTransporter로 인앱 다루기

January 17, 2016 Code

서비스에 따라 다르지만 인앱 가격이 자주 바뀌는 서비스인 경우, 매번 itunesconnect에 들어가서 인앱 가격을 변경하거나 기간을 설정해줘야 합니다. 이벤트를 해야 하는 시점에 여러 앱의 인앱들을 바꿔야 한다면, 끔찍합니다....

[Swift]클래스만 사용 가능한 프로토콜 선언하기

January 11, 2016 Code

프로토콜은 클래스나 구조체에서 사용 가능합니다. 또한, 프로토콜을 클래스에서만 사용 가능하도록 선언할 수 있습니다. protocol TTTProtocol: class { func hello(greeting: String) } class TTT: TTTProtocol { func hello(greeting: String)...

[iOS][Xcode]fastlane을 이용하여 쉽게 테스트, 빌드, 배포하기

December 11, 2015 Code

뒤늦게 fastlan을 알게되었습니다. 아직 Xcode ci를 도입해야하는데 이런저런 사정이.. 귀차니즘과 함께하여 진행하질 못하였기에 이런저런 수작업으로 바이너리를 앱스토어에 올리고 있었습니다. fastlane은 특정 기능들을 묶어 실행하는 길, 통로라고 할 수...

[잡설]Humans Need Not apply 영상 리뷰

November 28, 2015 Blog

Humans Need Not Apply 영상을 본 리뷰입니다. 이전부터 사람은 게으른 존재로, 좀 더 쉽게, 좀 더 편하게 할 수 있도록 도구를 만들었습니다. 순수하게 짐을 운반하던 것을 통나무를 앞에...

[Objective-C][Swift]한글 풀어쓰기

November 17, 2015 Blog

한글 초성, 중성, 종성을 분리하는 기존 Objective-C 코드를 모던하게 수정하였고, Swift 코드로 변환하였습니다. Objective-C @interface NSString (Hangul) - (NSString *)linearHangul; @end @implementation NSString (Hangul) - (NSString *)linearHangul {...

[번역][Swift]프로토콜지향 프로그래밍

November 15, 2015 Blog

[원본 보기] 이 영상 번역 글은 Protocol-Oriented Programming in Swift의 비공식 영상 번역글이며 Apple에서 보증, 유지 또는 감독하지 않습니다. 공식 영상을 보시려면 Apple Developer을 방문하세요. 프로토콜지향 프로그래밍 안녕하세요....

[Swift]Swift 로그 매크로(?) 만들기

November 15, 2015 Blog

이전에 작성한 상세 로그 만들기에서 DFT_TRACE 매크로를 만들어 잘 사용했었습니다. Swift에서는 매크로를 사용할 수 없어, 전역으로 사용할 함수를 만들어 호출하도록 만들었습니다. func DFT_TRACE(filename: String = __FILE__, line: Int...

[Objective-C]Struct에 Objective-C 객체 사용하기

November 13, 2015 Blog

들어가기 전 Swift에서 Tuple을 이용하여 여러 값을 한 번에 넘길 수 있습니다. 하지만 Objective-C는 ARC가 적용된 이후엔 struct 내부에 클래스 타입을 사용하지 못하도록 금지되어 있습니다. typedef struct ImageNames...

[Objective-C]Generics를 사용하세요.

October 30, 2015 Blog

Objective-C에서도 generics을 사용할 수 있다는 것을 아시나요? 이전에 Objective-C를 사용하면서 불만스러웠던 것 중 하나가 NSArray나 NSDictionary, NSSet 등에서 값을 넣을 때, id 타입으로 들어간다는 점이었습니다. 즉, 어떤 타입의...

[Swift]Switch문 Trick

October 18, 2015 Blog

IF Case 문 Swift 2에서는 Switch문이 아닌 if문에서도 case를 사용할 수 있습니다. enum Direction { case Right, Down, Left, Up } let r = Direction.Right let l =...

[Swift]안전하게 배열 조회하기

October 11, 2015 Blog

안전하게 배열 조회하기 배열에서 특정 위치의 값을 얻기 위해서는 배열의 크기를 체크해야하는 조건이 필요합니다. if index < array.count { // 작업 수행 } 범위를 확인하지 않고 값을 조회하면,...