-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #276 from mash-up-kr/develop
[배포] v 1.1.0 개발 완료
- Loading branch information
Showing
42 changed files
with
506 additions
and
362 deletions.
There are no files selected for viewing
This file contains 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 |
---|---|---|
@@ -1,5 +1,99 @@ | ||
# gabbangzip-Android | ||
가자빵집으로 Android Repository | ||
# 📸 PIC | ||
|
||
### Shortcuts | ||
- [Code Convention](https://github.com/mash-up-kr/gabbangzip-Android/wiki/Code-Convention) | ||
<img src="https://github.com/user-attachments/assets/b8330514-e473-4087-b724-d3b67641426e"/> | ||
|
||
**그날의 추억을 기록하는 우리만의 네컷사진** | ||
|
||
- 원하는 친구들과 그룹방을 만들어요 | ||
- 함께 찍은 사진들을 투표해요 | ||
- 베스트 사진으로 네컷 사진이 만들어져요 | ||
|
||
# 💾 App Download | ||
|
||
<a href="https://play.google.com/store/apps/details?id=com.mashup.gabbangzip.sharedalbum"> | ||
<img src="https://user-images.githubusercontent.com/63157395/211233100-2f255c00-3336-4125-b5da-2fd935e40b5a.png" width="101px" /> | ||
</a> | ||
|
||
# 💻 Contributor | ||
|
||
<div align="center"> | ||
<table style="font-weight : bold"> | ||
<tr> | ||
<td align="center"> | ||
<a href="https://github.com/sooziini"> | ||
<img alt="sooziini" src="https://avatars.githubusercontent.com/sooziini " width="100" /> | ||
</a> | ||
</td> | ||
<td align="center"> | ||
<a href="https://github.com/SEO-J17"> | ||
<img alt="SEO-J17" src="https://avatars.githubusercontent.com/SEO-J17" width="100" /> | ||
</a> | ||
</td> | ||
<td align="center"> | ||
<a href="https://github.com/oreocube"> | ||
<img alt="oreocube" src="https://avatars.githubusercontent.com/oreocube" width="100" /> | ||
</a> | ||
</td> | ||
<td align="center"> | ||
<a href="https://github.com/JeonK1"> | ||
<img alt="JeonK1" src="https://avatars.githubusercontent.com/JeonK1" width="100" /> | ||
</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td align="center">박수진</td> | ||
<td align="center">서정우</td> | ||
<td align="center">주지혜</td> | ||
<td align="center">전계원</td> | ||
</tr> | ||
</table> | ||
</div> | ||
|
||
# 🎨 Structure | ||
|
||
<img src=https://github.com/user-attachments/assets/2678bf88-461d-436a-abb8-f3406313db45/> | ||
|
||
+ Claen Architecture와 MVVM 패턴을 적용하여 프로젝트를 구성했습니다 | ||
+ 가이드에 따라 App, Data, Domain, Presentation 모듈로 분리하고 다음 그림과 같은 의존성을 가지도록 설계했습니다. | ||
|
||
# 🛠 Tech & Library | ||
|
||
+ Target SDK Level 34 | ||
+ Min SDK Level 26 | ||
+ Kotlin 1.9.10 | ||
|
||
| 구분 | 내용 | | ||
|-------------------------|-----------------------------------------------------------------------| | ||
| Architecture | Clean Architecture | | ||
| DesignPattern | MVVM | | ||
| Jetpack | Compose, Lifecycle, Navigation, EncryptedSharedPreferences, ViewModel | | ||
| Network | Retrofit, OkHttp, Moshi | | ||
| Asynchronous Processing | Coroutine, Flow | | ||
| Dependency Injection | Hilt | | ||
| Third Party Library | Coil-Compose, Kakao SDK, Firebase Cloud Messaging | | ||
| Other Tool | Figma | | ||
|
||
# ✨ Features | ||
|
||
<div> | ||
<img | ||
width="23%" | ||
alt="image" | ||
src="https://github.com/user-attachments/assets/344b519d-af89-4ea5-9a0d-890aeab7114e" | ||
/> | ||
<img | ||
width="23%" | ||
alt="image" | ||
src="https://github.com/user-attachments/assets/e1d161ad-1e12-487e-afe8-3061f2f46ec8" | ||
/> | ||
<img | ||
width="23%" | ||
alt="image" | ||
src="https://github.com/user-attachments/assets/80bdc49e-8b49-4432-b59e-4ae5fb83a04a" | ||
/> | ||
<img | ||
width="23%" | ||
alt="image" | ||
src="https://github.com/user-attachments/assets/f0c99971-3a71-473d-820e-1dbd9df5cac3" | ||
/> | ||
</div> |
This file contains 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 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
72 changes: 72 additions & 0 deletions
72
...main/java/com/mashup/gabbangzip/sharedalbum/presentation/ui/common/PicLoadingIndicator.kt
This file contains 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,72 @@ | ||
package com.mashup.gabbangzip.sharedalbum.presentation.ui.common | ||
|
||
import androidx.compose.animation.animateColorAsState | ||
import androidx.compose.animation.core.LinearEasing | ||
import androidx.compose.animation.core.animateFloat | ||
import androidx.compose.animation.core.infiniteRepeatable | ||
import androidx.compose.animation.core.rememberInfiniteTransition | ||
import androidx.compose.animation.core.tween | ||
import androidx.compose.foundation.layout.Box | ||
import androidx.compose.foundation.layout.fillMaxSize | ||
import androidx.compose.material3.CircularProgressIndicator | ||
import androidx.compose.runtime.Composable | ||
import androidx.compose.runtime.getValue | ||
import androidx.compose.ui.Alignment | ||
import androidx.compose.ui.Modifier | ||
import androidx.compose.ui.tooling.preview.Preview | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.Conifer | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.Coral | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.Dandelion | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.Lavender | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.MagentaPink | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.Malibu | ||
import com.mashup.gabbangzip.sharedalbum.presentation.theme.MayaBlue | ||
|
||
private val colorList = listOf( | ||
Conifer, | ||
MayaBlue, | ||
MagentaPink, | ||
Lavender, | ||
Coral, | ||
Dandelion, | ||
Malibu, | ||
) | ||
|
||
@Composable | ||
fun PicLoadingIndicator(modifier: Modifier, isVisible: Boolean) { | ||
if (isVisible) { | ||
val infiniteTransition = rememberInfiniteTransition(label = "InfiniteTransition") | ||
val transition = infiniteTransition.animateFloat( | ||
initialValue = 0f, | ||
targetValue = 1f, | ||
animationSpec = infiniteRepeatable( | ||
animation = tween(durationMillis = 10_000, easing = LinearEasing), | ||
), | ||
label = "InfiniteTransition", | ||
) | ||
val currentColorIndex = ((transition.value * colorList.size).toInt() % colorList.size) | ||
val loadingColor by animateColorAsState( | ||
targetValue = colorList[currentColorIndex], | ||
animationSpec = tween(durationMillis = 1000, easing = LinearEasing), | ||
label = "LoadingAnimation", | ||
) | ||
|
||
Box( | ||
modifier = modifier, | ||
) { | ||
CircularProgressIndicator( | ||
modifier = Modifier.align(Alignment.Center), | ||
color = loadingColor, | ||
) | ||
} | ||
} | ||
} | ||
|
||
@Preview | ||
@Composable | ||
private fun PicLoadingScreenPreview() { | ||
PicLoadingIndicator( | ||
modifier = Modifier.fillMaxSize(), | ||
isVisible = true, | ||
) | ||
} |
Oops, something went wrong.