스팀 앱 개발기 #152 - 개발 완료: 레거시 의존성 제거 작업 요약
개발 완료: 레거시 의존성 제거 작업 요약
No. 152
2026. 05. 05 (화) | Written by @dorian-mobileapp
이번 개발 사항 또한 추가로 진행 중인 리팩토링 건들 중 하나입니다. 이것으로 데이터 바인딩은 영원히 작별이네요. 추가 작업은 당분간 더 계속됩니다.
레거시 의존성 제거 작업 요약
작업 개요
Jetpack Compose 마이그레이션 완료 후 더 이상 사용되지 않는 레거시 코드와 의존성을 제거했습니다.
변경 파일 목록
| 파일 | 변경 내용 |
|---|---|
BaseViewModel.kt | RxJava, LiveData 제거 |
DataBindingUtil.kt | 삭제 |
dorian-steem-ui/build.gradle | 미사용 의존성 제거 |
gradle/libs.versions.toml | 미사용 버전/라이브러리 항목 제거 |
BaseViewModel.kt
CompositeDisposable(RxJava)과 liveThrowable(LiveData) 제거
// 변경 전
open class BaseViewModel: ViewModel() {
val compositeDisposable = CompositeDisposable()
val liveThrowable = MutableLiveData<Throwable>()
override fun onCleared() {
compositeDisposable.dispose()
super.onCleared()
}
}
// 변경 후
open class BaseViewModel : ViewModel()
| 항목 | 제거 이유 |
|---|---|
compositeDisposable | 어떤 ViewModel도 실제로 disposable을 추가하지 않음 |
liveThrowable | BaseFragment 삭제로 관찰자가 없음 |
DataBindingUtil.kt 삭제
@BindingAdapter("android:src")를 정의하는 파일이었으나, DataBinding XML 레이아웃 전체 삭제로 호출되지 않음
dorian-steem-ui/build.gradle
| 항목 | 변경 내용 | 이유 |
|---|---|---|
navigation.safeargs 플러그인 | 제거 | Fragment 네비게이션 삭제됨 |
dataBinding true | 제거 | DataBinding 레이아웃 전체 삭제됨 |
viewBinding true | 제거 | 사용처 없음 |
navigation.fragment.ktx | 제거 | Fragment 네비게이션 미사용 |
navigation.ui.ktx | 제거 | Fragment 네비게이션 미사용 |
constraintlayout | 제거 | XML 레이아웃 전체 삭제됨 |
swiperefreshlayout | 제거 | Material3 PullToRefreshBox로 대체됨 |
glide / glide.compiler | 제거 | UI 모듈 직접 미사용 |
flexbox | 제거 | 사용처 없음 |
compose.runtime.livedata | 제거 | observeAsState() 미사용 |
lifecycle.livedata.ktx | 제거 | LiveData 미사용 |
rxjava / rxandroid | implementation → testImplementation | 테스트 코드에서만 사용 |
gradle/libs.versions.toml
제거한 항목
| 섹션 | 제거 항목 |
|---|---|
[versions] | androidxConstraintlayout, androidxNavigation, androidxSwiperefreshlayout, googleFlexbox |
[libraries] | androidx-constraintlayout, androidx-lifecycle-livedata-ktx, androidx-navigation-fragment-ktx, androidx-navigation-ui-ktx, androidx-swiperefreshlayout, google-flexbox |
[bundles] | androidx 번들 전체 (어떤 모듈에서도 미사용) |
유지한 항목 (타 모듈에서 사용 중)
| 항목 | 사용 모듈 |
|---|---|
navigation-safeargs | dorian-android-ktx |
glide / glide-compiler | dorian-android-ktx |
androidx-compose-runtime-livedata | dorian-android-ktx |
rxjava / rxandroid | dorian-steem-domain, dorian-steem-data, dorian-steem-ui(test) |
retrofit-adapter-java | dorian-steem-data |
GitHub Commit
보다 자세한 코드는 아래 commit을 참고하세요.
지난 스팀 앱 개발기
Layout provided by Steemit Enhancer hommage by ayogom
안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.
안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!
Upvoted! Thank you for supporting witness @jswit.
🎉 Congratulations!
Your post has been upvoted by the SteemX Team! 🚀
SteemX is a modern, user-friendly and powerful platform built for the Steem community.
🔗 Visit us: www.steemx.org
✅ Support our work — Vote for our witness: bountyking5