iOS/Swift
-
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..
-
(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..
-
RxDataSources + 컬렉션 뷰(Swift)iOS/Swift 2022. 2. 16. 04:32
안녕하세요! 오늘은 RxDataSources를 CollectionView와 함께 사용하는 방법에 대해서 정리해보았습니다. 바로 시작하겠습니다 🐶 RxDataSources란? 테이블뷰와 컬렉션뷰의 DataSource의 내용을 좀 더 쉽게 관리하기 위한 라이브러리 왜 쓰게 되었나.... 프로젝트를 하면서 다음과 같은 UI를 만들어야했다. 여기서, [내가 하고 싶은] 섹션에 추가되는 버튼은 서치바를 통해서 입력할 수도 있고, [지금 주변에는] 섹션에 있는 버튼을 클릭하는 것으로 추가할 수도 있었다. 어떻게 이 UI를 구현할지 팀원들과 회의를 가졌다. 그렇게 나왔던 결론이 보통 하나의 섹션에 바인딩을 하는 것이라면 RxCocoa에서 제공해주는 방법을 사용해도 되겠지만, 섹션이 여러개이고, 테이블뷰와 컬렉션뷰의 ..
-
Firebase Auth 적용하기(전화번호 인증, Swift)iOS/Swift 2022. 2. 4. 16:07
안녕하세요!! 이번엔 Swift에서 Firebase Auth를 적용하는 방법에 대해서 정리했습니다. 이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽 Firebase Auth란? Firebase Auth는 회원가입, 로그인 등 인증과 관련된 서비스로 핸드폰 번호 인증 방식, Email / Password 인증 방식, OAuth 2.0기반의 SNS(페이스북, 카카오톡, 네이버, 트위터 등) 인증 방식 등으로 쉽게 회원가입 및 로그인을 가능하게 해주는 서비스다. 왜 써야할까? 유저 정보같은 민감한 데이터들을 내 DB에 저장해두는 것은 보안에 취약할 것 같다는 생각이 든다. 구글이라면 그래도 보안적인 측면에서 더 안전하지않을까?? 데이터가 구글에 종속되는 것이 싫다면 직접 구현하거나 다른 방법을 찾아..
-
앱에 Firebase Crashlytics 추가(Swift)iOS/Swift 2022. 1. 27. 18:42
안녕하세요!! 이번엔 Swift의 PHPickerViewController에서 이미지를 가져오는 방법에 대해서 정리했습니다. 이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽 먼저 Crashlytics를 추가할 프로젝트의 대쉬보드로 들어가서 Crashlytics 사용설정을 눌러준다. 사용설정을 누르면 이렇게 수신대기 모드로 들어가게 된다. 프로젝트에 Firebase SDK를 설치해준 뒤, AppDelegate의 didFinishLaunchingWithOptions에서 Firebase를 인스턴스화 시켜주어야 한다. FirebaseApp.configure() 그리고 비정상 종료 보고서를 생성하려면 Crashlytics 프로젝트에 디버그 심볼(dSYM) 파일이 필요하다. 프로젝트 → TARGETS →..
-
Swift PHPicker로 여러 이미지를 가져오기iOS/Swift 2022. 1. 22. 21:07
안녕하세요!! 이번엔 Swift의 PHPickerViewController에서 이미지를 가져오는 방법에 대해서 정리했습니다. 이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽 이번에 앱을 만들면서 구현해야 하는 기능 중에 여러장의 사진을 선택해서 업로드 할 수 있는 기능을 넣어야했다. 맨 처음에는 단순하게 ImagePicker로 구현하면 되겠지~ 했는데 ImagePicker에는 여러장을 한번에 선택할 수 있는 기능이 존재하지 않았다(...) iOS 14 이상에서는 새로 나온 PHPicker를 적용할 수 있지만, Mappin 앱의 최소 지원 버젼이 iOS 13이라 라이브러리를 더 찾아봐야 할 것 같다. iOS 14이상은 PHPicker를 사용할 수 있도록 코드를 작성해봤다. @available(i..