iOS

    swift - 값 타입 vs 참조 타입

    클래스(class)와 구조체(struct)는 흔하게 접할 수 있는 친구들이죠 사용하는 것을 보면 비슷해 보이지만, 분명 차이가 있기 때문에 나눠놨을 것이고,, 또 중요한 부분이니 딱! 잡고 넘어가면 좋을 것 같습니다. (이걸 이제?) 공통점? 실제로 이 둘은 많은 공통점을 가지고 있죠! 정리를 해보면 아래와 같습니다. 프로퍼티(값을 저장)를 정의! 메소드(기능 제공)를 정의! 생성자(initializer)를 정의! 특정 값에 접근할 수 있는 subscript 정의! 프로토콜 사용과 extension 가능! 이 정도가 되겠네요,, 그렇다면 클래스에서만 사용할 수 있는 기능에는 무엇이 있을까요~? 크게 상속, 타입 캐스팅, 소멸자, 그리고 참조 카운트가 있겠네요. 이 중에서도 참조 카운트가 중요하다고 생각합..

    swift - SnapKit & Then

    최근에 스냅킷을 자주 사용하게 되어 정리를 하려고 합니다! GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub. github.com podfile에 SnapKit과 Then을 추가하시고 install 해주세요! 스냅킷은 iOS와 OS X에서 오토레이아웃을 쉽게 잡아주는 친구라고 하네요. 직접 사용해 보니까 오토레이아웃을 코드를 사용하여 직관적으로 나타낼 수가 있어서 좋았습니다! Then은 클로저를 사용해서 인스턴스(여기서는 뷰)를 생성할 때 ..

    RxSwift - Driver vs Signal

    오늘은 Driver와 Signal에 대해서 정리를 해보려고 합니다! 종종 보이는 녀석인데 약간 습관처럼(?) 사용은 해도 왜 사용하지?에 대해서는 생각해 본 적이 없더라구요 ㅎㅎ;; Driver RxSwift를 사용해서 테이블뷰 혹은 컬렉션뷰를 만들 때 보통 이렇게 사용을 할 겁니다! asDriver()는 어떤 역할을 하는 메소드일까요? 정의된 메소드를 타고 들어가보면 이런 식으로 구현이 되어 있습니다 아아닛?! asObservable이 보입니다! 그냥 Observable에 asObservable 한 것에 .observe(~)를 한 것이 Driver인 것 같네요 여기서 중요한 것은 저기 보이는 DriverSharingStratergy.scheduler 입니다 잘 모르겠지만 scheduler를 다루나봐요!..

    swift - MVVM 패턴 (feat. MVC)

    iOS 공부를 하면서 MVC나 MVVM 등, 다양한 패턴에 대해서 들어 보셨을 겁니다. 그런데 이런 패턴을 적용하는 이유가 뭐지?? 그냥 돌아가기만 하면 되는 거 아닌가?? 라는 생각을 했었지만... 프로젝트의 크기가 커진다면? → 에러가 난 부분을 찾는 것과 로직 파악이 어렵다 (분명 내가 짠 코드인데...?) 함께 협업하는 상황이라면? → 잇시 이거 누가 짰어! (그 코드를 이해하는 데 어려움이 발생) 문제점은 여러가지가 있겠지만 그 중에서도 위의 문제가 중요하다고 생각합니다. 적절한 비유는 아니지만... 만약 자취를 한다고 생각하면! 혼자 산다! 그러면 뭐 대충(?) 살겠죠. 분명 내가 던져 놓은 물건인데 필요할 때에는 꼭 찾기 어렵고... 하지만 함께 산다! 서로 민폐가 되지 않기 위해서 규칙을 ..

    swift - ReactorKit

    MVVM 패턴은 따로 규격화된 것이 없습니다. 그렇기 때문에 개발자의 개발 스타일에 따라 코드가 달라질 수 있습니다! 협업을 한다면 치명적인 문제가 될 수 있습니다. 코드를 이해하는 데 시간이 걸리고 의도와 다르게 파악할 수도 있기 때문이죠. 하지만 ReactorKit은 형식이 있기 때문에 다른 개발자가 작성한 코드도 쉽게 이해할 수 있습니다!! 그리고 보통 MVVM과 RxSwift를 같이 사용하는 경우가 많은데, 이때 상태 값을 관리하기가 어려워지는 문제가 있습니다. 이런 문제들을 빠샤! 하기 위해 등장한 것이 바로 ReactorKit입니다! 그리고 RxSwift 기반으로 만들어졌기 때문에 RxSwift의 메소드를 사용할 수 있습니다. 흐름은 MVVM과 비슷합니다. 사용자가 어떠한 액션을 보내면 Rea..

    RxSwift - 기본 개념 맛보기

    맨날 정리해야지... 생각만 하고 있다가 이제야 정리하게 되네요 하하 RxSwift... 자주 들어보셨죠? 특히 회사 공고에 우대사항에 자주 보일 정도로 중요한 기술입니다. 사실 직접 써보면 여러가지 이점이 많아서 계속 쓰게 됩니다. 오늘은 완전 자세히가 아니라 맛보기 수준으로 정리를 하려고 합니다! (이해가 목적!) 더 깊이 있는 내용들은 다음 시간에 이어서 다룰게요! Rx(ReactiveX)? ReactiveX 홈페이지에 들어가면 이런 문구를 볼 수 있습니다! ReactiveX는 관찰 가능한 흐름들로 비동기적인 프로그래밍을 하기 위한 API다! 음... 사실 저는 처음 Rx를 접할 때 무슨 소리인지 이해를 할 수 없었습니다... 이 부분은 아래에서 다시 설명할게요! RxSwift는 새로운 언어가 아니..