Skip to content
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

flyway ci 검증 추가 #729

Closed
wants to merge 170 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
170 commits
Select commit Hold shift + click to select a range
a2e4926
feat: 안드로이드 프로젝트 생성
rhthrhrl0 Jul 13, 2023
057963c
chore: gradle 설정
rhthrhrl0 Jul 13, 2023
8fdca63
feat: 권한 설정
rhthrhrl0 Jul 14, 2023
c411ce1
feat: 기본 리소스 설정
rhthrhrl0 Jul 14, 2023
8538415
feat: 데이터 모듈 분리
rhthrhrl0 Jul 14, 2023
6b8eaa6
feat: 패키지 구조 설계
rhthrhrl0 Jul 14, 2023
9ef415f
feat: 공통 feature 관련 코드 작성
rhthrhrl0 Jul 14, 2023
e5badd6
rename: 패키지 이동
rhthrhrl0 Jul 14, 2023
dffec48
feat: 유틸 코드 작성
rhthrhrl0 Jul 14, 2023
e81da2d
feat: 바인딩 어댑터 코드 작성
rhthrhrl0 Jul 14, 2023
0b077cb
feat: Bottom Navigation 레이아웃 작성
ippnsj Jul 15, 2023
e240549
feat: 프래그먼트 이동 로직 추가
rhthrhrl0 Jul 15, 2023
398d6db
feat: #17 경매 상품 등록 페이지 그리고 MVVM 구조 설계 (#33)
hyemdooly Jul 18, 2023
e179faf
feat: #20 경매 상품 등록 페이지 날짜, 시간 Picker 추가 (#38)
hyemdooly Jul 18, 2023
6602d3c
경매 상품 상세 페이지 UI 추가 (#39)
rhthrhrl0 Jul 18, 2023
feb0eba
feat: #22 경매 상품 목록 레이아웃 작성 (#54)
ippnsj Jul 19, 2023
4d1f58c
feat: #18 경매 상품 등록 페이지 이미지 URL 업로드와 서버 전송 준비, Picker 스타일 변경 (#55)
hyemdooly Jul 19, 2023
c6f0361
feat: #59 경매 상품 선택 시 경매 상세를 보여주는 기능 구현 (#62)
ippnsj Jul 19, 2023
d4a4dd7
feat: #63 경매 상품 목록에서 경매 등록 페이지로 이동하는 기능 구현 (#66)
ippnsj Jul 19, 2023
391fd0b
rename: 패키지 이동
ippnsj Jul 19, 2023
bd1dde7
chore: gradle 변경
ippnsj Jul 19, 2023
7c75d7e
feat: retrofit service 및 DTO 작성
ippnsj Jul 19, 2023
f48ced3
feat: repository 작성
ippnsj Jul 19, 2023
0471f50
feat: 경매 상품 목록 조회 api 연동
ippnsj Jul 20, 2023
6f71b18
test: #83 경매 상품 목록 조회 테스트 추가 (#85)
ippnsj Jul 20, 2023
9cc43b4
feat: #50 경매 상세 페이지 UI 모델 작성 및 데이터바인딩 연결 (#84)
rhthrhrl0 Jul 20, 2023
3abf152
feat: #82 경매 상품 등록 서버 연동 (#86)
hyemdooly Jul 20, 2023
8f85bff
test: #91 Repository 테스트 작성 - 경매 상품 등록, 상세 정보 (#93)
hyemdooly Jul 20, 2023
77821ed
test: #92 경매 상품 목록 페이지 ViewModel 테스트 추가 (#95)
ippnsj Jul 20, 2023
ef0b90a
feat: #87 경매 상세 페이지 서버 연동 작업 추가 (#96)
rhthrhrl0 Jul 20, 2023
e99673f
feat: #117 경매 데이터 캐싱 전략 적용 (#123)
ippnsj Jul 26, 2023
19b7452
feat: #124 CallAdapter 적용 (#125)
ippnsj Jul 26, 2023
fdad519
feat: #101 경매 상품 등록 페이지 DatePicker month -1 버그 (#133)
hyemdooly Jul 27, 2023
e723482
feat: #126 경매 목록 무한 스크롤 구현 (#127)
ippnsj Jul 27, 2023
87b69a9
feat: #128 경매 등록 사진 업로드 레이아웃 작성 및 사진 삭제 기능 구현 (#138)
ippnsj Jul 28, 2023
3751407
test: #99 경매 상세 ViewModel 테스트 코드 작성 (#129)
rhthrhrl0 Jul 28, 2023
f828a84
feat: #131 경매 입찰 요청 팝업창 UI 추가 (#141)
rhthrhrl0 Jul 28, 2023
5d956d8
feat: #142 경매 등록 시 갤러리에서 사진 선택하는 기능 구현 (#148)
ippnsj Jul 31, 2023
b1c8bcc
feat: #136 카테고리 선택 Activity UI, 구조 작성 (#153)
hyemdooly Jul 31, 2023
d8a39cf
feat: #143 입찰 가격 입력 뷰 수정 및 비지니스 로직 뷰모델로 분리 (#154)
rhthrhrl0 Jul 31, 2023
9fbe5be
feat: #159 이미지 Uri를 MultipartBody로 변환 (#162)
ippnsj Aug 1, 2023
cff1804
feat: #175 경매 등록 시 갤러리에 있는 이미지를 서버로 전송하는 기능 구현 (#182)
ippnsj Aug 1, 2023
96734c1
feat: #161 지역 선택 페이지 UI 추가, 구조 설계 (#179)
hyemdooly Aug 2, 2023
753d51e
feat: #193 이미지를 압축하여 캐시에 저장하는 기능 구현 (#195)
ippnsj Aug 2, 2023
26c44e4
chore: 파이어베이스 analytics 추가
ippnsj Aug 2, 2023
2a4062f
design: 아이콘 변경
hyemdooly Aug 2, 2023
b162303
feat: #180 카테고리 선택 페이지 서버 연동 (#188)
hyemdooly Aug 3, 2023
04c2cfd
feat: #181 지역 선택 페이지 서버 연동 (#194)
hyemdooly Aug 3, 2023
e997dc2
feat: #196 경매 입찰 기능 서버 연동 (#200)
rhthrhrl0 Aug 3, 2023
dd8a6ed
feat: Analytics Screen View 로그 이벤트 추가
ippnsj Aug 3, 2023
a243765
feat: #201 등록 페이지와 카테고리, 지역 선택 페이지 연결 (#203)
hyemdooly Aug 3, 2023
7ba1426
refactor: #205 경매 입찰 응답 메시지 수정 (#206)
rhthrhrl0 Aug 3, 2023
9dbe4b5
chore: 파이어베이스 crashlytics 추가
rhthrhrl0 Aug 3, 2023
31d19a7
feat: 3차 데모데이 기능 운영 서버 배포 (#214)
JJ503 Aug 6, 2023
807e41e
!hotfix: 버그 리포팅을 위한 이슈 템플릿 추가
apptie Aug 7, 2023
892e9d1
!hotfix: 버그 리포팅용 이슈 템플릿의 설명을 조금 더 명확하게 변경
apptie Aug 7, 2023
ba3f489
!hotfix: 개발 도중 버그가 발생했을 때의 이슈 템플릿의 설명을 명확하게 변경
apptie Aug 7, 2023
12f609d
feat: #227 카카오 소셜로그인 기능 구현 (#229)
ippnsj Aug 8, 2023
d945ca0
feat: #230 카카오 소셜로그인 서버 연동 (#241)
ippnsj Aug 9, 2023
ad61ee3
feat: #232 경매 상세 화면에서 쪽지방 생성 버튼 기능 추가 (#240)
rhthrhrl0 Aug 9, 2023
1d84a65
feat: #246 자동 로그인 기능 구현 (#248)
rhthrhrl0 Aug 9, 2023
9afb383
feat: #250 쪽지 목록 페이지 기능 구현 (#254)
rhthrhrl0 Aug 10, 2023
114e359
feat: #253 마이페이지 추가 (#261)
ippnsj Aug 10, 2023
60fd175
feat: #242 신고 페이지 UI/구조 작성, 삭제 버튼 UI추가 (#267)
hyemdooly Aug 10, 2023
deab9b3
feat: #263 경매 목록 새로고침 기능 추가 (#264)
ippnsj Aug 11, 2023
79e4397
feat: #266 삭제된 경매 상세 조회 시 데이터를 삭제하고 경매 목록으로 돌아오는 기능 추가 (#268)
ippnsj Aug 11, 2023
41fe735
feat: #274 신고 기능 서버 연동 및 액티비티 연결 (#275)
hyemdooly Aug 11, 2023
a8b3a4f
feat: #257 쪽지방 페이지 기능 구현 (#270)
rhthrhrl0 Aug 11, 2023
76c1789
feat: #278 자동로그인 기능 서버 연동 (#279)
ippnsj Aug 11, 2023
bedbab6
fix: 앱에서 나갔다가 돌아왔을 때 경매 목록 캐시가 남아있는 문제 해결
ippnsj Aug 11, 2023
4c90c14
feat: #285 개인정보처리방침 추가 (#288)
ippnsj Aug 11, 2023
2f8432b
feat: #286 신고하기 및 쪽지방 정보 Dto 서버랑 안맞는 버그 수정 (#289)
rhthrhrl0 Aug 11, 2023
539dfdf
refactor: 개인정보처리방침 url 코드에서 숨김
ippnsj Aug 11, 2023
633a8c5
feat: #297 경매 상세 페이지 경매 삭제 기능 추가 (#300)
hyemdooly Aug 16, 2023
e2896ff
feat: #304 마지막 메시지 위치로 리사이클러뷰 위치 이동되는 기능 및 메시지 입력 소프트 키보드 올라올 때 툴바 보이…
rhthrhrl0 Aug 16, 2023
4b4168c
deploy: 시맨틱 버저닝 적용
hyemdooly Aug 16, 2023
815fa0f
refactor: 사용하지 않는 기능 버튼 숨김 처리
hyemdooly Aug 16, 2023
10967b7
deploy: 시맨틱 버저닝 적용
hyemdooly Aug 16, 2023
2db47c9
deploy: 난독화 적용
hyemdooly Aug 16, 2023
6d22401
feat: #309 서버로부터 가져온 프로필 정보 화면에 띄워주는 기능 추가 (#312)
ippnsj Aug 16, 2023
8c73041
refactor: #325 입찰 예외처리 리팩토링 (#326)
rhthrhrl0 Aug 17, 2023
78f04e9
fix: #327 토큰 자동 갱신 시 응답 안 닫고 다음 요청을 보내던 버그 수정 (#328)
rhthrhrl0 Aug 17, 2023
4583c19
fix: 입찰 금액 입력 최댓값 수정
rhthrhrl0 Aug 17, 2023
2be39ad
fix: 경매 등록 여러번 되는 문제 방지
rhthrhrl0 Aug 17, 2023
4c244a0
feat: 경매 등록 실패 시 스낵바 메시지 노출
rhthrhrl0 Aug 17, 2023
fba82d8
feat: 경매 입찰 시 일정 단위를 벗어날 경우 서버에서 받는 메시지를 출력하는 기능 추가
rhthrhrl0 Aug 17, 2023
05c90bb
design: 마감기한 텍스트 뷰 위치를 시작 가격 옆으로 조정
rhthrhrl0 Aug 17, 2023
adddc64
design: 프로필 이미지 뷰에 디폴트 이미지 적용
rhthrhrl0 Aug 17, 2023
f7dcc84
fix: 경매 상세 페이지가 한 번에 여러개 생성되지 않도록 수정
ippnsj Aug 17, 2023
15dd51d
design: 경매 상세 화면 판매자 프로필 외곽을 둥글게 수정
rhthrhrl0 Aug 17, 2023
a34425b
feat: 활성화된 쪽지방이 없으면 쪽지방 프래그먼트에 보여줄 문구 추가
rhthrhrl0 Aug 17, 2023
0107cb2
fix: 경매 상세와 쪽지방이 무한히 중첩되는 버그 수정
ippnsj Aug 17, 2023
86c985c
feat: 레벨3 안드로이드 기능 구현 추가
ippnsj Aug 31, 2023
8ba42b2
feat: 4차 데모데이 기능 구현 추가
JJ503 Aug 31, 2023
5878c23
refactor: 버전 수정
ippnsj Aug 31, 2023
c7b2f4c
refactor: 안드로이드 버전 수정
ippnsj Aug 31, 2023
03fe003
ci: 브랜치 최신화
JJ503 Aug 31, 2023
5ccb2df
feat: #339 상세 화면을 위한 로딩 화면 추가 (#348)
rhthrhrl0 Sep 7, 2023
6722868
feat: #335 검색 UI 작성 및 구조 설계 (#345)
hyemdooly Sep 9, 2023
f8f6dd0
feat: #344 채팅 메시지 수신 알림 기능 구현 (#355)
ippnsj Sep 13, 2023
b7ebc74
fix: #356 자동 로그인 버그 수정 (#357)
rhthrhrl0 Sep 13, 2023
05dd656
feat: #374 서버로 디바이스 토큰을 전송하는 기능 추가 (#375)
ippnsj Sep 15, 2023
a100dbd
feat: #372 홈 전체 경매 목록 조회 바뀐 API 맞게 수정 및 정렬 연동 (#376)
hyemdooly Sep 15, 2023
06c55c5
feat: #365 회원 정보 수정 기능 및 마이페이지 목록 UI 구성 (#391)
rhthrhrl0 Sep 17, 2023
7349263
feat: #362 검색 기능 서버 연동 (#392)
hyemdooly Sep 18, 2023
e11ca7e
feat: #395 나의 경매 목록 기능 (#396)
rhthrhrl0 Sep 18, 2023
254c76c
feat: #389 안드로이드 12이하 버전 알림 권한 및 알림 수신 대응 (#390)
ippnsj Sep 18, 2023
7e9e8ab
feat: #397 참여 경매 목록 기능 (#402)
rhthrhrl0 Sep 18, 2023
6342bfa
feat: #403 회원 탈퇴 기능 서버 연동 (#407)
ippnsj Sep 19, 2023
8951231
fix: #404 경매 마감까지 1초 이상 59초 이하 남아도 경매 마감으로 문구가 뜨던 버그 수정 (#405)
rhthrhrl0 Sep 19, 2023
396a760
refactor: #406 회원 정보 수정 api 변경에 따른 수정 (#414)
rhthrhrl0 Sep 19, 2023
74b062b
feat: #415 경매 등록 글 EditText Text 옆에 '원' 단위 붙이기 (#416)
hyemdooly Sep 20, 2023
bc3b601
feat: #420 힐트 적용 (#421)
hyemdooly Sep 20, 2023
190aa55
feat: #422 쪽지방 페이지 전송 버튼 활성화 유무 설정 및 글자 기울어져서 잘리는 현상 수정 (#423)
rhthrhrl0 Sep 21, 2023
a497ee1
refactor: #424 회원 정보 페이지에서 프로필 이미지 scaleType 수정 및 회원 수정 정보 요청 시 응답 실패…
rhthrhrl0 Sep 21, 2023
6a16a50
refactor: #426 바텀네비게이션바 디자인 수정 (#428)
rhthrhrl0 Sep 21, 2023
48877b9
feat: #430 쪽지방 신고 기능 추가 (#432)
rhthrhrl0 Sep 21, 2023
e56ad8a
feat: #435 인앱 자동 업데이트 기능 추가 (#436)
rhthrhrl0 Sep 21, 2023
d25b3f2
chore: 안드로이드 버전 업데이트
ippnsj Sep 21, 2023
4af5c71
fix: 채우지 않은 필드라고 나오던 버그 수정
rhthrhrl0 Sep 21, 2023
0b6c478
fix: 앱 업데이트 매니저에 실패 리스너 설정
rhthrhrl0 Sep 21, 2023
0bab4ee
fix: ReportType의 ordinal을 넘기도록 수정
rhthrhrl0 Sep 21, 2023
e6cd795
fix: 안드로이드 13버전 이상에서 parcelable 가져오는 로직 수정
ippnsj Sep 21, 2023
1a2a61d
chore: 앱 버전 업데이트
ippnsj Sep 21, 2023
b8e948f
fix: 토큰에 Bearer prefix를 붙이지 않는 것으로 수정
ippnsj Sep 26, 2023
77036a5
feat: #437 경매 알림 수신 기능 추가 (#439)
ippnsj Sep 26, 2023
d6d0d95
feat: #444 경매 상세 페이지 이미지 모아보기 기능 작성 (#446)
rhthrhrl0 Sep 26, 2023
5e69730
feat: #449 마이페이지에서 알림 설정창으로 이동하는 기능 추가 (#450)
ippnsj Sep 26, 2023
67b2930
feat: #455 경매 상세 제목 흐름 및 상세 설명 텍스트 복사 기능 추가 (#456)
rhthrhrl0 Sep 26, 2023
b539319
feat: #461 Glide로 알림 이미지 처리 (#463)
ippnsj Sep 26, 2023
f044ae6
refactor: 불필요한 Repository 팩토리 함수 제거
ippnsj Sep 26, 2023
30b2e75
refactor: 스플래시 화면에서 인앱 업데이트 대신 업데이트 페이지 이동으로 수정
rhthrhrl0 Sep 26, 2023
91e1044
chore: 앱 버전 업데이트
ippnsj Sep 26, 2023
5370af7
chore: 앱 버전 코드 업데이트
ippnsj Sep 26, 2023
1306e50
!hotfix: 안드로이드 9 버전에서 resource not found 문제 해결
ippnsj Sep 26, 2023
3a47967
!hotfix: 경매 등록 실패 시 에러 메시지 띄우는 기능 버그 수정
ippnsj Sep 26, 2023
ca36330
!hotfix: 경매 마감 시간 설정 전 포멧과 설정 후 포멧이 다른 문제 해결
ippnsj Sep 26, 2023
b2ad43e
fix: 경매 목록을 불러오는데 실패 시 에러 메시지 띄우는 기능 수정
ippnsj Sep 26, 2023
e72be20
feat: 앱 실행 실패 시 에러 메시지 띄우는 기능 추가
ippnsj Sep 26, 2023
940167e
chore: 앱 버전 업데이트
ippnsj Sep 26, 2023
baa0e20
refactor: 사용자 평점 뷰 모두 안보이게 수정
rhthrhrl0 Sep 27, 2023
d80174a
feat: #466 다크모드 적용 (#500)
hyemdooly Oct 2, 2023
9ab767f
feat: #522 홈 화면에서 홈 버튼 클릭 시 맨 위로 스크롤하는 기능 추가 (#523)
ippnsj Oct 4, 2023
19d3362
feat: #517 탈퇴 시 다이얼로그 띄우기 (#518)
ippnsj Oct 4, 2023
b8de48e
feat: #514 유저 상호 평가 기능 뷰 작성 (#521)
hyemdooly Oct 4, 2023
38bacab
feat: #516 각 날짜별로 첫번째 메시지의 상단에 날짜가 표시되도록 수정 (#524)
rhthrhrl0 Oct 4, 2023
699e0c1
feat: #527 알림 태그와 아이디가 같은 알림 쌓는 기능 및 알림 관련 페이지 이동 시 알림 취소 기능 구현 (#531)
ippnsj Oct 6, 2023
a9a07c1
feat: #528 메시지 실시간 동기화 기능 추가 (#529)
rhthrhrl0 Oct 6, 2023
e8ad100
feat: #545 유저 상호 평가 서버 연동 (#548)
hyemdooly Oct 6, 2023
8f2142a
feat: #561 신뢰도 관련 뷰 활성화 및 신뢰도 평가 이전 표시 추가 (#564)
ippnsj Oct 6, 2023
17aeebe
feat: #560 에러 처리 로직 추가 (#567)
rhthrhrl0 Oct 6, 2023
9c3379b
feat: #568 문의하기 기능 추가 (#572)
ippnsj Oct 6, 2023
0fb5871
chore: 앱 버전 업데이트
ippnsj Oct 6, 2023
ab677c6
fix: #576 하위 버전에서 글자 흐르지 않던 문제 해결 (#578)
rhthrhrl0 Oct 7, 2023
53d7ed4
chore: 앱 버전 업데이트
ippnsj Oct 7, 2023
ef776a7
feat: #580 메인 화면에서 백키 핸들러 추가 (#581)
rhthrhrl0 Oct 7, 2023
221b4b6
feat: 활동중인 채팅방에 대한 채팅 알림은 띄우지 않는 기능 추가
ippnsj Oct 7, 2023
8c76a02
chore: 앱 버전 업데이트
ippnsj Oct 7, 2023
72f8cbd
fix: 글자 크기 대응
ippnsj Oct 7, 2023
e69d405
chore: 앱 버전 업데이트
ippnsj Oct 7, 2023
3e162d0
feat: #584 경매 상세 정보를 Fragment로 분리 (#586)
rhthrhrl0 Oct 10, 2023
72ed6f9
fix: #588 경매 상세 페이지에서 이미지 스크롤 좌우 감지 안되던 버그 수정 (#589)
rhthrhrl0 Oct 10, 2023
109caa0
ci: 안드로이드 develop 브랜치 최신화
ippnsj Oct 10, 2023
86e1110
ci: 백엔드 develop 브랜치 최신화(#596)
apptie Oct 10, 2023
0e44140
ci: 백엔드 develop 브랜치 최신화 (#635)
swonny Oct 12, 2023
b89566d
!hotfix: 운영서버 배포 스크립트에 actuator 관련 변수 추가 (#636)
kwonyj1022 Oct 12, 2023
9f8b679
!hotfix: 운영서버 배포스크립트에 actuator 변수 설정 (#638)
kwonyj1022 Oct 12, 2023
3d961ca
ci: 백엔드 develop 브랜치 최신화
JJ503 Oct 19, 2023
e1f34e9
chore: flyway 플러그인 추가
JJ503 Nov 1, 2023
715761f
ci: dev flyway ci 검증 설정 추가
JJ503 Nov 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 36 additions & 0 deletions .github/workflows/backend_dev_flyway.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: PR 코드 분석

on:
pull_request:
types: [opened, reopened, synchronize]
branches: [ develop-be ]

permissions: write-all

jobs:
build:
if: contains(github.event.pull_request.labels.*.name, 'backend')
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: settings java
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: Create flyway.conf
run: |
touch flyway.conf
echo "flyway.url=${{ secrets.DEV_DATASOURCE_URL }}" >> flyway.conf
echo "flyway.user=${{ secrets.DEV_DATASOURCE_USERNAME }}" >> flyway.conf
echo "flyway.password=${{ secrets.DEV_DATASOURCE_PASSWORD }}" >> flyway.conf
echo "flyway.encoding=UTF-8" >> flyway.conf
echo "flyway.locations=filesystem:src/main/resources/db/migration" >> flyway.conf
echo "flyway.validateOnMigrate=true" >> flyway.conf
working-directory: ./backend

- name: flywayValidate
run: ./gradlew -Dflyway.configFiles=flyway.conf flywayValidate --stacktrace
working-directory: ./backend
34 changes: 34 additions & 0 deletions android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Log/OS Files
*.log

# Android Studio generated files and folders
captures/
.externalNativeBuild/
.cxx/
*.apk
output.json

# IntelliJ
*.iml
.idea/
misc.xml
deploymentTargetDropDown.xml
render.experimental.xml

# Keystore files
*.jks
*.keystore
/3DDANG_KEY

# Google Services (e.g. APIs or Firebase)
google-services.json

# Android Profiling
*.hprof
1 change: 1 addition & 0 deletions android/app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
116 changes: 116 additions & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
id 'com.google.dagger.hilt.android'
id 'kotlin-parcelize'
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
}

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

android {
namespace 'com.ddangddangddang.android'
compileSdk 33

defaultConfig {
applicationId "com.ddangddangddang.android"
minSdk 28
targetSdk 33

versionCode 12
versionName "5.1.2"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

manifestPlaceholders = [KEY_KAKAO: properties['key.kakao']]
buildConfigField 'String', 'KEY_KAKAO', properties['key.kakao.string']
buildConfigField "String", "PRIVACY_POLICY_URL", properties['url.privacyPolicy']
buildConfigField "String", "DDANG_EMAIL_ADDRESS", properties['email.address.ddangddangddang']
}

buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro',
'glide.pro',
'retrofit2.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro',
'glide.pro',
'retrofit2.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}

buildFeatures {
buildConfig true
dataBinding true
}
}

dependencies {
implementation project(":data")
implementation 'androidx.core:core-ktx:1.10.1'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'

// lifecycle
implementation 'androidx.activity:activity-ktx:1.7.2' // by viewModels()
implementation 'androidx.fragment:fragment-ktx:1.6.0' // by activityViewModels()
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.1"

// 리사이클러뷰
implementation 'androidx.recyclerview:recyclerview:1.3.0'

// 이미지 처리
implementation 'com.github.bumptech.glide:glide:4.15.1'

// 테스트
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'

testImplementation 'io.mockk:mockk-android:1.13.5'

testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test'
testImplementation 'androidx.arch.core:core-testing:2.2.0'

androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'

// 파이어베이스
implementation platform('com.google.firebase:firebase-bom:32.2.0')
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-crashlytics-ktx'
implementation 'com.google.firebase:firebase-messaging-ktx:23.2.1'

// 카카오 로그인
implementation 'com.kakao.sdk:v2-user:2.11.1'

// lottie 애니메이션
implementation 'com.airbnb.android:lottie:6.1.0'

// hilt
implementation "com.google.dagger:hilt-android:2.44"
kapt "com.google.dagger:hilt-compiler:2.44"

// app update manager
implementation 'com.google.android.play:app-update-ktx:2.1.0'
}
kapt {
correctErrorTypes true
}
14 changes: 14 additions & 0 deletions android/app/glide.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep class * extends com.bumptech.glide.module.AppGlideModule {
<init>(...);
}
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
*** rewind();
}

# Uncomment for DexGuard only
#-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
45 changes: 45 additions & 0 deletions android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep interface com.ddangddangddang.data.* { *; }
-keep class com.ddangddangddang.data.model.** { *; }
-keep class com.ddangddangddang.data.remote.** { *; }

-keep interface com.ddangddangddang.android.* { *; }
# Kakao SDK
-keep interface com.kakao.sdk.**.*Api
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter
# https://github.com/square/okhttp/pull/6792
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**
# firebase-crashlytics
-keepattributes SourceFile,LineNumberTable # Keep file names and line numbers.
-keep public class * extends java.lang.Exception # Optional: Keep custom exceptions.
# firebase-analytics
-keep public class com.google.firebase.analytics.FirebaseAnalytics {
public *;
}
-keep public class com.google.android.gms.measurement.AppMeasurement {
public *;
}

46 changes: 46 additions & 0 deletions android/app/retrofit2.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and
# EnclosingMethod is required to use InnerClasses.
-keepattributes Signature, InnerClasses, EnclosingMethod

# Retrofit does reflection on method and parameter annotations.
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations

# Keep annotation default values (e.g., retrofit2.http.Field.encoded).
-keepattributes AnnotationDefault

# Retain service method parameters when optimizing.
-keepclassmembers,allowshrinking,allowobfuscation interface * {
@retrofit2.http.* <methods>;
}

# Ignore JSR 305 annotations for embedding nullability information.
-dontwarn javax.annotation.**

# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath.
-dontwarn kotlin.Unit

# Top-level functions that can only be used by Kotlin.
-dontwarn retrofit2.KotlinExtensions
-dontwarn retrofit2.KotlinExtensions$*
#-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>

# Keep inherited services.
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface * extends <1>

# With R8 full mode generic signatures are stripped for classes that are not
# kept. Suspend functions are wrapped in continuations where the type argument
# is used.
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation

# R8 full mode strips generic signatures from return types if not kept.
-if interface * { @retrofit2.http.* public *** *(...); }
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>

# With R8 full mode generic signatures are stripped for classes that are not kept.
-keep,allowobfuscation,allowshrinking class retrofit2.Response
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.ddangddangddang.android

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith

/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.ddangddangddang.android", appContext.packageName)
}
}
Loading
Loading