-
Notifications
You must be signed in to change notification settings - Fork 0
[Feature] 앱 초기 튜토리얼 화면 #29
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
Merged
Merged
Changes from 21 commits
Commits
Show all changes
149 commits
Select commit
Hold shift + click to select a range
55aeb58
feat: 친구 프로필 Service 세팅
rhkrwngud445 783ba62
refactor: ContactFrequency -> ContactFrequencyLevel 수정
rhkrwngud445 83815a3
feat: repository API 호출 로직 구성
rhkrwngud445 061043f
refactor: friendSummary 모델 세부 패키지 구성
rhkrwngud445 7492ab0
feat: friendProfileScreen 상단 상태바 패딩 적용
rhkrwngud445 d2cc816
chore: string res 정리
rhkrwngud445 4979f35
feat: dropdown 구성
rhkrwngud445 6d55bbb
feat: 프로필 정보 조회 API 연동
rhkrwngud445 3dfd47d
feat: 전화 및 문자 화면 이동 로직 구성
rhkrwngud445 e69e043
docs: res 사용하는 model TODO 작성
rhkrwngud445 7502dae
refactor: remindInterval 서버와 네이밍을 똑같이 수정
rhkrwngud445 f76e95c
refactor: relation 타입을 enum으로 변경
rhkrwngud445 19df3f3
feat: 프로필 정보 데이터 연동
rhkrwngud445 3d793b5
feat: 챙김 기록 데이터 연동
rhkrwngud445 7933609
fix: 챙김 기록 Entity 직렬화 적용
rhkrwngud445 7e718b6
feat: 챙김 및 친구 삭제 데이터 연동
rhkrwngud445 5263fb3
feat: Friend Navigation 인자 전달을 위한 Serializable 적용
rhkrwngud445 431ccc2
feat: parcelize 의존성 추가
rhkrwngud445 04d6d36
feat: Route 인자 전달을 위한 serializable, pacelable 적용
rhkrwngud445 c25a8eb
feat: friend 파라미터 전달 적용
rhkrwngud445 e066210
feat: 정보 수정 이벤트 적용
rhkrwngud445 0074695
feat: 정보 수정 API 연동
rhkrwngud445 85a40ee
feat: 이전 화면 데이터 적용
rhkrwngud445 e5fd302
fix: navigation imageUrl 인코딩 적용
rhkrwngud445 83465cb
feat: 화면이 길어질 경우 스크롤 적용
rhkrwngud445 acdd13a
feat: 수정시 다이얼로그 추가
rhkrwngud445 9819c4c
fix: 친구 관계 버튼 클릭 포인트 수정
rhkrwngud445 79b504f
fix: 챔김순서 최신순으로 수정
rhkrwngud445 123091c
refactor: string res 분리
rhkrwngud445 146331b
feat: 스플래쉬 화면 구현
stopstone c3f5233
feat: 로그인 상태 확인 로직 구현
stopstone fa77703
feat: 앱 아이콘 변경
stopstone c25aa6b
refactor: img_bg.png 이미지 dpi별 drawable 분리
stopstone 1ee5d34
refactor: 스플래시 화면 ViewModel 로직 수정
stopstone 9b25c62
feat: 온보딩 버튼 컴포넌트 추가
stopstone 172e602
feat: 온보딩 페이지 인디케이터 UI 구현
stopstone be8479c
feat: 온보딩 페이지 모델 구현
stopstone 61d1fd4
feat: 온보딩 화면 구현
stopstone 22c741b
feat: 온보딩 네비게이션 설정
stopstone 717b0d4
feat: 온보딩 페이지 이미지 추가
stopstone ad971ef
feat: 온보딩 화면 이미지 추가
stopstone c4ff3c9
feat: 온보딩 UI 이미지 영역 수정
stopstone 262ded3
feat: 온보딩 페이지 백그라운드 구성
stopstone 45513a1
feat: 온보딩 배경 추가
stopstone 7768d8f
refactor: 불필요한 패딩 제거
stopstone 846bbce
feat: 온보딩 백그라운드 색상 변경
stopstone a053f43
refactor: OnboardingScreen UI 레이아웃 조정
stopstone 18af35b
refactor: AnnotatedString.Builder 확장 함수 추가
stopstone 037f6d3
feat: DataStore 분리 및 Qualifier 적용
stopstone ffc32db
feat: 온보딩 DataStore 추가
stopstone 0e3ff5e
feat: 온보딩 완료 상태 저장 로직 추가
stopstone 98a8d85
feat: 온보딩 버튼 로딩 상태 추가
stopstone fa5cadc
feat: 온보딩 화면 UI 상태 및 사이드 이펙트 처리
stopstone 39d462b
fix: delete 엔드포인트 수정
rhkrwngud445 c9c6d8d
fix: ci 문법 수정
rhkrwngud445 25f2f20
feat: 온보딩 버튼 텍스트 stirng.xml 리소스 추가
stopstone 22ec755
feat: 온보딩 레포지토리 추가 및 ViewModel 연동
stopstone a99de45
refactor: 온보딩 페이지 데이터 - remember로 성능 최적화
stopstone 2ae7148
refactor: 온보딩 Preferences 키 상수화
stopstone 1fa484d
refactor: 불필요한 코드 제거
stopstone 508f2d5
refactor: 온보딩 페이지 데이터 모델 변경
stopstone 5845e24
refactor: 디자인 가이드에 맞게 텍스트 수정
stopstone 588a6a3
feat: Color.kt 온보딩 배경 장식 색상 추가
stopstone 7360949
refactor: 불필요한 import문 제거
stopstone 7e3f7b3
refactor: string res 적용
rhkrwngud445 a42d27a
refactor: 연락 빈도 매직넘버 처리
rhkrwngud445 90ed514
fix: context -> stringres 수정
rhkrwngud445 9bfdb65
refactor: dayOfWeek enum 적용
rhkrwngud445 ea1c634
fix: 네비게이션바 패딩 적용
rhkrwngud445 ea1bdae
fix: records isEmpty 상태를 통한 화면 상태 관리하도록 수정
rhkrwngud445 5b0a186
feat: 친구 프로필 Service 세팅
rhkrwngud445 369fd4d
refactor: ContactFrequency -> ContactFrequencyLevel 수정
rhkrwngud445 9a66d1a
feat: repository API 호출 로직 구성
rhkrwngud445 2891d1d
refactor: friendSummary 모델 세부 패키지 구성
rhkrwngud445 5119ed8
feat: friendProfileScreen 상단 상태바 패딩 적용
rhkrwngud445 77ced7c
chore: string res 정리
rhkrwngud445 7bfb1a8
feat: dropdown 구성
rhkrwngud445 4f5e7af
feat: 프로필 정보 조회 API 연동
rhkrwngud445 ccd2f94
refactor: conflict 수정
rhkrwngud445 bf10b44
docs: res 사용하는 model TODO 작성
rhkrwngud445 9e6673f
refactor: remindInterval 서버와 네이밍을 똑같이 수정
rhkrwngud445 22997cd
refactor: relation 타입을 enum으로 변경
rhkrwngud445 1c337d2
feat: 프로필 정보 데이터 연동
rhkrwngud445 46fd87f
feat: 챙김 기록 데이터 연동
rhkrwngud445 3367602
fix: 챙김 기록 Entity 직렬화 적용
rhkrwngud445 6056356
feat: 챙김 및 친구 삭제 데이터 연동
rhkrwngud445 d81ed8c
feat: Friend Navigation 인자 전달을 위한 Serializable 적용
rhkrwngud445 b802953
feat: parcelize 의존성 추가
rhkrwngud445 0127f09
feat: Route 인자 전달을 위한 serializable, pacelable 적용
rhkrwngud445 817ec40
feat: friend 파라미터 전달 적용
rhkrwngud445 010d395
feat: 정보 수정 이벤트 적용
rhkrwngud445 6eb87dd
feat: 정보 수정 API 연동
rhkrwngud445 77a1c65
feat: 이전 화면 데이터 적용
rhkrwngud445 b6dfdff
fix: navigation imageUrl 인코딩 적용
rhkrwngud445 5a0a84c
feat: 화면이 길어질 경우 스크롤 적용
rhkrwngud445 078384b
feat: 수정시 다이얼로그 추가
rhkrwngud445 7046065
fix: 친구 관계 버튼 클릭 포인트 수정
rhkrwngud445 f2807ab
fix: 챔김순서 최신순으로 수정
rhkrwngud445 80a0b87
refactor: string res 분리
rhkrwngud445 6e07d8e
fix: delete 엔드포인트 수정
rhkrwngud445 66c1ddd
refactor: string res 적용
rhkrwngud445 adfd5f4
refactor: 연락 빈도 매직넘버 처리
rhkrwngud445 258fa45
fix: context -> stringres 수정
rhkrwngud445 867511c
refactor: dayOfWeek enum 적용
rhkrwngud445 a77678d
fix: 네비게이션바 패딩 적용
rhkrwngud445 72acb6a
fix: records isEmpty 상태를 통한 화면 상태 관리하도록 수정
rhkrwngud445 c290de7
Merge remote-tracking branch 'origin/feat/#21-feat_친구_프로필_api_연동' int…
rhkrwngud445 eb93e25
feat: NearFrame 적용
rhkrwngud445 307da48
feat: NearDropdown 적용
rhkrwngud445 b53ebe6
Merge pull request #23 from near-Contact-Reminder/feat/#21-feat_친구_프로…
rhkrwngud445 cc908b4
Merge pull request #28 from near-Contact-Reminder/Fix]-CI-문법-수정
rhkrwngud445 32c70d8
Merge branch 'dev' into feat/splash-auto-login
stopstone 83e9aba
feat: 스플래시 화면 관련 파일 삭제
stopstone 90e1696
feat: 스플래시 화면 라이브러리 추가
stopstone d291865
feat: themes.xml에서 스플래시 화면 구현
stopstone 8fb3bfc
feat: 스플래시 로고 이미지 추가
stopstone a669663
feat: 스플래시 화면 API 적용 및 로그인 상태에 따른 화면 분기 처리
stopstone 6165bff
Merge pull request #26 from near-Contact-Reminder/feat/splash-auto-login
stopstone 2fac627
feat: 온보딩 버튼 컴포넌트 추가
stopstone ea7a2e1
feat: 온보딩 페이지 인디케이터 UI 구현
stopstone 0c22958
feat: 온보딩 페이지 모델 구현
stopstone c536bf4
feat: 온보딩 화면 구현
stopstone dcfd9ca
feat: 온보딩 네비게이션 설정
stopstone 3396b74
feat: 온보딩 페이지 이미지 추가
stopstone 48834cf
feat: 온보딩 화면 이미지 추가
stopstone d3c08c5
feat: 온보딩 UI 이미지 영역 수정
stopstone d58d85d
feat: 온보딩 페이지 백그라운드 구성
stopstone 9d1453b
feat: 온보딩 배경 추가
stopstone 7b59095
refactor: 불필요한 패딩 제거
stopstone fc190f0
feat: 온보딩 백그라운드 색상 변경
stopstone 1577a75
refactor: OnboardingScreen UI 레이아웃 조정
stopstone 1596dab
refactor: AnnotatedString.Builder 확장 함수 추가
stopstone 2834cc6
feat: DataStore 분리 및 Qualifier 적용
stopstone b749fcb
feat: 온보딩 DataStore 추가
stopstone c19802b
feat: 온보딩 완료 상태 저장 로직 추가
stopstone e798851
feat: 온보딩 버튼 로딩 상태 추가
stopstone 5cf9a2f
feat: 온보딩 화면 UI 상태 및 사이드 이펙트 처리
stopstone dc46da1
feat: 온보딩 버튼 텍스트 stirng.xml 리소스 추가
stopstone 66ac5a1
feat: 온보딩 레포지토리 추가 및 ViewModel 연동
stopstone 93ab1c3
refactor: 온보딩 페이지 데이터 - remember로 성능 최적화
stopstone b6577d0
refactor: 온보딩 Preferences 키 상수화
stopstone f30d851
refactor: 불필요한 코드 제거
stopstone 4d59fef
refactor: 온보딩 페이지 데이터 모델 변경
stopstone d8a4c99
refactor: 디자인 가이드에 맞게 텍스트 수정
stopstone cd47e30
feat: Color.kt 온보딩 배경 장식 색상 추가
stopstone b29e18c
refactor: 불필요한 import문 제거
stopstone 38045f7
feat: 앱 시작 시 온보딩 및 로그인 상태에 따른 화면 분기 처리
stopstone 25b7bd9
Merge remote-tracking branch 'origin/feat/onboarding-pages' into feat…
stopstone a35fba3
refactor: 온보딩 관련 중복 문자열 제거
stopstone File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
46 changes: 46 additions & 0 deletions
46
Near/app/src/main/java/com/alarmy/near/data/local/datastore/OnboardingPreferences.kt
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| package com.alarmy.near.data.local.datastore | ||
|
|
||
| import androidx.datastore.core.DataStore | ||
| import androidx.datastore.preferences.core.Preferences | ||
| import androidx.datastore.preferences.core.booleanPreferencesKey | ||
| import androidx.datastore.preferences.core.edit | ||
| import com.alarmy.near.data.di.OnboardingDataStore | ||
| import kotlinx.coroutines.flow.Flow | ||
| import kotlinx.coroutines.flow.map | ||
| import javax.inject.Inject | ||
| import javax.inject.Singleton | ||
|
|
||
| /** | ||
| * 온보딩 완료 상태를 관리하는 DataStore | ||
| * 최초 접속 여부를 확인하여 온보딩 화면 표시 여부를 결정 | ||
| */ | ||
| @Singleton | ||
| class OnboardingPreferences @Inject constructor( | ||
| @OnboardingDataStore private val dataStore: DataStore<Preferences>, | ||
| ) { | ||
| private val onboardingCompletedKey = booleanPreferencesKey("onboarding_completed") | ||
|
|
||
| /** | ||
| * 온보딩 완료 여부를 확인하는 Flow | ||
| * true: 온보딩 완료됨, false: 온보딩 미완료 | ||
| */ | ||
| val isOnboardingCompleted: Flow<Boolean> = dataStore.data.map { preferences -> | ||
| preferences[onboardingCompletedKey] ?: false | ||
| } | ||
|
|
||
| /** | ||
| * 온보딩 완료 상태를 저장 | ||
| */ | ||
| suspend fun setOnboardingCompleted(completed: Boolean) { | ||
| dataStore.edit { preferences -> | ||
| preferences[onboardingCompletedKey] = completed | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * 온보딩 완료 상태를 true로 설정 | ||
| */ | ||
| suspend fun markOnboardingAsCompleted() { | ||
| setOnboardingCompleted(true) | ||
| } | ||
| } | ||
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
37 changes: 37 additions & 0 deletions
37
Near/app/src/main/java/com/alarmy/near/data/repository/OnBoardingRepository.kt
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| package com.alarmy.near.data.repository | ||
|
|
||
| import kotlinx.coroutines.flow.Flow | ||
|
|
||
| /** | ||
| * 온보딩 관련 데이터를 관리하는 Repository 인터페이스 | ||
| * 온보딩 완료 상태의 저장, 조회, 확인 기능을 제공 | ||
| */ | ||
| interface OnBoardingRepository { | ||
|
|
||
| /** | ||
| * 온보딩 완료 여부를 확인하는 Flow | ||
| * true: 온보딩 완료됨, false: 온보딩 미완료 | ||
| */ | ||
| fun observeOnboardingStatus(): Flow<Boolean> | ||
|
|
||
| /** | ||
| * 온보딩 완료 상태를 저장 | ||
| * completed: 온보딩 완료 여부 | ||
| */ | ||
| suspend fun setOnboardingCompleted(completed: Boolean) | ||
|
|
||
| /** | ||
| * 온보딩을 완료로 표시 | ||
| */ | ||
| suspend fun markOnboardingAsCompleted() | ||
|
|
||
| /** | ||
| * 온보딩 완료 상태를 확인 | ||
| */ | ||
| suspend fun isOnboardingCompleted(): Boolean | ||
|
|
||
| /** | ||
| * 온보딩 상태를 초기화 (테스트용 또는 재온보딩용) | ||
| */ | ||
| suspend fun resetOnboardingStatus() | ||
| } |
37 changes: 37 additions & 0 deletions
37
Near/app/src/main/java/com/alarmy/near/data/repository/OnBoardingRepositoryImpl.kt
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| package com.alarmy.near.data.repository | ||
|
|
||
| import com.alarmy.near.data.local.datastore.OnboardingPreferences | ||
| import kotlinx.coroutines.flow.Flow | ||
| import kotlinx.coroutines.flow.first | ||
| import javax.inject.Inject | ||
| import javax.inject.Singleton | ||
|
|
||
| /** | ||
| * OnBoardingRepository의 구현체 | ||
| * OnboardingPreferences를 사용하여 온보딩 상태를 관리 | ||
| */ | ||
| @Singleton | ||
| class OnBoardingRepositoryImpl @Inject constructor( | ||
| private val onboardingPreferences: OnboardingPreferences, | ||
| ) : OnBoardingRepository { | ||
|
|
||
| override fun observeOnboardingStatus(): Flow<Boolean> { | ||
| return onboardingPreferences.isOnboardingCompleted | ||
| } | ||
|
|
||
| override suspend fun setOnboardingCompleted(completed: Boolean) { | ||
| onboardingPreferences.setOnboardingCompleted(completed) | ||
| } | ||
|
|
||
| override suspend fun markOnboardingAsCompleted() { | ||
| onboardingPreferences.markOnboardingAsCompleted() | ||
| } | ||
|
|
||
| override suspend fun isOnboardingCompleted(): Boolean { | ||
| return onboardingPreferences.isOnboardingCompleted.first() | ||
| } | ||
|
|
||
| override suspend fun resetOnboardingStatus() { | ||
| onboardingPreferences.setOnboardingCompleted(false) | ||
| } | ||
| } |
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
Oops, something went wrong.
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.
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.
Preference 키는
companion object에 상수로 정의하여 관리하는 것이 좋습니다. 이렇게 하면 키 문자열의 오타를 방지하고 여러 곳에서 재사용하기 용이합니다.onboardingCompletedKey를companion object로 옮기고 다른 곳에서도 참조하도록 수정하는 것을 고려해보세요.