Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
259 commits
Select commit Hold shift + click to select a range
ccb1417
style: #429 알림 컨텐츠 화면 UI 구현
dev-domo May 4, 2026
a48075a
style: #429 알림이 1개 이상인 경우 컨텐츠 화면 UI 구현
dev-domo May 4, 2026
edb3d51
style: #429 알림이 없는 경우 컨텐츠 화면 UI 구현
dev-domo May 4, 2026
1a16065
feat: #429 알림 화면 뷰컨트롤러 구현
dev-domo May 4, 2026
e16d71b
refactor: #429 홈에서 알림 화면 이동 구현
dev-domo May 4, 2026
8eaeb44
refactor: #428 extension 적용
y-eonee May 4, 2026
1a38631
setting: #428 리퀴드글래스 미적용
y-eonee May 4, 2026
e695a05
feat: #428 댓글 입력 컴포넌트 구현
y-eonee May 4, 2026
a94efc5
chore: #428 주석 삭제
y-eonee May 4, 2026
dc914b6
feat: #431 기존 UI 변경사항 반영
juri123123 May 5, 2026
686f29f
add: #431 에셋 추가
juri123123 May 5, 2026
21caa94
feat: #431 오프보딩 quest empty view UI + 화면 전환
juri123123 May 5, 2026
767e09f
refactor: #413 task 취소 관리
juri123123 May 5, 2026
d969ebe
fix: #431 사용하지 않는 의존성 제거
juri123123 May 5, 2026
51b818a
refactor: #413 AI 응답 판단 후 로직 repository -> usecase 이동
juri123123 May 5, 2026
f8d039a
feat: #431 뷰 세부 사항 수정
juri123123 May 5, 2026
06c1875
Merge pull request #434 from 36-APPJAM-HEARTZ/feat/#431-오프보딩-플로우-변경-사…
juri123123 May 6, 2026
e36e93f
refactor: #429 알림 타입 구현 삭제
dev-domo May 6, 2026
2ce2a42
Merge pull request #433 from 36-APPJAM-HEARTZ/refactor/#413-코드리뷰-반영
juri123123 May 6, 2026
3daba6c
fix: #435 리퀴드 글래스 제거
juri123123 May 6, 2026
9b1d1f9
Merge pull request #436 from 36-APPJAM-HEARTZ/fix/#435-리퀴드-글라스-사건
juri123123 May 6, 2026
f28e1d8
chore: #429 adjusted 적용
dev-domo May 6, 2026
895e732
Merge pull request #430 from 36-APPJAM-HEARTZ/style/#429-noticeUI
dev-domo May 6, 2026
349d4ab
refactor: #428 변경된 DTO 수정
y-eonee May 7, 2026
5cb40bf
feat: #428 재사용을 위해 answer entity 수정 및 comment entity 작성
y-eonee May 7, 2026
840d3b0
refactor: #428 profile Icon String -> Image 전역으로 분리
y-eonee May 7, 2026
809f5dc
feat: #428 Textview line 수 계산 익스텐션
y-eonee May 7, 2026
55b01b1
style: #428 댓글 UI 구현
y-eonee May 7, 2026
70c5108
refactor: #428 entity 수정에 따른 configure 함수 내부 수정
y-eonee May 7, 2026
cac5977
refactor: #428 profileIcon 로직 뷰모델 내부에서 삭제
y-eonee May 7, 2026
ba83a40
feat: #428 comment Table View VC에 연결
y-eonee May 7, 2026
5755451
fix: #428 컴포넌트 재사용에 따른 UI 로직 수정
y-eonee May 7, 2026
4e56be0
style: #428 History View UI
y-eonee May 7, 2026
5a5b38f
feat: #428 scrollView, tableView 중첩을 위한 익스텐션
y-eonee May 7, 2026
5997863
feat: #428 댓글 더보기 구현
y-eonee May 8, 2026
cc361ac
feat: #438 뷰 라우팅 변경
juri123123 May 10, 2026
3e9f565
Merge pull request #439 from 36-APPJAM-HEARTZ/feat/#438-오프보딩-로직-변경사항-반영
juri123123 May 10, 2026
c4dbe52
add: #428 답글 아이콘 추가
y-eonee May 10, 2026
2da80d8
chore: #428 comment entity stub 추가
y-eonee May 10, 2026
0d248ec
feat: #428 댓글, 답글 레이아웃 분기처리 수정
y-eonee May 10, 2026
a3e1ea0
style: #428 답글 바텀시트 UI 구현
y-eonee May 10, 2026
34610bf
feat: #428 답글 뷰 모델 생성
y-eonee May 10, 2026
cd2ae9b
refactor: #428 키보드 로직 분리
y-eonee May 10, 2026
d2f185f
feat: #428 답글 기능 구현
y-eonee May 10, 2026
ee5f919
style: #428 separator 설정
y-eonee May 10, 2026
fdca78c
fix: #428 stub id 수정
y-eonee May 10, 2026
d8fa920
refactor: #428 불필요한 분기처리 삭제
y-eonee May 10, 2026
35423f3
refactor: #428 코드리뷰 반영
y-eonee May 19, 2026
f2ead4c
refactor: #441 isOnboardingCompleted를 isRegistered로 변경
y-eonee May 19, 2026
d24417a
Merge pull request #440 from 36-APPJAM-HEARTZ/style/#428-댓글-ui
y-eonee May 19, 2026
067fb0b
Merge pull request #442 from 36-APPJAM-HEARTZ/refactor/#441-유저디폴트
y-eonee May 19, 2026
6a4c564
refactor: #437 기존 파일명 및 API, 레포지토리, 인터페이스 네이밍 수정
dev-domo Jun 5, 2026
23d3ef2
feat: #437 알림 전체 조회 API 연동
dev-domo Jun 5, 2026
41ab7ec
feat: #437 홈 뷰모델에서 알림 전체 조회하도록 구현
dev-domo Jun 5, 2026
ab1284d
refactor: #437 홈 뷰모델 viewWillAppear 트리거 시 구조적 동시성 반영
dev-domo Jun 5, 2026
b1c6e97
refactor: #444 dateformatter 분리
y-eonee Jun 5, 2026
b096655
chore: #444 의존성 주입
y-eonee Jun 5, 2026
f741924
feat: #444 DTO
y-eonee Jun 5, 2026
1fb3a3f
feat: #444 공통퀘스트 API 작성
y-eonee Jun 5, 2026
9669d2e
refactor: #444 엔티티 수정
y-eonee Jun 5, 2026
4cfaed1
refactor: #444 내 답변 모아보기 관련에 username 추가
y-eonee Jun 5, 2026
0e4b147
feat: #444 공통퀘스트 v2 api 연결
y-eonee Jun 5, 2026
1a4f232
refactor: #444 mock -> 서버 값으로 수정
y-eonee Jun 5, 2026
863544a
chore: #437 프로비저닝 파일 설정
dev-domo Jun 6, 2026
a59529b
chore: #437 파라미터명 오타 수정
dev-domo Jun 6, 2026
944801b
refactor: #437 NoticesViewController 생성자에서 알람 유무 주입 삭제
dev-domo Jun 6, 2026
7907672
refactor: #437 프로토콜에 정의되지 않은 메서드들 추가
dev-domo Jun 7, 2026
1a6a86c
feat: #437 시간 차이를 계산하여 문자열 정보로 매핑하는 유스케이스 구현
dev-domo Jun 7, 2026
a21e497
refactor: #437 뷰컨트롤러 네이밍 수정 및 NotificationsViewModel 구현
dev-domo Jun 7, 2026
10e7d9c
feat: #437 NotificationType 열거형 구현
dev-domo Jun 7, 2026
8e1277e
feat: #437 NotificationListEntity stub 구현
dev-domo Jun 7, 2026
2e29eb1
refactor: #437 bind 함수 분리 및 알림 정보 구독
dev-domo Jun 7, 2026
f1b6327
chore: #437 줄바꿈 추가
dev-domo Jun 7, 2026
10207ea
refactor: #437 알림 셀 선택 시 회색으로 변하지 않도록 방지
dev-domo Jun 7, 2026
fb3554f
add: #446 리뷰어 자동 배정 yml 추가
juri123123 Jun 8, 2026
7c756dd
del: #446 yml 파일 삭제
juri123123 Jun 8, 2026
9d7b8da
add: #446 code owners 추가
juri123123 Jun 8, 2026
e45cdc7
Merge pull request #449 from 36-APPJAM-HEARTZ/setting/#446-안드따라하기
juri123123 Jun 8, 2026
5f40a43
chore: #437 주석 오타 수정
dev-domo Jun 8, 2026
78be1cd
Merge branch 'develop' into feat/#437-fetchAllNotice
dev-domo Jun 8, 2026
4cf0b31
refactor: #437 TaskGroup -> async let 방식으로 변경
dev-domo Jun 8, 2026
cf9eb09
chore: #437 오타 수정
dev-domo Jun 8, 2026
7c82b60
chore: #437 오타 수정
dev-domo Jun 8, 2026
a1ea571
feat: #444 댓글, 답글 바텀시트 구현
y-eonee Jun 9, 2026
2c18831
refactor: #444 viewModel에서 id만 반환하는 함수 추가
y-eonee Jun 9, 2026
f18357f
feat: #444 내답변 조회 v2로 수정
y-eonee Jun 9, 2026
cf3d067
feat: #444 history에서 api 호출하도록 수정
y-eonee Jun 9, 2026
62a959e
fix: #444 데이터 잘못 바인딩하고 있던 것 수정
y-eonee Jun 9, 2026
32a8609
refactor: #444 historyVC 수정에 따른 configure 함수 간소화
y-eonee Jun 9, 2026
a58e524
chore: #444 엔티티 폴더링
y-eonee Jun 9, 2026
4bf96be
refactor: #444 answerID만 configure하도록 수정
y-eonee Jun 9, 2026
24ae6cb
refactor: #444 네이밍 수정
y-eonee Jun 9, 2026
1b2aebd
refactor: #444 바텀시트 띄우기 extension 함수 추가
y-eonee Jun 9, 2026
1d119ea
fix: #444 에러 수정
y-eonee Jun 9, 2026
b998d5e
refactor: #444 코드래빗 리뷰 반영
y-eonee Jun 9, 2026
1c1c7f7
refactor: #444 userName -> userID로 변경
y-eonee Jun 9, 2026
28550aa
refactor: #444 username -> userID로 변경
y-eonee Jun 9, 2026
e903aab
fix: #444 잘못 매핑한 것 수정
y-eonee Jun 9, 2026
0d2b301
refactor: #444 viewmodel에서 entity를 가져오도록 수정
y-eonee Jun 10, 2026
33d19a8
refactor: #444 에러구문 리팩토링
y-eonee Jun 10, 2026
8847d2e
Merge pull request #452 from 36-APPJAM-HEARTZ/feat/#444-댓글api
y-eonee Jun 10, 2026
a86838e
feat: #450 알림 읽기 API 연동
dev-domo Jun 11, 2026
3414aed
setting: #450 URLScheme 추가
dev-domo Jun 17, 2026
c54b59f
chore: #450 불필요한 주석 제거
dev-domo Jun 17, 2026
1a70966
refactor: #450 stub에 실제 퀘스트 번호와 answerID 사용
dev-domo Jun 17, 2026
a58430d
refactor: #450 알림 전체 조회를 NotificationViewModel로 이동
dev-domo Jun 17, 2026
de25d55
refactor: #450 CommonQuestHistoryViewController에 뷰모델 주입
dev-domo Jun 17, 2026
f1b5dec
chore: #450 merge develop
dev-domo Jun 17, 2026
d96e4eb
chore: #450 answer 오타 수정
dev-domo Jun 18, 2026
371511a
chore: #450 중복 생성자 제거
dev-domo Jun 18, 2026
4b468c9
feat: #450 딥링크 구현
dev-domo Jun 18, 2026
b2eb47c
refactor: #450 현재 퀘스트 번호에 맞는 퀘스트 모달 띄우기
dev-domo Jun 18, 2026
ebd03d6
refactor: #450 에러 케이스 추가
dev-domo Jun 18, 2026
7b0c7d2
refactor: #450 controllers 접근제어자 수정
dev-domo Jun 18, 2026
a8179ad
refactor: #450 ByeBooTabBar 생성 메서드 구현
dev-domo Jun 18, 2026
0f13f8a
refactor: #450 코디네이터 재정의
dev-domo Jun 19, 2026
ace3163
refactor: #450 알림 읽기 API 호출 로직 수정
dev-domo Jun 19, 2026
1f187c9
chore: #450 불필요한 줄바꿈 제거
dev-domo Jun 19, 2026
a20c86d
refactor: #450 UINavigationController를 찾는 메서드 분리
dev-domo Jun 19, 2026
27fe4d1
refactor: #437 홈 뷰모델에서 알림 전체 조회 API 호출 로직 삭제
dev-domo Jun 19, 2026
e505dbd
feat: #437 읽지 앍은 알림 조회 API 관련 의존성 주입
dev-domo Jun 19, 2026
58b5c94
feat: #450 읽지 앍은 알림 조회 - Presentation 영역 구현
dev-domo Jun 19, 2026
3ee2f63
feat: #450 읽지 앍은 알림 조회 - Domain 영역 구현
dev-domo Jun 19, 2026
481c0b8
feat: #450 읽지 앍은 알림 조회 - Data 영역 구현
dev-domo Jun 19, 2026
a62c0a6
refactor: #437 알림 전체 조회 로직을 NotificationViewModel로 이동
dev-domo Jun 19, 2026
a6dd04d
refactor: #437 NotificationsViewModel 생성 시 FormatElaspedTimeUseCase 주입
dev-domo Jun 19, 2026
412df3f
Merge branch 'develop' into feat/#437-fetchAllNotice
dev-domo Jun 20, 2026
b792d9d
fix: #437 DTO 필드명 수정
dev-domo Jun 20, 2026
d0bc5e3
Merge pull request #445 from 36-APPJAM-HEARTZ/feat/#437-fetchAllNotice
dev-domo Jun 20, 2026
8d53420
chore: #450 merge develop 브랜치
dev-domo Jun 20, 2026
36b8954
fix: #450 switch-case문 에러 해결
dev-domo Jun 20, 2026
82ef944
refactor: #450 readNotificationUseCase 추가
dev-domo Jun 20, 2026
64b64ba
chore: #450 실제 알림 시간 삽입
dev-domo Jun 20, 2026
8505cf6
refactor: #450 알림 읽기 여부에 따른 NoticeCardCell 배경색 수정
dev-domo Jun 20, 2026
d1fb90d
refactor: #450 QuestDeepLinkCoordinator 프로토콜을 추가하여 코디네이터 재설계
dev-domo Jun 20, 2026
14ea370
refactor: #450 destination 메서드를 DeepLinkParser -> DeepLinkHost로 이동
dev-domo Jun 20, 2026
2a4f90f
refactor: #450 구독 결과 변수명 및 메서드명 수정
dev-domo Jun 20, 2026
7d23dcf
refactor: #450 뷰 생명주기에 따라 selectedIndex 관리
dev-domo Jun 20, 2026
b884938
refactor: #450 pendingQuestNumber를 메서드를 통해서만 변경 가능하도록 수정
dev-domo Jun 20, 2026
680538a
refactor: #450 알림 읽기 API를 호출한 결과를 활용하도록 수정
dev-domo Jun 20, 2026
1308cba
refactor: #450 이미 읽은 알림이라면 API를 호출하지 않도록 수정
dev-domo Jun 20, 2026
0193330
chore: #450 유스케이스 중복 등록 제거
dev-domo Jun 20, 2026
847213b
refactor: #450 index 유효성 검사
dev-domo Jun 20, 2026
813b795
refactor: #450 landingURL 검증 로직 강화
dev-domo Jun 20, 2026
04a40aa
refactor: #450 NotificationsViewModel에서 index 검증 로직 추가
dev-domo Jun 20, 2026
7609ff4
refactor: #340 상위 클래스 viewWillDisAppear 호출
dev-domo Jun 20, 2026
0f3fb7a
Revert "refactor: #340 상위 클래스 viewWillDisAppear 호출"
dev-domo Jun 20, 2026
c987add
refactor: #450 viewWillDisappear 메서드 호출 추가
dev-domo Jun 20, 2026
c517ad0
chore: #450 NotificationViewModel 중복 등록 제거
dev-domo Jun 20, 2026
c395e37
refactor: #450 stub이 아닌 실제 API 호출 결과를 활용하도록 수정
dev-domo Jun 23, 2026
3a38c72
refactor: #450 알림 터치 시 API 호출에 이어 handleNotification 메서드도 호출되도록 수정
dev-domo Jun 23, 2026
34d39e9
refactor: #450 접근제어자 관리
dev-domo Jun 23, 2026
c409d4a
setting: #450 UIDesignRequiresCompatibility 설정
dev-domo Jun 23, 2026
4b5df55
Merge pull request #458 from 36-APPJAM-HEARTZ/feat/#450-readNotification
dev-domo Jun 23, 2026
d9ed373
feat: #453 공통퀘스트 메인 화면 공감 API 연결
y-eonee Jun 10, 2026
13831ce
chore: #453 answerID 들고 있도록 수정
y-eonee Jun 10, 2026
1220262
feat: #453 공감 api 응답 dto
y-eonee Jun 10, 2026
8b38adf
feat: #453 공감 API UseCase
y-eonee Jun 10, 2026
b4528fd
chore: #453 의존성 추가
y-eonee Jun 10, 2026
eab29fb
feat: #453 내공통퀘스트 모아보기 공감 API 연동
y-eonee Jun 10, 2026
21c9ecd
feat: #453 histroyVC 공감 api 연동
y-eonee Jun 10, 2026
0d18750
refactor: #453 리뷰 반영
y-eonee Jun 14, 2026
33dfb8a
chore: #453 코드리뷰 반영
y-eonee Jun 19, 2026
dfbda4f
chore: #453 코드리뷰 반영
y-eonee Jun 23, 2026
d1a8a3f
fix: #453 충돌 해결
y-eonee Jun 23, 2026
0deb6dd
Merge pull request #454 from 36-APPJAM-HEARTZ/feat/#453-공감-api
y-eonee Jun 23, 2026
a9832c6
feat: #459 알림 모두 읽기 API 연동 - 관련 의존성 주입
dev-domo Jun 23, 2026
b091ef6
feat: #459 알림 모두 읽기 API 연동 - Presentation 영역 구현
dev-domo Jun 23, 2026
a74586b
feat: #459 알림 모두 읽기 API 연동 - Domain 영역 구현
dev-domo Jun 23, 2026
7bccc23
feat: #459 알림 모두 읽기 API 연동 - Data 영역 구현
dev-domo Jun 23, 2026
d70da46
refactor: #459 메서드명 수정(toRead -> markAsRead)
dev-domo Jun 24, 2026
c3cae6e
Merge pull request #460 from 36-APPJAM-HEARTZ/feat/#459-readAllNotifi…
dev-domo Jun 25, 2026
189b8e6
feat: #456 댓글 달기 API 연동
y-eonee Jun 14, 2026
06a9cfd
chore: #456 의존성 주입
y-eonee Jun 14, 2026
02d4957
chore: #456 의존성 주입
y-eonee Jun 14, 2026
850fc1a
fix: #456 댓글 작성 완료 시 댓글 텍스트필드 초기화되도록 함
y-eonee Jun 14, 2026
ce8ae3d
feat: #456 답글 관련 DTO, Entity 작성
y-eonee Jun 14, 2026
ffc5247
feat: #456 CommentAPI 레이어별 구현
y-eonee Jun 14, 2026
334c8df
feat: #456 답글 조회 및 답글 달기 API 연동
y-eonee Jun 14, 2026
0ac7291
feat: #456 답글 카운트 업데이트 함수 구현
y-eonee Jun 14, 2026
651facd
fix: #456 바텀시트가 닫히는 것을 콜백으로 받아 history에서 답글 업데이트
y-eonee Jun 14, 2026
b1216ae
feat: #456 특정 코멘트 아이디 비교하여 엔티티 리턴
y-eonee Jun 14, 2026
41fb69f
chore: #456 라이브러리 순서 수정
y-eonee Jun 16, 2026
5d7a962
feat: #456 신고 v2 API 연동
y-eonee Jun 21, 2026
3408e71
chore: #456 의존성 주입
y-eonee Jun 21, 2026
ce11c87
feat: #456 댓글, 답글 삭제 API 연동
y-eonee Jun 21, 2026
dd22210
fix: #456 댓글 작성 완료 후 플레스홀더가 다시 생기도록 수정
y-eonee Jun 21, 2026
a730bdc
feat: #456 댓글, 답글 사용자 차단 API 연동
y-eonee Jun 21, 2026
210371b
feat: #456 댓글 수정 시 uitextview 분기처리
y-eonee Jun 23, 2026
1204480
feat: #456 댓글 수정, 삭제 관련 API Data Layer
y-eonee Jun 23, 2026
53ddb8c
feat: #456 댓글 수정, 삭제 관련 Domain Layer
y-eonee Jun 23, 2026
12f491c
refactor: #456 이름 변경
y-eonee Jun 23, 2026
0e6aa4e
refactor: #456 바텀시트 action 추가
y-eonee Jun 23, 2026
a2172f0
feat: #456 댓글 수정 API 연동
y-eonee Jun 23, 2026
c0916d8
feat: #456 답글 수정 API 연동
y-eonee Jun 23, 2026
c68ecad
chore: #456 의존성 주입
y-eonee Jun 23, 2026
a867353
fix: #456 develop 충돌 해결
y-eonee Jun 23, 2026
8aaedf3
fix: #456 공감 안눌리는 오류 수정
y-eonee Jun 23, 2026
f8d2819
feat: #456 바인딩 함수 추가
y-eonee Jun 23, 2026
153b251
refactor: #456 presentation -> domain layer로 변경
y-eonee Jun 23, 2026
4bf8742
refactor: #456 파라미터 네이밍 통일
y-eonee Jun 23, 2026
cffd534
refactor: #456 타겟아이디가 0으로 가지 않도록 가드 처리
y-eonee Jun 23, 2026
1773bc8
refactor: #456 configure 함수 통합
y-eonee Jun 23, 2026
d3a2a8d
refactor: #456 viewModel에서 값을 들고 올 수 있도록 수정
y-eonee Jun 23, 2026
78d01ab
refactor: #456 targetType switch case로 분리
y-eonee Jun 29, 2026
36f388d
refactor: #456 bind 함수 분리
y-eonee Jun 29, 2026
37c3130
refactor: #456 카멜케이스로 변경
y-eonee Jun 29, 2026
a1224ac
chore: #456 충돌 해결 후 코드 정리
y-eonee Jun 29, 2026
e42cb39
setting: #456 macos 버전 수정
y-eonee Jun 29, 2026
2397abe
Merge pull request #461 from 36-APPJAM-HEARTZ/feat/#456-댓글-api-연동
y-eonee Jun 29, 2026
f1edd45
setting: #426 도메인 수정 후 버전 변경
y-eonee Jun 30, 2026
4a32c61
Merge pull request #463 from 36-APPJAM-HEARTZ/hotfix/#426-서버-도메인-변경
y-eonee Jun 30, 2026
f5e6bdd
setting: #470 Firebase Remote Config 추가
y-eonee Jul 3, 2026
858b273
chore: #470 의존성 주입
y-eonee Jul 3, 2026
fdf49ae
style: #470 강제 업데이트 알럿 뷰 구현
y-eonee Jul 3, 2026
cbf93c6
feat: #470 앱 스토어 관련 enum 분리
y-eonee Jul 3, 2026
ab077e2
feat: #470 최소 버전보다 낮을 시 앱스토어 이동하도록 구현
y-eonee Jul 3, 2026
032a201
chore: #470 throws 제거
y-eonee Jul 3, 2026
716c996
refactor: #470 코드리뷰 반영
y-eonee Jul 5, 2026
bfe9b52
fix: #470 빌드 에러 수정
y-eonee Jul 5, 2026
999c2ee
refactor: #470 코드리뷰 반영
y-eonee Jul 6, 2026
c7a6a8b
fix: #470 빌드에러 수정
y-eonee Jul 6, 2026
5109e98
Merge pull request #471 from 36-APPJAM-HEARTZ/feat/#470-강제-업데이트-구현
y-eonee Jul 6, 2026
f31ff10
fix: #472 아이콘 터치 영역 수정
y-eonee Jul 12, 2026
8cfb72a
refactor: #472 중복 로그인 방지
y-eonee Jul 12, 2026
4084158
refactor: #474 알림 헤더 뷰와 알림 셀 간 간격 조정
dev-domo Jul 17, 2026
fbffcd1
fix: #474 공통퀘스트 상세보기에서 뒤로 가기 시 나의 여정 탭으로 떨어지는 오류 해결
dev-domo Jul 17, 2026
09193cd
Merge pull request #473 from 36-APPJAM-HEARTZ/feat/#472-qa
y-eonee Jul 17, 2026
b5f97fb
Merge pull request #475 from 36-APPJAM-HEARTZ/refactor/#474-seungjun-…
dev-domo Jul 20, 2026
1a60a54
fix: #476 - 시간 표기 오류 수정
juri123123 Jul 21, 2026
e108934
[Fix] #476 - 버그 수정
juri123123 Jul 21, 2026
f52289f
fix: #478 공백만 있을 때 완료버튼을 누를 수 없게 함
y-eonee Jul 24, 2026
d3594b3
refactor: #480 공통여정 답변 상세보기에서 뒤로 가기 클릭 시 공통 여정 탭으로 이동하도록 수정
dev-domo Jul 26, 2026
90d8506
fix: #480 퀘스트 탭 복귀 시 선택된 서브탭이 초기화되는 문제 수정
dev-domo Jul 26, 2026
e1c2d56
refactor: #480 viewWillDisappear을 viewDidLoad 뒤로 순서 변경
dev-domo Jul 27, 2026
8a61c80
Merge pull request #481 from 36-APPJAM-HEARTZ/fix/#480-back
dev-domo Jul 27, 2026
5df10a9
Merge pull request #477 from 36-APPJAM-HEARTZ/fix/#476-공통-퀘스트-댓글-안보이는…
dev-domo Jul 27, 2026
29ba1b0
Merge pull request #479 from 36-APPJAM-HEARTZ/fix/#478-공백댓글작성불가
y-eonee Jul 28, 2026
a96fce7
feat: #482 답글 자동스크롤 기능 구현
y-eonee Aug 3, 2026
8c5d6be
feat: #482 댓글 자동스크롤 구현
y-eonee Aug 3, 2026
78a79e4
setting: #482 빌드 번호 변경
y-eonee Aug 3, 2026
f566f03
chore: #482 middle > bottom으로 변경
y-eonee Aug 3, 2026
6cf0a21
chore: #482 레이아웃 갱신
y-eonee Aug 3, 2026
301ea78
Merge pull request #483 from 36-APPJAM-HEARTZ/feat/#482-댓글-자동스크롤
y-eonee Aug 3, 2026
aff9475
setting: #485 fastfile에 release 명령어 추가
y-eonee Aug 9, 2026
7609f93
docs: #485 fastlane yml 작성
y-eonee Aug 9, 2026
8d705f0
setting: #485 디스코드 웹훅 추가
y-eonee Aug 9, 2026
8e1c26c
setting: #485 fastfile 헬퍼 함수 추가
y-eonee Aug 9, 2026
f5d8be9
Merge pull request #486 from 36-APPJAM-HEARTZ/setting/#485-자동배포
y-eonee Aug 9, 2026
4e3729e
Merge branch 'main' into chore/#484-3스-deploy
y-eonee Aug 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @y-eonee @dev-domo @juri123123
2 changes: 1 addition & 1 deletion .github/workflows/build_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
build:
runs-on: macos-latest
runs-on: macos-15

