-
Notifications
You must be signed in to change notification settings - Fork 0
[Feature] 포스트 공유하기 로직 및 화면연동 구현했습니다. | Universal link | AppsFlyer | 도전기 #246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…le 내부 델리게이트 타입 변경
…tView's delegate 담당하도록 z 코드 추가
…Alert(withTitle:message:) 구현
…nkObj에서 event가져오는 key 로직 변경
…뷰에게 적용하는 로직, 에러가 날 경우 알림창과 함께 뒤로가기 로직 구현.
…이렇케 콤마 삽입되어 문자열로 변환되는거 수정
…업해서 시간이 오 래결렸는데 간단하게 딕셔너리로 이미지만 캐싱하도록 반영해서 초기 로드 속도 개선.
letusHyun
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다 !
| self?.navigationInfo.send() | ||
| self?.loggedInUserUseCaseHandler.send() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 publisher는 어디에서 구독을 해주나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 퍼블리셔들은 transfrom(_:) 의 Publishers.MergeMany의 Output Publisher에 머지됩니다 : )
🚨 Your checklist for this pull request
Make sure you are requesting to pull a topic/feature/bugfix branch (right side). Don't request your master!
Check the commit's or even all commits' message styles matches our requested structure.
📸 [ 스크린샷(선택) ]
공유하기 로직앱이 백그라운드 상태일때 링크클릭실행되지 않은 앱일때 링크 클릭유효하지 않은 포스트일때📌 [ 요약 ]
Closed [피드] 여행 후기 홈 → 썸네일 공유 화면 #75
포스트 공유하기 로직을 구현했습니다.
appsFlyer 라이브러리 추가했습니다.
미리보기는 포스트 cell을 이미지화 했었는데, 이 방법보다 앱을 대표하는 이미지로 미리보기하도록 구현하는게 좋을것 같아서 변경했습니다. 이미지 수정 가능!!
BasePostViewDelegator를 구현함으로 5개의 클래스에서 각각 동일한 델리게이트 로직들을 준수하고 감싸서 delegate변수를 호출해야하는 로직 간소화
✨ [ 작업 내용 ]
[ universal link ]
유니버셜 링크(onelink)를 클릭할 경우의 상황은 다음과 같습니다.
이 모든 경우에 대한 처리를 구현했습니다.
one link를 지원하는 AppsFlyer 라이브러리를 활용하기로한 이유는 다음과 같습니다
유니버셜 링크를 사파리에서 복사 후 붙여넣기 할 때 시스템은 앱으로 이동하는 것보다, 사용자의 경험을 위해 웹에서 검색 결과를 보여주도록 설계했다고 합니다.
[ AppsFlyer ]
AppsFlyer를 하게될 때 AASA를 앱스플라이어에서 추가하고 유니버셜 링크를 지원해줍니다(도메인이 없어도 지원해줍니다). 이를 통해 xcode에서도 Associated Domains에 sub domain으로 앱스플라이어를 통해 생성한 도메인을 입력하면 됩니다: )
iOS13부터 SceneDelegate에서 시스템에서 특정 url이나 scheme일때 앱을 열수 있는 델리게이트 함수들이 호출됩니다. 앱스플라이어는 이런 로직들을 AppDelegate에서 처리하도록 담당했고, 그러기에 앱 델리게이트에서 sceneDeleagte에서 생성한 AppCoordinator인스턴스를 가져올 필요가 있어 추가 선언했습니다.
그 예로 위 이미지처럼, 유니버셜 링크에 의해 앱이 열릴때 iOS 13에서는 함수 호출스택보면 SceneDelegate에서 scene(_:openURLContexts:) 델리게이트가 시스템에 의해 호출되지만, 이를 앱스플라이어에서 appDelegate로 넘겨서 AppDelegate에서 처리하는 것을 알 수 있습니다. iOS13 이전과 동일하게 AppDelegate에서 처리되도록 앱스플라이어에서 의도한것 같다는 생각이 듭니다🤩.
[ 도전기 ]
특히 이 포스트 링크에서 위와 같은 결과가 나와서. 당연히 Activity관련 라이브러리를 활용하면 되는줄 알았는데 아니었습니다: ( 많이 해맸었는데..
카카오톡의 경우 카카오톡에서 제공하는 공유 기능과 템플릿을 정해야 합니다. 아니면 url에서 Open Graph의 태그들을 작성해주어야 합니다.😅😅
저희 서비스는 웹이 없기에, appsflyer를 사용하기로 했습니다. 유니버셜 링크는 이 링크가 associated domain인지 시스템에서 확인 후 해당 앱을 실행해주거나 앱이 없을 경우 리다이렉션으로 앱스토어를 향하게 합니다. 위에서 나오는 사진들 처럼 링크 아래 부가적인 이미지 정보들까지 관여하지는 않습니다😂
[느낀점]
[ TODO ]
📚 [레퍼런스 (또는 새로 알게 된 내용) 혹은 궁금한 사항]
[ 액티비티 뷰 컨트롤러 ]
[ link ]
Support Universal Links 공식문서 링크 바로가기
Supporting associated domains 공식문서 링크 바로가기
Supporting universal links in your app 공식문서 링크 바로가기
유니버셜 링크, 딥링크 이게다뭐야? 포스트 링크 바로가기
앱스플라이어 iOS 공식문서 오버뷰 바로가기
[ Open graph ]
[ ETC ]