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

[REFACTOR/#188] 코드 리펙토링 및 navigate 확장함수 구현 #190

Merged
merged 13 commits into from
Jan 25, 2024

Conversation

chattymin
Copy link
Member

⛳️ Work Description

  • 전체적인 코드 리펙토링
  • 코드 간략화
  • navigate 확장함수 구현 및 적용
inline fun <reified T : Activity> Activity.navigateToScreen(
    flags: List<Int>? = null,
    addFlags: Boolean = true,
    isFinish: Boolean = true,
) {
    Intent(this, T::class.java).apply {
        if (addFlags) {
            addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
            flags?.map {
                addFlags(it)
            }
        }
        startActivity(this)
    }
    if (isFinish) {
        finish()
    }
}

📢 To Reviewers

  • 위 코드를 활용하면 코드 중복을 줄일 수 있습니다. 기본적으로 ClearTop flag는 적용되어있습니다.
  • flag를 하나도 없이 보내고 싶다면 addFlags를 false로 수정해주시기 바랍니다.
  • 추가적으로 적용하고자 하는 flag가 있다면 list에 담아서 매개변수로 넘겨주면 됩니다.
  • fisnish가 기본적으로 추가되지만, 추가되지 않아야 하는 뷰에서는 isFinish 변수에 false를 담아서 주시면 됩니다 :)

@chattymin chattymin added 동민 🐥 ADD ➕ 부수적인 코드 추가 및 라이브러리 추가, 새로운 파일 생성 REFACTOR ♻️ 전면 수정 labels Jan 24, 2024
@chattymin chattymin self-assigned this Jan 24, 2024
Copy link
Member

@leeeyubin leeeyubin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드가 이렇게 간결해질 수 있구나,,,를 깨달으며,,,입이 안 다물어져요,,,

Comment on lines +112 to +117
navigateToScreen<DashBoardActivity>(
listOf(
Intent.FLAG_ACTIVITY_NEW_TASK,
Intent.FLAG_ACTIVITY_CLEAR_TASK,
),
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 이렇게 사용하면 되는군요!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와.........................미쳤다...............

Comment on lines +85 to +102
inline fun <reified T : Activity> Activity.navigateToScreen(
flags: List<Int>? = null,
addFlags: Boolean = true,
isFinish: Boolean = true,
) {
Intent(this, T::class.java).apply {
if (addFlags) {
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
flags?.map {
addFlags(it)
}
}
startActivity(this)
}
if (isFinish) {
finish()
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

진짜,,,최고다,,,,,,,,,,,,

@Marchbreeze Marchbreeze changed the title [REFACTOR/#188] 코드 리펙토링 및 navigete 확장함수 구현 [REFACTOR/#188] 코드 리펙토링 및 navigate 확장함수 구현 Jan 25, 2024
Copy link
Member

@Marchbreeze Marchbreeze left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확장함수 말안되네 진짜 ,,, 당신멋져

Comment on lines 127 to 131
private fun observeCheckedState(checkedStateFlow: Flow<Boolean>, textView: TextView) {
checkedStateFlow.flowWithLifecycle(lifecycle).onEach {
textView.setTextAppearance(setFont(it))
}.launchIn(lifecycleScope)
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checkedStateFlow 네이밍 보다는, isFirstChecked의 형태를 유지하는 파라미터면 더 깔끔할 것 같다는 생각!
동일한 느낌으로, {} 안에도 it 대신 네이밍을 부여해준다면 이후 유지보수할때 코드를 이해하기 더 쉬워질듯합니닷

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이부분은 미처 신경쓰지 못했었네요! 해당 함수의 파라미터의 이름을 아규먼츠의 네이밍과 비슷하게 해두는게 좋은 방식인 것 같습니다! 그래서 checkedStateFlow -> isCheckedState로 네이밍 변경하였습니다.

it은 안써야지.. 하면서도 계속 쓰고있네요 ㅋㅋㅋㅋ isChecked로 후딱 수정했습니다 :)

@chattymin chattymin merged commit 891a5c2 into develop Jan 25, 2024
1 check passed
Copy link
Contributor

@crownjoe crownjoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pr 설명도 넘 자세히 올려주어서 이해가 아주...쏙쏙.......미쳤따......이걸 왜 지금 봤지 진짜 대박
수고햇습니다요 👍👍👍👍👍

Comment on lines +112 to +117
navigateToScreen<DashBoardActivity>(
listOf(
Intent.FLAG_ACTIVITY_NEW_TASK,
Intent.FLAG_ACTIVITY_CLEAR_TASK,
),
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와.........................미쳤다...............

Comment on lines +85 to +100
inline fun <reified T : Activity> Activity.navigateToScreen(
flags: List<Int>? = null,
addFlags: Boolean = true,
isFinish: Boolean = true,
) {
Intent(this, T::class.java).apply {
if (addFlags) {
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
flags?.map {
addFlags(it)
}
}
startActivity(this)
}
if (isFinish) {
finish()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와...............

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ADD ➕ 부수적인 코드 추가 및 라이브러리 추가, 새로운 파일 생성 REFACTOR ♻️ 전면 수정 동민 🐥
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[REFACTOR] Onboarding, Tendency 뷰 / 전체적인 리펙토링
4 participants