steps:
- name: Checkout code
Expand Down
24 changes: 16 additions & 8 deletions ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
183EE0E12ED1D10600154F40 /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 183EE0E02ED1D10600154F40 /* FirebaseMessaging */; };
186847F02ED5567D002827DA /* FirebaseCore in Frameworks */ = {isa = PBXBuildFile; productRef = 186847EF2ED5567D002827DA /* FirebaseCore */; };
18A8172D2E154F3D00F68F9F /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 18A8172C2E154F3D00F68F9F /* Alamofire */; };
514D021B2FF6ADDD0041A4E1 /* FirebaseRemoteConfig in Frameworks */ = {isa = PBXBuildFile; productRef = 514D021A2FF6ADDD0041A4E1 /* FirebaseRemoteConfig */; };
515C127F2E159D45001BA2E0 /* Then in Frameworks */ = {isa = PBXBuildFile; productRef = 515C127E2E159D45001BA2E0 /* Then */; };
515C12822E159D77001BA2E0 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 515C12812E159D77001BA2E0 /* SnapKit */; };
51691DED2E5CB059008CCEC6 /* KakaoSDKAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 51691DEC2E5CB059008CCEC6 /* KakaoSDKAuth */; };
Expand Down Expand Up @@ -77,6 +78,7 @@
CBB032A72E7925FC00C0855E /* Mixpanel in Frameworks */,
51691DED2E5CB059008CCEC6 /* KakaoSDKAuth in Frameworks */,
CB71A8A32F3B6F9400176B64 /* FirebaseCrashlytics in Frameworks */,
514D021B2FF6ADDD0041A4E1 /* FirebaseRemoteConfig in Frameworks */,
183EE0E12ED1D10600154F40 /* FirebaseMessaging in Frameworks */,
183EE0DB2ED1CB0E00154F40 /* FirebaseAnalytics in Frameworks */,
);
Expand Down Expand Up @@ -151,6 +153,7 @@
183EE0E02ED1D10600154F40 /* FirebaseMessaging */,
186847EF2ED5567D002827DA /* FirebaseCore */,
CB71A8A22F3B6F9400176B64 /* FirebaseCrashlytics */,
514D021A2FF6ADDD0041A4E1 /* FirebaseRemoteConfig */,
);
productName = "ByeBoo-iOS";
productReference = CB41808B2E0925D2001E7BCB /* ByeBoo-iOS.app */;
Expand Down Expand Up @@ -307,7 +310,7 @@
CODE_SIGN_ENTITLEMENTS = "ByeBoo-iOS/ByeBoo-Dev.entitlements";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 18;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = Z6682N5G5D;
Expand All @@ -325,7 +328,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.3;
MARKETING_VERSION = 1.3.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.heartz.ByeBoo-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -349,9 +352,9 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "ByeBoo-iOS/ByeBoo-Prod.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 18;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = Z6682N5G5D;
GENERATE_INFOPLIST_FILE = YES;
Expand All @@ -368,11 +371,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.3;
MARKETING_VERSION = 1.3.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.heartz.ByeBoo-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.heartz.ByeBoo-iOS";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.heartz.ByeBoo-iOS";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
Expand Down Expand Up @@ -512,7 +515,7 @@
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 10;
CURRENT_PROJECT_VERSION = 15;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
MACOSX_DEPLOYMENT_TARGET = 15.2;
Expand All @@ -534,7 +537,7 @@
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 10;
CURRENT_PROJECT_VERSION = 15;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
MACOSX_DEPLOYMENT_TARGET = 15.2;
Expand Down Expand Up @@ -671,6 +674,11 @@
package = 18A8172B2E154F3D00F68F9F /* XCRemoteSwiftPackageReference "Alamofire" */;
productName = Alamofire;
};
514D021A2FF6ADDD0041A4E1 /* FirebaseRemoteConfig */ = {
isa = XCSwiftPackageProductDependency;
package = 183EE0D92ED1CB0E00154F40 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseRemoteConfig;
};
515C127E2E159D45001BA2E0 /* Then */ = {
isa = XCSwiftPackageProductDependency;
package = 515C127D2E159D45001BA2E0 /* XCRemoteSwiftPackageReference "Then" */;
Expand Down
2 changes: 1 addition & 1 deletion ByeBoo-iOS/ByeBoo-iOS/App/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
guard let notificationRepository = DIContainer.shared.resolve(type: DefaultNotificationRepository.self) else {
guard let notificationRepository = DIContainer.shared.resolve(type: DefaultNotificationTokenRepository.self) else {
return
}

Expand Down
3 changes: 3 additions & 0 deletions ByeBoo-iOS/ByeBoo-iOS/Core/ByeBooError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ enum ByeBooError: Error, LocalizedError, Equatable {
case fileNotFound
case nicknameViolation
case questViolation
case dateFormatError

var errorDescription: String? {
switch self {
Expand Down Expand Up @@ -71,6 +72,8 @@ enum ByeBooError: Error, LocalizedError, Equatable {
return "비속어나 부적절한 단어가 포함된 닉네임"
case .questViolation:
return "비속어나 부적절한 단어가 포함된 답변"
case .dateFormatError:
return "날짜 문자열 형식이 올바르지 않음"
}
}
}
10 changes: 10 additions & 0 deletions ByeBoo-iOS/ByeBoo-iOS/Data/DataDependencyAssembler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,16 @@ struct DataDependencyAssembler: DependencyAssembler {
DIContainer.shared.register(type: ReportsInterface.self) { _ in
return DefaultReportsRepository(networkService: networkService)
}

DIContainer.shared.register(type: NotificationInterface.self) { _ in
return DefaultNotificationRepository(networkService: networkService)
}
DIContainer.shared.register(type: CommentInterface.self) { _ in
return DefaultCommentRepository(
network: networkService,
userDefaultService: userDefaultService
)
}
}
}

Expand Down
24 changes: 24 additions & 0 deletions ByeBoo-iOS/ByeBoo-iOS/Data/Enum/NotificationType+Data.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//
// NotificationType+Data.swift
// ByeBoo-iOS
//
// Created by 더스틴 on 6/7/26.
//

extension NotificationType {

var responseKey: String {
switch self {
case .questOpen:
"QUEST_OPEN"
case .comment:
"COMMENT"
case .like:
"LIKE"
}
}

static func keyToEnum(_ key: String) -> Self? {
allCases.first { $0.responseKey == key }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
//
// CommonQuestAnswerDetailResponseDTO.swift
// ByeBoo-iOS
//
// Created by 이나연 on 5/5/26.
//

import Foundation

struct CommonQuestAnswerDetailResponseDTO: Decodable {
let question: String
let answer: CommonQuestAnswerSimpleResponseDTO
let comments: [CommonQuestCommentResponseDTO]
}

struct CommonQuestAnswerSimpleResponseDTO: Decodable {
let content: String
let writerId: Int
let writer: String
let profileIcon: String
let likeCount: Int
let commentCount: Int
let isLiked: Bool
let writtenAt: String
}

struct CommonQuestCommentResponseDTO: Decodable {
let commentId: Int
let replyCount: Int
let writerId: Int
let writer: String
let profileIcon: String
let writtenAt: String
let content: String
}

extension CommonQuestAnswerDetailResponseDTO {
func toEntity(userID: Int) -> CommonQuestDetailEntity {
.init(
question: question,
answer: answer.toEntity(userID: userID),
comments: comments.map { $0.toEntity(userID: userID) }
)
}
}

extension CommonQuestAnswerSimpleResponseDTO {
func toEntity(userID: Int) -> CommonQuestAnswerDetailEntity {
.init(
isMyAnswer: userID == writerId ? true : false,
content: content,
writerID: writerId,
writer: writer,
profileIcon: profileIcon,
likeCount: likeCount,
commentCount: commentCount,
isLiked: isLiked,
writtenAt: writtenAt
)
}
}

extension CommonQuestCommentResponseDTO {
func toEntity(userID: Int) -> CommonQuestCommentEntity {
return .init(
isMyComment: userID == writerId ? true : false,
commentID: commentId,
replyCount: replyCount,
writerID: writerId,
writer: writer,
profileIcon: profileIcon,
writtenAt: writtenAt,
content: content
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
//
// CommonQuestAnswerRepliesResponseDTO.swift
// ByeBoo-iOS
//
// Created by 이나연 on 5/5/26.
//

import Foundation

struct CommonQuestAnswerRepliesResponseDTO: Decodable {
let totalCount: Int
let comment: CommonQuestAnswerCommentResponseDTO
let replies: [CommonQuestAnswerCommentResponseDTO]
}

struct CommonQuestAnswerCommentResponseDTO: Decodable {
let content: String
let writer: String
let createdAt: String
let profileIcon: String
let commentId: Int
let writerId: Int
}

extension CommonQuestAnswerRepliesResponseDTO {
func toEntity(userID: Int) -> CommonQuestReplyListEntity {
.init(
totalCount: totalCount,
replies: replies.map { $0.toEntity(userID: userID) }
)
}
}

extension CommonQuestAnswerCommentResponseDTO {
func toEntity(userID: Int) -> CommonQuestCommentEntity {
.init(
isMyComment: userID == writerId ? true : false,
commentID: commentId,
replyCount: nil,
writerID: writerId,
writer: writer,
profileIcon: profileIcon,
writtenAt: createdAt,
content: content
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,38 +16,44 @@ struct CommonQuestAnswersResponseDTO: Decodable {
}

struct CommonQuestAnswerResponseDTO: Decodable {
let likeCount: Int
let commentCount: Int
let isLiked: Bool
let answerId: Int
let writerId: Int
let writer: String
let profileIcon: String
let writtenAt: String
let content: String
let writerId: Int
}

extension CommonQuestAnswersResponseDTO {
func toEntity(userName: String) -> CommonQuestAnswersEntity {
func toEntity(userID: Int) -> CommonQuestAnswersEntity {
.init(
question: question,
questID: questId,
answerCount: answerCount,
isAnswered: isAnswered,
hasNext: hasNext,
nextCursor: nil,
answers: answers.map { $0.toEntity(userName: userName) }
answers: answers.map { $0.toEntity(userID: userID) }
)
}
}

extension CommonQuestAnswerResponseDTO {
func toEntity(userName: String) -> CommonQuestAnswerEntity {
func toEntity(userID: Int) -> CommonQuestAnswerEntity {
.init(
isMyAnswer: userName == writer ? true : false,
isMyAnswer: userID == writerId ? true : false,
answerID: answerId,
writerID: writerId,
writer: writer,
profileIcon: profileIcon,
writtenAt: writtenAt,
content: content,
writerID: writerId
likeCount: likeCount,
commentCount: commentCount,
isLiked: isLiked
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// CommonQuestCommentRequestDTO.swift
// ByeBoo-iOS
//
// Created by 이나연 on 6/14/26.
//

import Foundation

struct CommonQuestCommentRequestDTO: Encodable {
let content: String
let targetId: Int
}
Loading
Loading