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

Release/v3.0 #534

Merged
merged 76 commits into from
Nov 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
daae0dc
feat: 장소 업로드 기능 구현 (#301)
krrong Sep 10, 2023
96bebc9
fix: 위치관련 버그 수정 (#302)
krrong Sep 10, 2023
0884c25
refactor: branch 변경 (#311)
hyunji1203 Sep 11, 2023
d784a19
refactor: 네트워크 작업 코루틴으로 변경 (#312)
krrong Sep 11, 2023
0daa497
refactor: ViewModel이 Application을 참조하지 않도록 변경 (#307)
krrong Sep 13, 2023
697a88a
Delete .idea directory
briandr97 Sep 14, 2023
abc1f63
chore: 전체 gitignore 지정 (#320)
briandr97 Sep 14, 2023
a9f424a
refactor: Login 뷰에서 진행하는 네트워크 작업 코루틴으로 변경 (#328)
hyunji1203 Sep 14, 2023
db02356
refactor: my page뷰에서 진행하는 네트워크 작업 코루틴으로 변경 (#323)
krrong Sep 15, 2023
f68cd63
feat: Setting 뷰 구현 (#331)
hyunji1203 Sep 15, 2023
beec36e
fix: History 뷰의 리사이클러뷰 image 오류 문제 해결 (#317)
hyunji1203 Sep 15, 2023
ad1d4e9
refactor: Adventure 도메인에 해당하는 네트워크 작업 코루틴으로 변경 (#315)
briandr97 Sep 15, 2023
e426bba
feat: 장소 업로드 시 로딩 창이 뜨는 기능 구현 (#308)
krrong Sep 15, 2023
e2b53d3
fix: 마이페이지 글자 깨지는 오류 수정 (#333)
briandr97 Sep 16, 2023
9b9017e
feat: AdventureHistoryViewModel 테스트 추가 (#340)
hyunji1203 Sep 16, 2023
1f9031a
feat: 회원 탈퇴 기능 구현 (#335)
hyunji1203 Sep 16, 2023
552bbac
feat: RankViewModel 테스트 추가 (#337)
hyunji1203 Sep 17, 2023
4a4e465
feat: 로그아웃 기능 구현 (#341)
krrong Sep 17, 2023
a9ceb7a
feat: AdventureResultViewModel 테스트 추가 (#338)
hyunji1203 Sep 20, 2023
0702efa
refactor: 리포지터리에 의존성 주입 라이브러리 적용 (#349)
krrong Sep 20, 2023
7be936e
refactor: datasource 의존성 주입 라이브러리 사용 (#352)
krrong Sep 21, 2023
9f26d90
refactor: retrofit 의존성 주입 라이브러리 적용 (#353)
krrong Sep 21, 2023
6248573
feat: 자동로그인 기능 구현 및 스플래시 분리 (#346)
briandr97 Sep 23, 2023
3abfcfd
feat: UploadViewModel 테스트 추가 (#343)
krrong Sep 25, 2023
5712df8
refactor: 디자인 수정을 위한 공통 요소 추가 (#378)
krrong Oct 2, 2023
c6c3a09
fix: OkHttpClient의 interceptor를 AuthInterceptor로 변경 (#375)
krrong Oct 3, 2023
4e6ea20
Refactor/#391 모험 기록 뷰 디자인 변경 (#396)
hyunji1203 Oct 4, 2023
5336875
feat: 앱 강제 업데이트 기능 구현 (#400)
krrong Oct 4, 2023
43f02e5
refactor: 로그인 뷰 디자인 변경 (#399)
hyunji1203 Oct 4, 2023
ea8f791
refactor: 업로드 뷰 디자인 변경 (#381)
krrong Oct 4, 2023
b4f24c7
refactor: 설정 뷰 디자인 변경 (#397)
hyunji1203 Oct 4, 2023
b6da069
refactor: my page 뷰 디자인 변경 (#395)
krrong Oct 4, 2023
bc193f5
refactor: 모험 결과 뷰 디자인 변경 (#402)
hyunji1203 Oct 4, 2023
7f9b454
refactor: 게임 시작 뷰 디자인 변경 (#408)
briandr97 Oct 5, 2023
155846c
feat: 업로드 화면에서 뒤로가기 기능 구현 (#413)
krrong Oct 5, 2023
270f61f
feat: 게임 입장 시 사진이 먼저 뜨는 기능 구현 (#407)
krrong Oct 5, 2023
afddfa8
refactor: 버튼 디자인 일관성 있도록 변경 (#417)
hyunji1203 Oct 5, 2023
9d7aa5f
refactor: 스플래시 디자인 변경 (#416)
krrong Oct 5, 2023
c53876a
refactor: 인게임 뷰 디자인 변경 (#418)
briandr97 Oct 5, 2023
af684a6
refactor: NaagaAlertDialog와 ConfirmDialog 통일 (#421)
briandr97 Oct 5, 2023
5a08f44
refactor: 장소 등록 api 수정 (#369)
krrong Oct 5, 2023
9c5ceee
refactor: 인게임 버튼 drawable resource 변경 (#424)
briandr97 Oct 5, 2023
a4a877f
refactor: permission dialog 통일 (#426)
krrong Oct 5, 2023
0f9d18e
feat: 문의하기 기능 구현 (#427)
hyunji1203 Oct 5, 2023
0d6e7c7
feat: 버전코드 및 버전이름 수정 (#431)
krrong Oct 6, 2023
22b318b
hotfix: 액세스 토큰 리프레시 및 자동 로그인 로직 수정 (#438)
krrong Oct 9, 2023
de104d3
hotfix: 액세스 토큰 리프레시 로직 수정 (#447)
krrong Oct 11, 2023
19423e6
refactor: RetrofitFactory 삭제 (#440)
hyunji1203 Oct 11, 2023
c4acc17
refactor: 폰트 적용
hyunji1203 Oct 11, 2023
0404224
feat: 쪽지 관련 공통 코드 작성 (#450)
krrong Oct 12, 2023
7ec28ba
feat: 쪽지 전송 다이얼로그 구현 (#453)
krrong Oct 12, 2023
23dd669
fix: 저장소 권한 요청 및 알림 변경 (#458)
krrong Oct 14, 2023
2c5aefe
feat: 내 주변 100m 내의 쪽지들을 조회하는 기능 구현 (#480)
hyunji1203 Oct 16, 2023
4ced166
refactor: 에러처리 로직 변경 (#487)
krrong Oct 17, 2023
0161ce9
feat: 모험 기록 상세 페이지 뷰 구현 (#494)
krrong Oct 17, 2023
8f2b1fa
feat: 좋아요 싫어요 기능 제작 (#495)
briandr97 Oct 18, 2023
c154ca5
feat: 쪽지 등록기능 구현 (#478)
krrong Oct 18, 2023
0730010
feat: 쪽지 단건 조회 구현 (#493)
hyunji1203 Oct 18, 2023
e971ea7
fix: 뷰 위치 변경 (#504)
krrong Oct 18, 2023
f21b163
fix: 쪽지 뷰를 wrap_content로 변경 (#507)
krrong Oct 18, 2023
8f0784e
refactor: 주변의 쪽지 조회를 위한 서버 통신 주기 변경 (#509)
hyunji1203 Oct 18, 2023
ce64303
fix: 다이얼로그 중첩 현상 수정 (#511)
hyunji1203 Oct 18, 2023
72d0751
fix: 힌트 개수가 null로 보이는 버그 수정 (#517)
krrong Oct 19, 2023
19dc46b
feat: 앱 gradle 설정 변경 (#522)
krrong Oct 19, 2023
cd4ea35
chore: main 과 병합 충돌 해결
kokodak Oct 19, 2023
94960f7
chore: 백엔드 코드 삭제:
krrong Oct 19, 2023
e51baf6
chore: 안드로이드로부터 나아가
kokodak Oct 19, 2023
e398051
chore: 안드로이드 코드 최신화
dooboocookie Oct 31, 2023
9157abe
chore: 백엔드 코드 최신화
dooboocookie Oct 31, 2023
4312d90
Merge branch 'dev_backend' into release/v3.0_luca
dooboocookie Oct 31, 2023
81c518e
docs: README.md 작성 서비스 소개
dooboocookie Nov 2, 2023
b5ebf29
docs: 리드미 배치 수정
dooboocookie Nov 2, 2023
211a79b
chore: 중복 삭제
dooboocookie Nov 2, 2023
33a831b
chore: 이미지 비율 수정
dooboocookie Nov 2, 2023
8ba825e
chore: 오타 수정
dooboocookie Nov 2, 2023
f25ad92
chore: 이미지 그림자 추가
dooboocookie Nov 2, 2023
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
Binary file added .DS_Store
Binary file not shown.
9 changes: 0 additions & 9 deletions .idea/2023-naaga.iml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
![제목](etc/images/header.png)

## 💌 나아가로부터의 초대장이 도착했습니다

반복되는 인스타 피드를 보고, 게임을 하며 보내는 일상이 지루하지 않으시나요?
공부와 일에 치여 실내에서 보내는 시간이 많을 텐데요. 작은 화면 속을 벗어나 현실 세계의 경험을 해보고 싶지 않으신가요?

그런 당신을 ‘나아가’로 초대합니다.

## 🚶🏻 추리와 발걸음의 만남
나아가는 현실 세계를 누비며 진행되는 추리 게임입니다. 게임을 시작하면, 당신 주변 어딘가의 사진이 제공됩니다. 사진이 알쏭달쏭하여 그곳이 어딘지 알아맞히기 어렵겠지만, 우선 발걸음을 옮겨보세요.


<a href="https://play.google.com/store/apps/details?id=com.now.naaga&pcampaignid=web_share"><img src="etc/images/google play store.png"/></a>

![상세 페이지](etc/images/service%20intro.png)
11 changes: 9 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ android {
applicationId "com.now.naaga"
minSdk 28
targetSdk 33
versionCode 9
versionName "1.1.3"
versionCode 10
versionName "1.1.4"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "com.now.naaga.HiltTestRunner"
Expand All @@ -31,8 +31,15 @@ android {
}

buildTypes {
debug {
minifyEnabled true
firebaseCrashlytics {
mappingFileUploadEnabled false
}
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

ndk.debugSymbolLevel 'FULL'
Expand Down
11 changes: 6 additions & 5 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-feature
android:name="android.hardware.camera"
android:required="false" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />

<application
android:name=".NaagaApplication"
Expand Down Expand Up @@ -73,6 +70,10 @@
android:name=".presentation.setting.SettingActivity"
android:screenOrientation="portrait"
android:exported="false" />
<activity
android:name=".presentation.adventuredetail.AdventureDetailActivity"
android:screenOrientation="portrait"
android:exported="false" />
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ const val BEGIN_GO_SETTING = "GO_SETTING"
const val BEGIN_GO_UPLOAD = "GO_UPLOAD"
const val BEGIN_GO_MYPAGE = "GO_MYPAGE"

// LocationPermissionDialog
const val LOCATION_PERMISSION_OPEN_SETTING = "OPEN_SETTING"

// AdventureResultActivity
const val RESULT_RESULT_RETURN = "RESULT_RETURN"

Expand All @@ -23,7 +20,6 @@ const val ON_ADVENTURE_END_ADVENTURE = "END_ADVENTURE"

// UploadActivity
const val UPLOAD_OPEN_CAMERA = "OPEN_CAMERA"
const val UPLOAD_SET_COORDINATE = "SET_COORDINATE"

// CameraPermissionDialog
const val CAMERA_PERMISSION_OPEN_SETTING = "OPEN_SETTING"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.now.naaga.data.mapper

import com.now.domain.model.AdventureResult
import com.now.domain.model.AdventureResultType
import com.now.domain.model.type.AdventureResultType
import com.now.naaga.data.remote.dto.AdventureResultDto
import java.time.LocalDateTime

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.now.naaga.data.mapper

import com.now.domain.model.AuthPlatformType
import com.now.domain.model.PlatformAuth
import com.now.domain.model.type.AuthPlatformType
import com.now.naaga.data.remote.dto.PlatformAuthDto

fun PlatformAuthDto.toDomain(): PlatformAuth {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.now.naaga.data.mapper

import com.now.domain.model.letter.Letter
import com.now.naaga.data.remote.dto.LetterDto

fun LetterDto.toDomain(): Letter {
return Letter(
id = id,
player = player.toDomain(),
coordinate = coordinateDto.toDomain(),
message = message,
registerDate = registerDate,
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.now.naaga.data.mapper

import com.now.domain.model.letter.LetterPreview
import com.now.naaga.data.remote.dto.LetterPreviewDto

fun LetterPreviewDto.toDomain(): LetterPreview {
return LetterPreview(
id = id,
coordinate = coordinateDto.toDomain(),
)
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.now.naaga.data.mapper

import com.now.domain.model.Place
import com.now.domain.model.PreferenceState
import com.now.naaga.data.remote.dto.PlaceDto
import com.now.naaga.data.remote.dto.PostPlaceDto
import com.now.naaga.data.remote.dto.PreferenceStateDto
import com.now.naaga.data.remote.dto.post.PostPlaceDto

fun Place.toDto(): PlaceDto {
return PlaceDto(
Expand Down Expand Up @@ -33,3 +35,7 @@ fun PostPlaceDto.toDomain(): Place {
description = description,
)
}

fun PreferenceStateDto.toPreferenceState(): PreferenceState {
return PreferenceState.valueOf(this.type)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,11 @@ fun PlayerDto.toDomain(): Player {
score = totalScore,
)
}

fun Player.toDto(): PlayerDto {
return PlayerDto(
id = id,
nickname = nickname,
totalScore = score,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.now.naaga.data.remote.dto
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

// AdventureDto로 네이밍 수정해야됨. 일단 현재 AdventureDto를 지울 수 없어 이렇게 두었음
@Serializable
data class AdventureDto(
@SerialName("id")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.now.naaga.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class LetterDto(
@SerialName("id")
val id: Long,
@SerialName("player")
val player: PlayerDto,
@SerialName("coordinate")
val coordinateDto: CoordinateDto,
@SerialName("message")
val message: String,
@SerialName("registerDate")
val registerDate: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.now.naaga.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class LetterPreviewDto(
@SerialName("id")
val id: Long,
@SerialName("coordinate")
val coordinateDto: CoordinateDto,
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RefreshTokenDto(
@SerialName("refreshToken")
val refreshToken: String,
data class LikeCountDto(
@SerialName("placeLikeCount")
val placeLikeCount: Int,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.now.naaga.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class PreferenceDto(
@SerialName("id")
val id: Int,
@SerialName("playerId")
val playerId: Int,
@SerialName("placeId")
val placeId: Int,
@SerialName("type")
val type: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.now.naaga.data.remote.dto

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class PreferenceStateDto(
@SerialName("type")
val type: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.now.naaga.data.remote.dto.post

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class PostLetterDto(
@SerialName("message")
val message: String,
@SerialName("latitude")
val latitude: Double,
@SerialName("longitude")
val longitude: Double,
)
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.now.naaga.data.remote.dto
package com.now.naaga.data.remote.dto.post

import com.now.naaga.data.remote.dto.CoordinateDto
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.now.naaga.data.remote.retrofit.service

import com.now.naaga.data.remote.dto.LetterDto
import com.now.naaga.data.remote.dto.LetterPreviewDto
import com.now.naaga.data.remote.dto.post.PostLetterDto
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query

interface LetterService {
@POST("/letters")
suspend fun registerLetter(
@Body postLetterDto: PostLetterDto,
): Response<LetterDto>

@GET("/letters/nearby")
suspend fun getNearbyLetters(
@Query("latitude") latitude: Double,
@Query("longitude") longitude: Double,
): Response<List<LetterPreviewDto>>

@GET("/letters/{letterId}")
suspend fun getLetter(
@Path("letterId") letterId: Long,
): Response<LetterDto>

@GET("/letterlogs")
suspend fun getInGameLetters(
@Query("gameId") gameId: Long,
@Query("logType") logType: String,
): Response<List<LetterDto>>
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package com.now.naaga.data.remote.retrofit.service

import com.now.naaga.data.remote.dto.LikeCountDto
import com.now.naaga.data.remote.dto.PlaceDto
import com.now.naaga.data.remote.dto.PostPlaceDto
import com.now.naaga.data.remote.dto.PreferenceDto
import com.now.naaga.data.remote.dto.PreferenceStateDto
import com.now.naaga.data.remote.dto.post.PostPlaceDto
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.Multipart
import retrofit2.http.POST
Expand All @@ -31,4 +36,25 @@ interface PlaceService {
@PartMap postData: HashMap<String, RequestBody>,
@Part imageFile: MultipartBody.Part,
): Response<PostPlaceDto>

@GET("/places/{placeId}/likes/count")
suspend fun getLikeCount(
@Path("placeId") placedId: Int,
): Response<LikeCountDto>

@DELETE("/places/{placeId}/likes/my")
suspend fun deletePreference(
@Path("placeId") placedId: Int,
): Response<Unit>

@POST("/places/{placeId}/likes")
suspend fun postPreference(
@Path("placeId") placedId: Int,
@Body body: PreferenceStateDto,
): Response<PreferenceDto>

@GET("/places/{placeId}/likes/my")
suspend fun getMyPreference(
@Path("placeId") placedId: Int,
): Response<PreferenceStateDto>
}
Loading
Loading