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
// file: presentation/UserViewData.kt | |
import java.util.Calendar | |
/** | |
* UI에 표시하기 위해 가공된 데이터 클래스. | |
* Entity와 달리, UI에 필요한 형태로 포맷팅된 텍스트나 상태를 가집니다. | |
*/ | |
data class UserViewData( | |
val displayName: String, // 예: "이름: 홍길동" | |
val age: String, // 예: "나이: 30세" |
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
// file: data/UserDto.kt | |
import com.google.gson.annotations.SerializedName | |
/** | |
* 데이터 전송 객체 (Data Transfer Object). | |
* API 응답과 1:1로 매핑되는 모델입니다. 필드명이 다를 수 있습니다. | |
*/ | |
data class UserDto( | |
@SerializedName("user_id") val userId: String, | |
@SerializedName("full_name") val fullName: String, |
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
// file: domain/User.kt | |
/** | |
* 순수한 비즈니스 모델 (Entity). | |
* 앱의 핵심 도메인이며, 데이터베이스나 UI에 대한 정보를 전혀 모릅니다. | |
*/ | |
data class User( | |
val id: String, | |
val name: String, | |
val email: String, | |
val birthYear: Int |
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
@SuppressLint("CoroutineCreationDuringComposition", "UnnecessaryComposedModifier") | |
@Composable | |
fun Modifier.onExpose( | |
onVisibilityChanged: (Boolean) -> Unit, | |
exposeCriteriaSizeRate: Float = 1f, | |
): Modifier = composed { | |
this.onGloballyPositioned { layoutCoordinates -> | |
val boundsInWindow = layoutCoordinates.boundsInWindow() | |
val totalArea = layoutCoordinates.size.run { width * height }.toFloat() | |
val visibleArea = boundsInWindow.width * boundsInWindow.height |
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
{ | |
"data":{ | |
"recommandUpdateVersion" : "1.0.5", | |
"forceUpdateVersion" : "1.0.2", | |
"loggingSheetUrl":"19VAa-lorpfCz0GMrJT_RHTJtygiBwYnN65bnKw3FKoU", | |
"renderTrackingSheetUrl":"19VAa-lorpfCz0GMrJT_RHTJtygiBwYnN65bnKw3FKoU" | |
} | |
} |
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
{ | |
"responseData" : { | |
"screenName":"Home", | |
"viewContents" : [ | |
{ | |
"viewType" : "cashPromotionViewType", | |
"content" : { | |
"promotions" : [ | |
{ | |
"richContents" : [ |
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
{ | |
"responseData" : { | |
"screenName":"Home", | |
"viewContents" : [ | |
{ | |
"viewType" : "cashPromotionViewType", | |
"content" : { | |
"promotions" : [ | |
{ | |
"startIcon" : { |
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
{ | |
"responseData" : { | |
"screenName":"Home", | |
"viewContents" : [ | |
{ | |
"viewType" : "BigCarouselViewType", | |
"content" : { | |
"items": [ | |
{ | |
"primaryText" : "06:00", |
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
{ | |
"responseData" : { | |
"screenName":"Home", | |
"viewContents" : [ | |
{ | |
"viewType" : "oneDayWeatherViewType", | |
"content" : { | |
"primaryTitle" : "April 3 (Mon) 14", | |
"centerImgUrl" : "https://res.swm.com/2x/clear-sky.png", | |
"primaryContentText" : "Clear Sky", |
NewerOlder