iOS 코드리뷰 후기 코드리뷰 Summary 코드리뷰 컨텐츠를 기획하게 된 계기는 "나의 코드를 누군가 리뷰해줬으면 좋겠다" 부터 시작하였습니다. 다른 누군가의 자원을 사용하면서 코드 리뷰를 받는 것은 경험하기 정말 어려운 일입니다. 그렇다면 내가 코드리뷰를 해주자! 그래서 코드리뷰 컨텐츠를 기획하게 되었습니다. 코드리뷰 컨텐츠를 기획하면서 가장 중요하게 생각했던 부분은 "상대방 코드에 대한 존중"이었습니다. "하는 것이 좋지 않을까요?" 라는 늬앙스로 의견을 제시하는 형식으로 공격적인 느낌을 들지 않도록 주의를 기울였습니다. 그러나 확실하게 잘못되었던 부분에 대해서는 " ~~ 하는 것이 좋습니다." 라고 강하게 Comment를 드렸습니다. 코드리뷰 진행 방법 Review: [카테고리] 내용 형식으로 warning 표시하였습.. 더보기 RxSwift Error Handling 을 제대로 해보자! RxSwift를 사용하면서 좋은 점 중 하나는 Error Handling 을 간편하게 할 수 있다는 점입니다. 간단히 쓸수 있는 Error handling 도 중요하지만 보다 복잡한 조건을 추가해봅시다. Conditions: 1. Restful API 실패 시 3번의 retry 해야함 2. 실패하면 다시 요청할 때 까지 300 millisecond의 Interval 이 있어야 함. 3. 특정 Error 값이 발생할 경우에만 retry 를 해야 함 어떻게 해야 할지 감이 오시나요? 바로 소개합니다. ObservableType retryWhen(predicate:maxRetry:timeInterval:scheduler) 의 Util 함수를 만들었습니다! 2019-09-03 16:56:13.589: retry.. 더보기 왜 MVVM 을 사용할까요? 이 포스트는 기본적인 MVVM 의 지식을 알고 있다는 가정하에 설명되며 개인적인 의견이 많이 포함되어있습니다. 왜 MVVM 을 사용할까요? 저는 개인적으로 3가지 이유를 들수 있습니다. 1. 구체적인 View 를 알지 못하더라도 요구사항에 따라 ViewModel 을 설계할 수 있습니다. 2. ViewModel을 재사용 단위로 설계할 수 있습니다. 3. Testable 합니다. Github Repositories 를 검색할 수 있는 기획이 있다고 가정해 봅시다. 구체적인 View 를 알지 못하더라도 요구사항에 따라 ViewModel 을 설계할 수 있습니다. 우리는 위에 간단한 Demo 에서 4가지 Case 의 요구사항을 정의할 수 있습니다. 1. Repository는 이름으로 검색할 수 있습니다. 2. 검.. 더보기 RxCocoa Binder? ControlEvent? Binder RxCocoa Binding을 사용하면 다음과 같이 값의 변화에 따라 화면의 일부 View에 쉽게 Binding 할 수 있습니다. 위에 그림 예제는 ViewModel(myObservable View의 속성을 가지는 Observable) 과 View(myLabel의 Text)는 Databinding 을 사용하여 View의 변화를 주고 있습니다. 왜 Binder를 사용할까요? MVVM 의 DataBinding 을 구현하기 위해서는 Binder 가 필요하기 때문입니다. 위에 예제에서는 `text` 의 sink 를 통해서 UILabel의 text를 업데이트 할 수 있습니다. UILabel+Rx.swift Stream의 용어에서는 Source, Sink 두 용어가 있습니다. Source: 원본 즉 이.. 더보기 iOS 사용성 최대로 올려보자! (Final) - UIViewController Interactive Transition 저번 포스팅에서는 어려운 단계에 도달하기 전에 쉬어가는 시간으로 Easing Function 을 살펴보았습니다. 이 포스팅은 "사용성 최대로 올려보자!"의 Series 중 일부입니다. 1. iOS 사용성 최대로 올려보자! (Part1) - PaintCode 2. iOS 사용성 최대로 올려보자! (Part2) - ShapeShifter 3. iOS 사용성 최대로 올려보자! (Part3) - UIView Interactive Animation 4. iOS 사용성 최대로 올려보자! (Part4) - UIViewController Non Interactive Transition 5. iOS 사용성 최대로 올려보자! (Part5) - Easing function 6. iOS 사용성 최대로 올려보자! (Final).. 더보기 iOS 사용성 최대로 올려보자! (Part5) - Easing function 저번 포스팅에서는 UIViewController Transition 를 다루는 방법을 살펴보았습니다. 이 포스팅은 "사용성 최대로 올려보자!"의 Series 중 일부입니다. 1. iOS 사용성 최대로 올려보자! (Part1) - PaintCode 2. iOS 사용성 최대로 올려보자! (Part2) - ShapeShifter 3. iOS 사용성 최대로 올려보자! (Part3) - UIView Interactive Animation 4. iOS 사용성 최대로 올려보자! (Part4) - UIViewController Non Interactive Transition 5. iOS 사용성 최대로 올려보자! (Part5) - Easing function 6. iOS 사용성 최대로 올려보자! (Final) - UIV.. 더보기 iOS 사용성 최대로 올려보자! (Part3) - UIView Interactive Animation 저번 포스팅에서는 ShapeShifter 를 다루는 방법을 살펴보았습니다. 이 포스팅은 "사용성 최대로 올려보자!"의 Series 중 일부입니다. 1. iOS 사용성 최대로 올려보자! (Part1) - PaintCode 2. iOS 사용성 최대로 올려보자! (Part2) - ShapeShifter 3. iOS 사용성 최대로 올려보자! (Part3) - UIView Interactive Animation 4. iOS 사용성 최대로 올려보자! (Part4) - UIViewController Non Interactive Transition 5. iOS 사용성 최대로 올려보자! (Part5) - Easing function 6. iOS 사용성 최대로 올려보자! (Final) - UIViewController I.. 더보기 iOS 사용성 최대로 올려보자! (Part4) - UIViewController Non Interactive Transition 저번 포스팅에서는 Interactive Animation 를 다루는 방법을 살펴보았습니다. 이 포스팅은 "사용성 최대로 올려보자!"의 Series 중 일부입니다. 1. iOS 사용성 최대로 올려보자! (Part1) - PaintCode 2. iOS 사용성 최대로 올려보자! (Part2) - ShapeShifter 3. iOS 사용성 최대로 올려보자! (Part3) - UIView Interactive Animation 4. iOS 사용성 최대로 올려보자! (Part4) - UIViewController Non Interactive Transition 5. iOS 사용성 최대로 올려보자! (Part5) - Easing function 6. iOS 사용성 최대로 올려보자! (Final) - UIViewCon.. 더보기 이전 1 ··· 5 6 7 8 9 다음