Conversation
- mypage_profile: Kakao FeedTemplate으로 프로필 공유 (peeroreum://profile/{nickname})
- MainActivity: getInitialNickname cold start / onDeepLinkProfile warm start 처리
- AndroidManifest: peeroreum://profile intent filter 추가
- main: extractNickname, onDeepLinkProfile 핸들러 / Android uriLinkStream 중복 제거
- pending_deep_link: profileNickname 필드 추가
- bottomNaviBar: profileNickname 딥링크 라우팅 추가
- wedu_room_info_sheet: showModalBottomSheet → Get.bottomSheet() 교체 (GetX Navigator 초기화 중 동일 GlobalKey<NavigatorState>가 Navigator와 _FocusInheritedScope에 중복 등록되는 문제 방지) - bottomNaviBar: wedu roomId 처리에 300ms delay 추가 - nested Scaffold 제거: mypage.dart, wedu_detail_screen.dart, mypage_profile.dart
- WeduRoomInfoSheet.onShare 콜백 타입을 VoidCallback → void Function(Rect?)으로 변경 - 공유 버튼을 Builder로 감싸 RenderBox 위치를 계산, 콜백에 Rect 전달 - wedu_home, wedu_search_result: sharePositionOrigin: shareRect 추가 - mypage_profile: GlobalKey(_shareButtonKey)로 공유 버튼 위치 추적 후 sharePositionOrigin 전달 - iOS에서 카카오톡 미설치 시 fallback Share.share() 호출 시 PlatformException 해결
- changeDetailWedu() 방장/일반 참여자 메뉴 모두에 공유하기 항목 추가 - 카카오톡 설치 시 FeedTemplate 공유, 미설치 시 Share.share() fallback - iOS sharePositionOrigin: dots 버튼(_dotsButtonKey)을 앵커로 사용 - 공유하기 탭 시 바텀시트 자동 닫힘(Get.back()) 후 공유 실행 - 일반 참여자 메뉴: GestureDetector → Column+TextButton으로 리팩터
- SafeArea 제거 후 명시적 bottom 패딩 적용 - 공식: viewPadding.bottom > 20 ? viewPadding.bottom : 20 - iOS 홈 인디케이터(~34pt): viewPadding 값 사용 - Android 제스처 내비게이션(0): 20px 고정 - Android 3버튼 내비게이션(~48dp): viewPadding 값 사용
- shareDefault → shareCustom (templateId: 102956) - 같이방 상세에서 invitationUrl fetch 추가 - templateArgs: RoomName, ImageUrl(초대장 이미지), Link(딥링크) - wedu_detail_screen.dart, wedu_home.dart 동일 적용
- shareDefault → shareCustom (templateId: 102993)
- templateArgs: UserName
- 딥링크: 카카오 콘솔 템플릿에서 nickname=${UserName} 파라미터로 처리
- AppDelegate에 kakaoa://kakaolink 스킴 핸들러 추가 - 웜 스타트: application(_:open:options:)에서 MethodChannel로 전달 - 콜드 스타트: launchOptions URL 파싱 후 getInitialRoomId/getInitialNickname으로 응답 - main.dart: iOS 콜드 스타트 getInitialLink() 호출 추가
- AppDelegate: super.application() 호출 후 MethodChannel 설정하도록 순서 수정 (window 초기화 보장) - AppDelegate: FlutterViewController 캐스팅을 force cast에서 optional cast로 변경 (크래시 방지) - main.dart: iOS getInitialLink() 제거 — AppDelegate MethodChannel이 cold start 처리하므로 중복 방지 - main.dart: uriLinkStream에서 kakaoa:// 스킴 필터링 — AppDelegate MethodChannel과 중복 처리 방지
- fetchSocialLogin: http.get → http.post, email을 query param 대신 JSON body로 전송
- ApiClient.dart 신규 추가: Dio 싱글톤, 자동 토큰 갱신 인터셉터
(401 응답 시 /token/reissue 호출 후 원래 요청 재시도)
- 기존 Authorization 헤더가 있을 경우 인터셉터가 덮어쓰지 않도록 처리
(비밀번호 재설정 등 특수 토큰 사용 케이스 대응)
- main.dart에 ApiClient().init() 초기화 추가
- 소셜 로그인 GET → POST 변경, 응답에서 accessToken/refreshToken 등 정상 저장
- 아래 전체 화면의 직접 Dio/http 호출을 ApiClient()로 일괄 전환:
iedu: iedu_create, iedu_home, iedu_detail, iedu_in, iedu_search_result
wedu: wedu_home, wedu_create_screen, wedu_create_invitation, wedu_modify_screen,
wedu_detail_screen, wedu_detail_calendar, wedu_in, wedu_search_result_screen,
wedu_room_info_sheet, management_checklist_screen
mypage: mypage, mypage_account, mypage_acount_ps, mypage_profile, mypage_scrap,
follower_api, following_api
ranking: ranking_api
sign: signin_screen, signin_email_screen, signup_grade/subject/school/nickname/email,
password_change (email, validate, new_password)
기타: NotificationApi, bottomNaviBar, alert_controller, VisitCount
- 카카오: loginWithKakaoTalk/Account() 반환 OAuthToken.accessToken 서버 전송 - 구글: GoogleSignInAuthentication.accessToken 서버 전송 - fetchSocialLogin 시그니처 변경: email → (provider, token, emailForSignup) - 404(신규 가입) 케이스는 SDK에서 가져온 이메일 그대로 사용 - Apple Sign-In 별도 구현 필요로 미지원 처리
🤖 Claude Code Review🤖 Claude Code Review🔴 버그/보안 이슈
🟡 개선 권장 사항
🟢 잘된 점
우선순위 요약 테이블
이 PR은 자동화된 코드 리뷰 시스템과 Firebase 통합을 추가하는 의미있는 변경사항입니다. 다만 보안 관련 이슈들을 우선 해결하시기 바랍니다. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
resolved #443