본문 바로가기

IOS

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. 검.. 더보기
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.. 더보기
iOS 사용성 최대로 올려보자! (Part2) - ShapeShifter 저번 포스팅에서는 PaintCode 를 다루는 방법을 살펴보았습니다. 이 포스팅은 "사용성 최대로 올려보자!"의 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 Inte.. 더보기
iOS 사용성 최대로 올려보자! (Part1) - PaintCode 개인앱을 개발하고 있다면? 이 글을 꼭 봐야 할 것입니다. 이 포스팅은 "사용성 최대로 올려보자!"의 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 Interactiv.. 더보기
Android VS iOS 메모리 관리 방법 원문은 여기에서 확인할 수 있습니다. Android 와 iOS의 메모리 관리 기법은 어떻게 다른지 알아보도록 하겠습니다. Android는 CMS (Concurrent Mark-Sweep) Step 1. GC Root 를 정의합니다. 2. Mark 단계를 시작합니다. 생성된 모든 객체에는 기본적으로 0인 mark bit 가 설정되어집니다. 객체를 방문하면 1 로 설정합니다.아래 그림에서 mark bit 가 0은 회색으로 칠해져 있습니다. 3. Sweeping 가비지 컬렉터는 mark bit가 0으로 설정된 모든 객체를 찾기 위해 메모리 힙을 검색합니다. mark bit 가 0인 객체들을 제거하고 다시 모든 객체의 mark bit를 0으로 재 설정합니다. iOS ARC (Automatic Reference .. 더보기
navigationController의 [hidesBarsOnSwipe , hidesBarsOnTap, hidesBarsWhenKeyboardAppears, hidesBarsWhenVerticallyCompact] 알아봅시다. StoryBoard onSwipe, onTap, When Keyboard Appears, When Vertically Compact 4가지 옵션이 있습니다. programmatically navigationController?.hidesBarsOnSwipe = true navigationController?.hidesBarsOnTap = true navigationController?.hidesBarsWhenKeyboardAppears = true navigationController?.hidesBarsWhenVerticallyCompact = true 더보기