Async-Swift / AsyncSwift

28 stars 4 forks source link

[ProfileView] 구조에 대한 설명 #62

Closed insub4067 closed 2 years ago

insub4067 commented 2 years ago

탭의 목적

유저가 프로필을 등록하고 생성된 QR을 통해 다른 유저의 QR을 스캔해 서로 프로필을 공유하는 일종의 소셜 기능을 합니다.

View

DB 및 데이터 저장

Firebase Firestore 을 이용하고 있습니다. FirebaseManager (singleton) 을 통해 CRUD 을 실행합니다. 유저의 프로필ID는 키체인에 저장되며 저장된 ID를 통해 본인의 도규먼트에 접근하며 도규먼트에 내가 저장한 유저들의 ID를 String Array로 저장합니다.

QR 기능

CIFilter.qrCodeGenerator() 를 통해 UIImage 로 생성된 QR을 보여주게 됩니다 QR에는 유저를 친구추가할수 있는 데이터를 담고 있습니다.

QR Scanner

패키지 레퍼지토리

CodeScanner 를 사용해서 스캔합니다. 스캔을 통해 받아온 데이터를 형식 검사 후 형식이 맞다면 친구추가를 진행합니다.

URL Validation

유저는 본인의 링크을 공유할수 있으며 입력받은 URL은 UIApplication.shared.canOpenURL() 를 통해 검사하여 URL만 입력 받고 있습니다.

친구 추가 기능

스캔을 통해 등록을 시도하는 데이터에 대해 이미 등록이 되어있다면 중복 등록되지 않도록 검사를 통해 막고 있습니다.

unnnyong commented 2 years ago

PR 본문과 중복되는 내용이여서 Close 하였습니다