-
Notifications
You must be signed in to change notification settings - Fork 0
Coding Detail Convention
Dongmin Park edited this page Jun 18, 2024
·
3 revisions
Intent(this, ListActivity::class.java).apply {
putExtra(EXTRA_CATEGORY, viewModel.categoryId)
startActivity(this)
}
finish()
여러 스코프 함수들의 차이점을 알고 적절하게 사용하기
!! 는 안됩니다!! 코드에서 보이면 뿅망치 두대 때릴거에요
?:를 쓰기~
꼭꼭!!!
정말정말 중요한 친구입니다!!!
상황에 맞게 용도에 맞게 잘 쓰길 바래용
재활용하기 위한 기초입니다!! 확장성을 챙겨줘요
파라미터가 명세서!!!! 라고 생각…. 확실하진 않아요….. 전 그렇게 생각해요….
@Composable
fun RankingScreen(
isCurrent: Boolean,
type: String,
rankingListUiModel: RankingListUiModel,
nickname: String,
refreshing: Boolean = false,
onRefresh: () -> Unit = {},
onClickBack: () -> Unit = {},
onClickUser: (RankerNavArg) -> Unit = {}
) {...}
Compose의 최대 장점은 컴포넌트화라고 생각합니다!!
해당 모든 화면은 그 화면에서 다 구현하는 것이 아니라 컴포넌트의 모음입니다!!
꼭 통짜로 UI를 만들지 말고 컴포넌트로 만들어버립시다 🙂
여러 피쳐에서 공통으로 쓰는건 core-designsystem
에 모아두고,
한 피쳐에서 여러번 쓰는건 피쳐 내부 component
에 모아두고,
해당 화면에만 쓰는건 밑으로 쭉쭉 놔둬도 돼용~
자신이 만든 컴포넌트가 아니라면 다른 사람은 이해하기 힘들어요!!
무조건 Preview를 만들어 어떻게 사용되는지 볼 수 있게 해줍시다
List는 리컴포지션의 대상이 됩니다.
ImmutableList를 활용해봐용
Link 참고해주세용
더블콜론(::)을 사용해봅시다!
람다 함수도 리컴포지션의 대상입니다 :)
// bad
onRefresh = { partRankingViewModel.onRefresh() },
onClickBack = { resultNavigator.navigateBack() },
// good
onRefresh = partRankingViewModel::onRefresh,
onClickBack = resultNavigator::navigateBack,
물론 개발시에는 써도 돼요. 하지만, 릴리즈에선 포함되어있으면 안돼요.
그렇기 때문에 develop 브랜치에 합쳐져선 안되겠죠??
PR을 올릴때는 다 지워주세요 :)
아 물론 계속해서 확인해야하는 데이터는 Timber로 나타내면 됩니다!!
ex) 서버 통신 결과
Debug모드에서만 보이고 Release에서 안보이게 작동하도록 설정해둘거에용