반응형

전체 글 180

RxSwift | distinctUntilChanged

distinctUntilChanged는 연속으로 중복된 값을 방출하지 않습니다.🔍 distinctUntilChanged란?distinctUntilChanged는 RxSwift의 연산자로, 이전 값과 새 값이 동일한 경우 방출을 방지하는 기능을 제공합니다.연속으로 중복된 데이터(값)를 한 번만 방출합니다.이전에 방출된 값과 현재 값이 같으면 데이터 스트림에 방출되지 않습니다.값이 변경될 때만 새로운 값이 스트림으로 전달됩니다.💡 왜 사용해야 할까?불필요한 UI 업데이트 방지: 뷰를 다시 그리는 것을 막음.불필요한 연산을 방지: 동일한 데이터를 다시 계산하거나 네트워크 요청을 하지 않음.성능 향상: UI가 중복 업데이트되지 않아 성능이 향상됨.불필요한 구독 제거: 데이터가 바뀌지 않았을 때는 방출하지 않..

RxSwift 2024.12.11

Swift + RxSwift | UITableView/ UICollectionView 에서 작동하는 델리게이트 메서드 willDisplayCell

willDisplayCell  UITableView 또는 UICollectionView에서 셀(Cell)이 화면에 표시되기 직전에 호출되는 delegate 메서드입니다. 이 메서드는 셀이 사용자에게 보이기 전에 레이아웃을 미리 구성하거나 애니메이션을 추가하는 경우에 자주 사용됩니다. willDisplayCell의 동작 방식언제 호출되나요?사용자가 스크롤하여 새로운 셀이 화면에 표시되기 직전에 호출됩니다.어디에 사용되나요?UITableViewDelegate의 tableView(_:willDisplay:forRowAt:) 메서드UICollectionViewDelegate의 collectionView(_:willDisplay:forItemAt:) 메서드주로 어떤 작업에 사용되나요?셀 애니메이션: 셀이 화면에 ..

Swift 2024.12.11

UIKit | iOS 13 Deprecated - UIApplication.shared.keyWindow

iOS 13부터 멀티 씬(Multi Scene) 지원이 추가되었기 때문에, keyWindow는 더 이상 정확한 현재 화면의 윈도우를 반환하지 않습니다. 이 코드에서는 ProgressHUD를 현재 활성화된 윈도우에 추가하기 위해 UIApplication.shared.keyWindow를 사용했습니다.해결 방법대신 다음과 같은 코드로 변경해야 합니다. if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, let keyWindow = windowScene.windows.first(where: { $0.isKeyWindow }) { superView = keyWindow} 변경 사항 요약UIApplication..

UIKit 2024.12.10

Kotlin | LiveData List Type Add ( LiveData List형 추가)

var examList = MutableLiveData>()fun addAuthMachine(vo: ExamVo) { val currentList = examList.value?.toMutableList() ?: mutableListOf() currentList.add(vo) examList.value = currentList} LiveData는 Android에서 UI 관련 데이터를 관찰(Observable)할 수 있는 라이프사이클-aware 데이터를 관리하는 컴포넌트입니다. LiveData는 ViewModel과 함께 사용하는 경우가 많으며, 주로 UI 데이터를 저장하고 UI 상태를 관리하는 데 사용됩니다.주요 특징:라이프사이클 인식(Lifecycle-aware):LiveD..

Kotlin 2024.12.10

Android Studio + Kotlin | 옛 프로젝트에서 프로필 이미지 변경 안되는 현상

AndroidManifest.xml 기존에 추가되어있던 것들 외에 이 두가지를 추가해주었습니다  그리고 Provider 부분에서tools:replace = "android:authorities"> 를 제거해주었습니다 getExternalStorage() 메서드가 Android 10 이상에서 Deprecated되었기 때문에,대신 getExternalFilesDir()을 사용하여 앱 전용 디렉토리 경로를 활용해야 합니다. fun getExternalStorage(): String { return context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)?.absolutePath + "/exam"} 이렇게 적용한 후 확인하면 프로필 이미지 사진을 찍은 후..

Android Studio 2024.12.09

iOS/Swift/UIKit | Storyboard 및 UIView - UILabel 글자 크기 자동 변경 Autoshrink

iOS에서 autoshrink는 주로 UILabel, UITextView, 또는 UIButton과 같은 텍스트 기반 UI 요소에 사용되는 속성으로, 텍스트가 해당 뷰의 크기나 제한된 공간을 넘을 경우 자동으로 텍스트 크기를 축소하여 공간에 맞게 표시되도록 합니다. 이를 통해 레이아웃의 유동성 있는 텍스트 처리가 가능해집니다.주요 속성Minimum Font Size (최소 폰트 크기):autoshrink가 작동할 때 텍스트가 줄어들 수 있는 최소 폰트 크기를 설정합니다.이 속성은 텍스트 크기가 너무 작아지는 것을 방지하고, 지정된 최소 크기 이하로 줄어들지 않도록 합니다.Adjusts Font Size To Fit Width (너비에 맞게 폰트 크기 조정):UILabel 또는 UIButton의 adjust..

UIKit 2024.12.06

Kotlin | Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will

Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on cohttp://m.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored MyGlide.java 파일을 하나 만들어준다 import com.bumptech.glide.annotation.GlideModule;import com.bumptech.glide.module.AppGlideModule;@G..

Kotlin 2024.12.06

RxSwift | RxSwfit 배우는 이유 + 사용하는 이유

회사 프로젝트는 RxSwfit로 이루어져 있다 그래서 현재 감으로 코드를 작성하고 있는 중이다(다행히 안되거나 그러진 않지만)구조적으로 더 잘 파악하고 메모리 누수가 이루어 지지 않도록 하루에 하나씩 공부하기 위해서 RxSwfit를 정리하고자 한다 https://github.com/ReactiveX/RxSwift GitHub - ReactiveX/RxSwift: Reactive Programming in SwiftReactive Programming in Swift. Contribute to ReactiveX/RxSwift development by creating an account on GitHub.github.com 여기서 보고 차차 정리하는걸로.. 요즘 다들 SwiftUI쓰는데..내년 5월달에 재..

RxSwift 2024.12.04

[Xcode] xcodeproj vs xcworkspace

Xcode에서 프로젝트를 관리할 때, .xcodeproj와 .xcworkspace 파일은 중요한 역할을 합니다. 이 두 파일의 차이를 이해하는 것은 여러 프로젝트를 효율적으로 관리하고, 의도한 대로 빌드를 수행하며, 팀 작업을 원활하게 하는 데 큰 도움이 됩니다. 아래에서 .xcodeproj와 .xcworkspace의 차이점과 사용 용도를 설명하겠습니다..xcodeproj 파일이란?1. 기본 Xcode 프로젝트 파일.xcodeproj 파일은 Xcode 프로젝트의 기본 파일입니다. Xcode에서 프로젝트를 처음 생성하면 이 파일이 자동으로 생성됩니다. 이 파일은 프로젝트의 구조, 빌드 설정, 타겟, 파일 간의 관계 등을 정의하고 있습니다.2. 단일 프로젝트 환경에서 사용.xcodeproj는 보통 하나의 독..

Xcode Tips 2024.12.03
반응형