뭐라도하는봉
close
프로필 배경
프로필 로고

뭐라도하는봉

  • 분류 전체보기 (55)
    • Retrospect (15)
    • I'm Domain (1)
    • I'm Tech (0)
    • Personal Study (0)
    • Apple Developer Acadamy (0)
    • iOS (38)
      • Swift (19)
      • SwiftUI (4)
      • UIKit (14)
    • Developer (1)
    • CS (0)
  • 홈
  • 태그
  • 방명록
[iOS/UIKit] RxSwift에서의 Cell의 중첩 구독 문제

[iOS/UIKit] RxSwift에서의 Cell의 중첩 구독 문제

RxSwift를 통해 TableView를 구성하고, 그 TableView Cell안에 있는 버튼을 탭했을때의 동작을 구현하고 있었는데,다음과 같은 문제가 발생했다. TableView를 스크롤을 한 이후에 '받기'라는 Cell안의 버튼을 누르면 push가 계속 되는 현상이 발생했다...! 이번 글에서는 이러한 현상이 발생하는 이유와 해결법에 대해 알아보겠다.Cell의 중첩 구독 문제코드는 다음과 같다.items .bind(to: tableView.rx.items(cellIdentifier: SearchTableViewCell.identifier, cellType: SearchTableViewCell.self)) { (row, element, cell) in cell.appNameLabel..

  • format_list_bulleted iOS/UIKit
  • · 2025. 2. 23.
  • textsms
[iOS/UIKit] RxSwift 용어정리

[iOS/UIKit] RxSwift 용어정리

RxSwift를 학습하다보니 새로운 단어들이 너무 많아서 머릿속에서 정리가 잘 안됐었다. RxSwift의 개념이나, 더 정리할 내용이 있는 단어에 대해선 필요하다면 별도의 글을 작성하고,이번 글에서는  RxSwift의 핵심적인 단어들을 중심으로 한눈에 정리해보겠다. Observable과 Observaer`Observable`이벤트를 발생시키는 역할버튼을 탭하거나, 텍스트필드에 텍스트를 작성하는 등의 행위`Observer`구독이라는 행위로 `Observable`을 계속 관찰하고 있음`Observable`을 통해 신호를 받으면 즉, 이벤트가 전달되면 해당 이벤트를 처리하는 역할버튼을 눌렀을 때 화면 전환이 되도록 이벤트를 처리하는 등의 행위Observaer의 이벤트 처리방식(onNext, onComplete..

  • format_list_bulleted iOS/UIKit
  • · 2025. 2. 20.
  • textsms

[iOS/Swift] Typed throws - Swfit6에서의 에러처리 패턴 개선사항

Swift에서 Error를 Handling하는 방법으로 do try - catch 패턴을 사용하곤 한다.하지만, Swift5에서는 이 패턴을 이용할 때 Error타입과 관련해서 아쉬운 점이 존재했다. 이번 글에서는 Swift5에서의 에러처리 패턴의 구조와, Swfit6에서 개선된점을 소개하겠다. 기존의 에러처리 패턴문자열의 유효성을 검증하는 로직이 있다고 가정할 때 다음과 같이 에러를 처리할 수 있을것이다. 열거형으로 Error 정의enum ValidationError: Error { case emptyString case isNotInt case isNotDate}이렇게 Error 프로토콜을 채택한 열거형을 생성하고, 컴파일러는 이 세 가지 경우를 제외하고는 성공으로 간주하게 된다. t..

  • format_list_bulleted iOS/Swift
  • · 2025. 2. 16.
  • textsms
[iOS/Swift] MVVM의 한계에 대한 고찰 - Massive View Model 해결법

[iOS/Swift] MVVM의 한계에 대한 고찰 - Massive View Model 해결법

기존의 MVC패턴의 한계를 극복하고자 MVP, 그리고 MVVM 패턴이 등장하게 되었다. MVC의 한계와 MVVM이 탄생한 이유는 여러가지가 있을 수 있겠으나, 대표적으로 다음의 이유들이 있었다.View와 Business logic간의 긴밀한 연관성에 의해 확장성, 유지보수에 어려움을 겪음추가로 View가 Model에 영향을 줄 수 있기 때문에, 터치 이상으로 복잡한 소통을 해야 할 경우 프로토콜 등을 통해 Controller에 책임을 위임함ViewController의 역할이 많아지면서 Controller가 비대해지는 Massive View Controller의 문제가 발생 이 외에도 여러 이유가 있을 수 있겠지만, 어쨌든 MVVM이 등장한 가장 핵심 이유는"View와 Model의 의존성 분리"라고 생각한..

  • format_list_bulleted iOS/Swift
  • · 2025. 2. 11.
  • textsms
[iOS/Swift] ARC - Swift의 메모리 관리 기법 그런데 이제 weak을 곁들인

[iOS/Swift] ARC - Swift의 메모리 관리 기법 그런데 이제 weak을 곁들인

ARC는 Swift의 메모리 관리기법이다.RC 즉, Reference Counting이라는걸 이용해 자신을 참조하고 있는 수를 계산해서 메모리에서 해제할지를 결정하는 방식인데..이번 글에서는 ARC에 대한 개념적인 내용은 생략하고, 실제 코드에서의 흐름을 조금 더 살펴볼 예정이다. 물론 자세한 코드는 뒤에서 볼 예정이지만, 흐름 중 다음과 같은 내용이 있었다."두 개의 클래스가 서로를 참조하고 있는 상황에서, 그 중 하나의 연결을 끊고, 해당 클래스를 참조하는 인스턴스에 nil을 할당해서 연결을 끊으면 모든 연결관계가 끊어져서 Deinit이 된다" 그런데 문득 이런 궁금증이 생겼다.왜 서로 물려있는 연결관계중에 하나만 끊어줘도 모든 연결관계가 끊어질까? 이러한 의문은 흐름을 천천히 살펴보면서 해결해보겠다..

  • format_list_bulleted iOS/Swift
  • · 2025. 2. 8.
  • textsms

[iOS/Swift] 커스텀 Observable와 bind메서드에 대한 고찰

(RxSwift를 사용하지 않고)MVVM 패턴을 사용할 때, 특정 객체의 변화를 감지하고 대응하기 위해 커스텀 Observable 클래스를 사용하곤 한다. Observable의 동작에 대해 간단히 설명하자면, 특정 값이 bind라는 메서드를 통해 closure라는 함수 타입의 프로퍼티에 전달이 되고, 그 값이 바뀔때 즉, didSet될 때 어떤 동작을 정의할 수 있다는 것인데......... 여기서 bind라는 함수가 존재하는 이유가 궁금해졌다.뒤에서 코드를 더 자세히 보겠지만, 사실 bind함수 없이 closure라는 프로퍼티 하나만으로도 충분히 의도한 동작을 할 수 있기 때문이다. 일단 Obsevable에 대해 간단히 알아보겠다.Observable의 컨셉과 구조MVVM 패턴에 대한 설명은 더 잘 정리..

  • format_list_bulleted iOS/Swift
  • · 2025. 2. 4.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (55)
    • Retrospect (15)
    • I'm Domain (1)
    • I'm Tech (0)
    • Personal Study (0)
    • Apple Developer Acadamy (0)
    • iOS (38)
      • Swift (19)
      • SwiftUI (4)
      • UIKit (14)
    • Developer (1)
    • CS (0)
최근 글
인기 글
최근 댓글
태그
  • #Swift
  • #MC1
  • #ios
  • #UIKit
  • #Apple Developer Academy @ POSTECH
  • #SwiftUI
  • #MC2
  • #RxSwift
  • #애플 디벨로퍼 아카데미
  • #MVVM
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바