전체 글
-
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..
-
Google Maps SDK for iOS 정리iOS/Swift 2022. 1. 22. 21:03
안녕하세요!! 이번엔 Swift에서 Google Maps SDK를 사용할 때 어떤 기능이 있는지 정리했습니다. 이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽 지도를 사용하는 앱을 출시하기 위해 어떤 지도를 사용할지 고민했다. 국내에서만 사용할 것이라면 카카오나 네이버의 지도를 사용하면 되지만, 내가 생각하고 있는 앱은 해외 여행까지 기록해야 하기에 Apple Map이나 Google Map중에 하나를 선택해야했다. Apple Map이 해외에선 좋지만 국내에서의 평은 그다지 좋지 않기에 국내, 해외 모두 평이 무난한 Google Map을 사용하여 앱을 만들기로 했다. 이 페이지는 앱을 만들기 위해 내가 사용할 레퍼런스들을 정리한 것이다. 지도 내 위치 버튼 mapView.settings.myLo..
-
앱에 데이터 백업, 복구 기능 추가하기(Swift)iOS/Swift 2022. 1. 22. 21:00
안녕하세요!! 이번엔 Swift에서 앱에 데이터 백업, 복구 기능을 어떻게 추가하는지 정리했습니다. 이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽 백업기능이 왜 필요해?? 사용자가 앱을 이용할 때, 사용자의 데이터는 iOS의 Container System에 의해 그 앱의 샌드박스 내에서만 이용 가능하다. 즉, 사용자가 다른 사람들과 데이터를 공유할 수 없고, 만약 어떤 이유로든 앱을 삭제해야 할 경우에는 데이터가 같이 사라져 버리는 문제가 있다. 따라서, 사용자가 원할 때 데이터를 외부로 백업할 수 있는 기능이 필요하다. iCloud를 이용한 백업, Google Drive를 이용한 백업, 파일 앱을 이용한 백업 등 백업 기능을 구현하기 위한 방법이 많지만, 파일 앱을 이용한 백업으로 백업 기..
-
Realm-cocoa 라이브러리 활용해보기(Swift)iOS/Swift 2022. 1. 22. 20:50
안녕하세요!! 이번엔 Swift에서 realm을 사용하는 방법에 대해서 정리했습니다. 이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽 Realm이란? 오픈소스 데이터베이스 관리 시스템(DBMS)으로, 모바일 환경을 주 타겟으로 잡은 데이터베이스 라이브러리다. 왜 써야 하는데?? 서버와 통신하지 않고 데이터를 저장해둘 필요가 있을 때, 그동안은 UserDefaults를 이용해왔다. UserDefaults에는 사용자 기본 설정같은 가벼운 데이터만 저장하고 많은 양의 데이터를 저장하기엔 적합하지 않다는 말들을 들어왔다. 왜 그런지 검색을 해보면 UserDefaults에 담을 수 있는 용량에 제한이 있기도 하고, 대용량의 데이터를 처리할 때에는 UserDefaults가 다른 데이터베이스들보다 느려서 ..