분류 전체보기 5

[SwiftUI] ViewModifier를 이용한 Custom Modifier 활용

SwiftUI로 앱을 작성하다 보면, View에 대한 ViewModifier를 수족처럼 사용하게 된다. 이를테면 가장 많이 사용하는 .padding()부터, .foregroundStyle(), .background() 등 View에 사용할 수 있는 많은 Modifier가 존재한다. 이에 더해 Button, NavigationLink 등 Label 아규먼트에 View 객체를 전달하여 사용하는 경우 비슷한 패턴의 코드가 반복될 수 있다. 가령 기계적으로 다음과 같은 뷰를 작성하다 보면, 문득 이런 생각이 들 수 있다. var coinList: some View { LazyVStack { ForEach(filteredList, id: \.id) { item in ..

개발/iOS 2025.04.17

[Swift] 문자열 WhiteSpace 간단 처리(trimmingCharacters Method)

UITexfField나 UISearchBar 등 문자열 입력을 받는 경우, 대부분 유효성을 검증하는 로직을 함께 구현하게 된다. 이런 경우에 주로 다음과 같은 조건들을 검사하게 된다.공백 입력(WhiteSpace)글자 수 제한(e.g. 4글자 이상, 12글자 이하)특수문자 제한(e.g. 모든 특수문자, @_ 등을 제외한 특수문자 제한 등)대소문자 혼합(e.g. 대소문자 각 1자 이상을 포함)조건이 많아질수록 정규표현식이나 다른 방법을 사용하는 게 코드가 더 간결해질 수 있지만, Validate 조건이 비교적 간단하다면 White Space 검출에 다음 메서드를 활용할 수 있다.  패러미터로 받는 캐릭터셋을 문자열 양 끝에서 제거한 후 새로운 문자열로 반환합니다.   StringProtocol의 Exten..

개발/메모 2025.03.08

[RxSwift] .observe(on:) vs .subscribe(on:)

RxSwift를 사용하다 보면 Thread를 변경해 가며 작업을 해야 할 때가 있다. 특히 데이터를 가공한 후 이를 뷰에 반영할 때는 특히나 신경을 써줘야한다. (그렇지만 Drive를 쓴다면?) 오늘은 RxSwift에서 Thread를 변경하는 두가지 방법에 대해 정리해보려고 한다.  잠깐, 그 전에이 녀석을 Operator라고 해야 할까 Method라고 해야 할까? ReactiveX 공식 문서에서는 ObserveOn과 SubscriveOn을 Operator로 명시하고 있다. 간단하게 '데이터 스트림'에 영향을 준다면 Operator라고 구분하면 될 것 같다. 그럼 우선 ObserveOn부터 살펴보도록 하자.  .observe(on:)Wraps the source sequence in order to ru..

개발/iOS 2025.02.19

[UIButton] .addTarget VS .addAction

우리는 UIKit 프레임워크에서 버튼을 구현할 때 일반적으로 UIButton을 사용한다. 물론 디자인이나 의도하는 사용자 경험에 따라 뷰에 탭 제스처를 붙이기도 하고, 다양한 방법으로 구현하는 경우도 있다. 오늘은 버튼의 스타일이나 디자인보다는 동작에 대해 정리를 해보려고 한다. UIButton의 동작을 정의하는 두 가지 방법 addTarget 메서드와 addAction 메서드를 비교해 보자.  AddTarget우선 한 가지 짚고 넘어갈 사실은, 두 메서드 모두 UIButton이 아닌 UIControl(* UIButton은 UIControl을 상속한다.)의 메서드이다. 우리에게 익숙한 addTarget 메서드의 정의를 보면, target과 Selector, controlEvents를 받는 것을 볼 수 있..

개발/iOS 2025.02.06

UITabBar Item Color 변경

코딩을 하다보면, 유독 기억에 안 남거나 할때마다 헷갈리는 부분들이 있다.  이 메모란에 그러한 것들을 적어 가며 Cheat Sheet처럼 활용해 보려고 한다.     오늘은 첫 메모로 Storyboard 환경에서 작업을 할 때, UITabBar의 Item Color를 바꾸는 것을 남기려고 한다. 우선 탭 바를 포커스 했을 때 인스펙터부터 보자.  스토리보드에서 설정할 수 있는 Attributes를 볼 수 있다. 여러 가지 속성이 있지만, 지금 관심이 있는 건 Item의 색상과 관련된 부분이니 직관적으로 다음과 같은 속성들을 찝어볼 수 있다.AppearancesImage TintBar TintTint 우선 Appearances. 해당 Attrubute는 iOS 13 버전에서 새롭게 추가된 항목으로, UI..

개발/메모 2025.01.05