전체 글 57

Podfile Syntax - inherit!이란

유닛테스트 환경 설정 도중 과 같은 에러를 만났다. 테스트 타겟에서 해당 모듈(Firebase)을 가져올 수 없다는 메시지이다. 테스트 타겟에서 부모 타겟에 있는 모듈들의 상속에 대한 이슈이다. 그러기 위해선 아래와 같은 구조로 명시해줘야 해당 이슈를 해결할 수 있었다. Inherit이란? 해당 타겟의 상속 모드를 설정하는 키워드. 상속 설정 가능한 모드 complete : 해당 타겟은 부모로부터 모든 동작을 상속. none : 해당 타겟은 부모로부터 어떠한 동작을 상속하지 않음. search_paths : 해당 타겟은 부모의 검색 경로만 상속. 예) target 'App' do target 'AppTests' do inherit! :search_paths end end

iOS 2020.06.21

Podfile.lock을 git commit시 포함해야하는가?

iOS 개발을 진행하다보면 라이브러리 의존성 관리 매니저로 CocoaPods을 대부분 사용할텐데요. pod에 명시되어있는 라이브러리를 다운받을 때 결정하는 것은 Podfile 또는 Podfile.lock입니다. Podfile.lock 파일은 언제 생성되나요? 1)pod install 2)Podfile.lock에 다운받은 버전이 명시되며 파일이 생성된다. Podfile.lock를 보면은 그래서 .lock은 왜 필요한건가요? 버전을 명시하고 함께 작업하는 개발자들과 싱크를 맞추기 위함입니다. 프로젝트를 혼자 진행한다면 올리지 않아도 되지만, 다른 협업자들과 함께 작업해야하는 프로젝트라면 .lock파일을 함께 커밋하여 버전관리를 해야합니다.

iOS 2020.06.14

[RxSwift] Subject 정리

안녕하세요. 오늘은 옵저버블이자 옵저버 역할을 하는 Subject에 대해 정리해보려고 합니다. Subject란 RxSwift에서 옵저버블에게 새로운 값을 전달하고 subscriber가 새로운 값을 전달 받는 형식입니다. Subject는 옵저버블이자 옵저버 두 역할을 모두 수행합니다. next이벤트를 통해서 값을 전달 받고, 이벤트를 수신할 때 마다 subscriber를 통해 방출합니다. Subject 종류 Subejct종류로는 PublishSubject, BehaviorSubject, ReplaySubject, Variable가 있습니다. 1) PublishSubject 서브젝트로 전달되는 이벤트를 옵저버에게 전달하는 가장 기본적인 형태의 서브젝트입니다. 즉, 빈 상태로 시작하며 새로운 값을 전달 받을 ..

RxSwift 2020.05.24

[RxSwift] Creating Observables 정리

RxSwift에서 생성 옵저버블에 대해서 정리해보려고 합니다. 1. Create Create는 직접적인 코드 구현을 통해 옵저버 메서드를 호출하여 옵저버블을 생성합니다. - 구현부 public static func create(_ subscribe: @escaping (RxSwift.AnyObserver) -> RxSwift.Disposable) -> RxSwift.Observable subscribe 파라미터는 AnyObserver를 가져와 Disposable을 반환하는 이스케이프 클로저입니다. - 예제 Observable.create { observer in observer.onNext("A") observer.onCompleted() return Disposables.create() }.subscr..

RxSwift 2020.05.16

[RxSwift] 옵저버블(Observable)이란?

- 옵저버블(Observable)이란? ReactiveX에서는 옵저버는 옵저버블을 구독(Subcribe)하고 옵저버블이 방출하는 항목, *시퀀스를 통해 이벤트를 처리합니다. 쉽게 말해, 옵저버블은 이벤트를 전달하고 옵저버는 옵저버블을 감시하고 있다가 전달되는 이벤트를 처리합니다. (*시퀀스란? 옵저버블이 될 수 있는 데이터 타입(Array, String, Int, 그 외 모델)) 다이어그램을 한번 봐볼게요. 왼쪽에서 오른쪽 화살표는 시간을 나타내고 숫자로 표시된 부분은 시퀀스 요소를 나타냅니다. - 옵저버블이 전달하는 세 가지 이벤트(onNext, onError, onCompleted) 아래 3가지 이벤트가 전달되는 시점은 옵저버가 구독(subscribe) 시작한 시점입니다. (subscribe는 옵저버..

RxSwift 2020.05.16

RxSwift란

- RxSwift란 RxSwift는 ReactiveX 라이브러리를 Swift로 구현한 것입니다. 이 정의를 보시면 ReactiveX에 대해 궁금하신 분들도 계실텐데요. 그렇담 ReactiveX란? - ReactiveX란 관찰 가능한 시퀀스를 이용하여 비동기 이벤트 기반 프로그래밍 라이브러리입니다. 개념은 이게 전부입니다. 앞으로는 http://reactivex.io/ ReactiveX CROSS-PLATFORM Available for idiomatic Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and others reactivex.io 메뉴바에 있는 Docs - Observable, Operators, Single, Subjec..

RxSwift 2020.05.16

iOS 오픈소스 첫 배포

안녕하세요. 코로나19 때문에 집에서 빈둥거리기만 하는 것 같아 iOS개발한 이후로 오픈소스 만들어볼 기회가 없었고 언젠간 만들어보고싶었는데 드디어 만들어보게되었습니다. CocoaPods 첫 배포! 아주 간단한 오픈소스이지만 한번 봐주시고 스타 한번 눌러주시면 감사하겠습니다. 피드백은 언제나 환영입니다. 추가로, build라는 아이콘이 눈에 띄었고 클릭해보니 Travis CI 사이트가 열리더라고요. Travis CI란 - 오픈소스 기반의 지속적인 통합(CI - Continuous Integration)서비스 다음주에는 Travis CI 적용해볼 계획해보려고 합니다. 오픈소스 링크는 아래에! https://github.com/gwangyonglee/IndicatorButton gwangyonglee/Ind..

iOS 2020.03.01

[iOS]contentInset, contentOffset

contentInset 하위뷰 콘텐츠의 상하좌우로 안쪽 여백을 주는 것입니다. (바깥쪽 x) https://developer.apple.com/documentation/uikit/uiscrollview/1619406-contentinset contentInset - UIScrollView | Apple Developer Documentation Instance Property contentInset The custom distance that the content view is inset from the safe area or scroll view edges. DeclarationDiscussionUse this property to extend the space between your content a..

iOS 2020.02.23

[iOS] CALayer란

CALayer란 UIView에서 렌더링, 레이아웃, 애니메이션 등을 관리하는 Core Animation클래스인 CALayer가 있습니다. 모든 UIVIew는 layer 프로퍼티를 가지고 있습니다. UIView는 레이아웃과 터치 이벤트 처리 등 많은 작업을 하게되는데 실제로 뷰 위에 컨텐츠나 애니메이션을 그리는 행위는 직접적으로 다루지 않고 UIKit이 Core Animation에 위임하게 되고, shadow, corner radius, border, 3D transform, masking contents, animation과 같은 작업들을 CALayer가 담당하게 됩니다. 사용 CALayer를 사용하기 위해서는 QuartzCore.framework가 추가되어있어야 합니다. 특징 - CALayer에서 CA..

iOS 2020.02.23