iOS
-
SwiftUI List Background Color(iOS 16.0+)iOS/Swift 2022. 9. 29. 10:52
안녕하세요, 오늘은 SwiftUI에서 List의 Background Color를 설정하는 방법에 대해서 알아보겠습니다. 바로 시작하겠습니다 🐶 iOS 16부터 SwiftUI의 List는 UICollectionView로 지원된다. 그래서 보통 View의 이니셜라이져에서 UICollectionView, UICollectionViewCell의 Appearance().backgroundColor를 Clear로 바꿔주게 되는데, 바꿔봐도 계속 systemBackground 색상이 남아있게 된다. List는 뷰를 다시 그리면서 백그라운드를 재설정하기 때문이었다. 최소 지원 버전이 iOS 16이면 새로 생긴 수정자인 .scrollContentBackground를 사용할 수 있겠지만, 현재 프로젝트는 최소 지원 버전 ..
-
SwiftUI 제스처가 작동하지 않을 때iOS/Swift 2022. 7. 10. 19:29
안녕하세요! 오늘은 SwiftUI에서 onTapGesture등 제스처가 작동하지 않을 때 처리하는 방법에 대해서 알아보겠습니다. 바로 시작하겠습니다 🐶 이번에 SwiftUI로 프로젝트를 진행하던 중, 투명한 백그라운드를 가진 뷰에 탭 제스처를 추가했지만, 제스처가 작동하지 않았다. 뷰의 영역이 잘못 설정 되어있는 줄 알고 백그라운드 색깔을 바꿔줬지만, 뷰의 영역이 제대로 잡혀있었고, 백그라운드 색을 바꿔줬을 때에는 제대로 제스처가 작동했다. 관련된 내용을 찾아보던 중 해결법을 알아냈다. SwiftUI에서 제스처를 사용하려면 콘텐츠가 불투명 해야한다. 즉, 백그라운드 컬러를 clear로 설정했기 때문에 발생한 문제였다. Rectangle() .foregroundColor(.blue) .border(Colo..
-
iOS AmplitudeiOS 2022. 6. 23. 11:34
안녕하세요! 오늘은 Amplitude에 대해서 정리해보았습니다. 바로 시작하겠습니다 🐶 Amplitude란? Amplitude는 프로덕트 분석 툴로, 웹과 앱에 걸쳐 사용자들이 수행한 이벤트와 이벤트의 프로퍼티, 그리고 유저 프로퍼티의 통합 수집 기능을 제공한다. 만약 Tunes라는 모바일 앱이 있다고 했을 때, 다음과 같은 화면에서 사용자들은 노래를 실행하거나, 스킵하거나, 무작위 곡을 틀 수 있고, 공유도 할 수 있다. Amplitude를 사용하면 사용자들이 실행한 이런 행동을 추적할 수 있게 된다. 기본적으로 이벤트 프로퍼티와 유저 프로퍼티를 설정할 수 있는데, 이벤트 프로퍼티에는 어떤 이벤트인지, 그 이벤트의 속성은 무엇인지 설정해줄 수 있다. 유저 프로퍼티는 IDFV 아이디를 기반으로 사용자를 ..
-
SOLID in SwiftiOS/Wiki 2022. 4. 4. 01:44
안녕하세요! 오늘은 객체지향의 다섯가지 원칙인 SOLID에 대해서 공부해보겠습니다. 바로 시작하겠습니다 🐶 SOLID 원칙이란? SOLID란 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 각 원칙의 맨 앞글자만 딴 원칙입니다. 1. Single Responsibility Principle(단일 책임 원칙) 2. Open/Closed Principle(개방 폐쇄 원칙) 3. Liskov Substitution Principle(리스코프 치환 법칙) 4. Interface Segregation Principle(인터페이스 분리 원칙) 5. Dependency Inversion Principle(의존성 역전 원칙) 각 원칙을 따르지 않아도 프로그래밍은 가능하지만, 시간이 지나도 유지보수와 확장이 쉬운 ..
-
POP(Protocol-Oriented Programming) in Swift (1/2)iOS/Wiki 2022. 3. 28. 20:31
안녕하세요! 오늘은 WWDC2015에서 발표했던 POP에 대해서 알아보는 시간을 갖도록 하겠습니다. 바로 시작하겠습니다🐶 먼저, 영상의 소개에는 이런 문구가 적혀있다. At the heart of Swift's design are two incredibly powerful ideas: protocol-oriented programming and first class value semantics. Each of these concepts benefit predictability, performance, and productivity, but together they can change the way we think about programming. Find out how you can apply these..
-
ReactorKit 사용기iOS/Wiki 2022. 3. 5. 01:50
안녕하세요 🐶 오늘은 ReactorKit을 사용하는 방법에 대해서 정리해보려고 합니다. 바로 시작하겠습니다. 왜 ReactorKit을 사용하게 되었는지 MVVM 패턴 + Input Output을 활용하면서 느낀 점이 있었다. Swift에서 MVVM 패턴으로 작성된 코드를 살펴보게 되면, 굉장히 많은 방법으로 구현되어있음을 느낄 수 있었다. 최근 작성된 코드들을 살펴보면, Input과 Output을 활용하여 입력, 출력으로 추상화하는 방법을 많이 사용하는 것 같은데, 이 Input과 Output을 활용하는 방법에도 func transform(input: Input) -> Output { } 이렇게 함수를 만들어서 활용하는 방법과, 뷰 모델 클래스 안에 Input, Output를 인스턴스로 만든 뒤 이니셜라..
-
(RxSwift)API 호출 시점이 많을 때, 효율적으로 관리하기iOS/Swift 2022. 2. 23. 17:59
안녕하세요! 프로젝트를 하다보면 API를 여러 시점에서 호출해야 하는 상황이 생기는데요, 이런 상황을 어떻게 효율적으로 관리할 수 있을지 정리해보았습니다. 더 좋은 방법이 있다면 피드백 부탁드립니다!! 문제점 프로젝트를 하면서, 서버에 요청하여 유저 목록을 가져와야하는데, 호출해야 하는 시점이 매우 다양하다. 화면 진입 시 주변 사람 / 받은 요청 탭을 전환 할 때 empty view에서 새로고침 버튼을 눌렀을 때 카드뷰를 아래로 당겨서 새로고침 할 때 카드뷰의 상세 화면을 닫았을 경우 앱이 백그라운드 → 포그라운드 상태가 됐을 때, 앱의 화면이 새싹 찾기 화면일 경우 여기서 또 고려해야 할 점이, 호출 시점이 많아 너무 과도하게 호출될 수 있어 마지막 호출이 일어난 지 5초가 지나지 않았다면 호출하지 ..
-
UICollectionView Compositional LayoutiOS/Swift 2022. 2. 17. 00:48
안녕하세요!! 오늘은 UIColletionView의 Layout중 하나인 Compositional Layout에 대해서 정리해보았습니다. 바로 시작하겠습니다 🐶 UICollectionView CompositionalLayout이란? iOS 13.0 이상부터 사용 가능한 컬렉션 뷰 레이아웃의 한 종류로, UICollectionViewLayout을 상속받아 만들어져있다. CollectionView의 레이아웃을 쉽게 커스터마이징 할 수 있는 옵션을 제공해준다. 이름처럼 여러가지 컴포넌트들로 이루어져 있는데, 다음과 같이 섹션, 그룹, 아이템으로 나누어져 있다. 왜 사용하게 되었나 기존에 사용하던 Flowlayout의 한계를 느껴서 사용하게 됐다. 다음과 같이 태그 컬렉션 뷰를 구현해야 했는데, 처음에는 UIC..