iOS 뉴비입니다.

[번역]Swift API Design Guidelines

July 17, 2016 Code

Swift를 좀 더 Swifty하게 작성할 수 있도록 API Design Guideline을 번역하였습니다. 공식 문서는 여기에서 보실 수 있고, 번역본은 여기에서 보실 수 있습니다. 번역에서 오탈자나 어색한 문장이 있다면 여기로...

[iOS]ScrollView의 Bounce를 아래에서만 동작하기

July 1, 2016 Code

얼마전에 개발을 하다 아래에만 바운스 기능이 동작하도록 요구사항을 전달받아서 간단하게 처리해보았습니다. ScrollView의 contentOffset의 y값이 0보다 큰 경우에 bounces를 활성화시켜 아래에서만 바운스가 동작하도록 만들었습니다. func scrollViewDidScroll(scrollView: UIScrollView) { scrollView.bounces...

[ReactiveX][RxSwift]Unit Test 2 – Subject

June 8, 2016 Code

이전에 다루었던 Subject를 유닛 테스트하려고 합니다. Subject는 Observer와 Observable 두 역할을 수행할 수 있습니다. Subejct는 Observer 역할로서 하나 이상의 Observable을 구독하며, Observable 역할로 아이템을 내보낼 수 있습니다. 다음...

[ReactiveX][RxSwift]핫 옵저버블과 콜드 옵저버블

May 31, 2016 Code

다음은 ReactiveX에서 정의한 Hot and Cold Observables과 RxSwift에서 특정을 정리한 글을 번역한 자료입니다. 핫 옵저버블과 콜드 옵저버블 핫 옵저버블은 만들어지는 즉시 아이템을 발행하기 시작합니다. 그리고 Observable을 구독하는 Observer는...

[ReactiveX][RxSwift]Delegate 패턴을 Rx로 바꾸기

May 24, 2016 Code

이 글은 이해가 낮은 상태에서 참고용으로 작성하였습니다. 잘못된 내용이 있을 수 있습니다.   RxCocoa를 사용하다보면, Delegate로 사용해야 할 메소드가 확장되어 사용되는 것을 볼 수 있습니다. 예를 들면, UITableView의...

[Shell][Python][ImageMagick]하얀색을 투명으로 바꾸기

May 10, 2016 Code

이미지를 전달받았을 때, 배경색이 투명으로 바꿔야할 경우가 있습니다. 여러가지 방법이 있지만, 그 중 두 가지 방법을 쓰려고 합니다. 첫번째는 ImageMagick을 이용한 방법입니다. convert input.png -fuzz 10% -transparent white...

[ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest

May 7, 2016 Code

flatMap Rx에서 Observable에서 발행한 아이템을 다른 Observable로 만들며, 만들어진 Observable에서 아이템을 발행합니다. RxSwift에서 제공하는 예제를 살펴보면 좀 더 쉽게 이해할 수 있습니다. let sequenceInt = Observable.of(1, 2, 3)...

[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은 특정 기능들을 묶어 실행하는 길, 통로라고 할 수...