스팀 앱 개발기 #145 - 개발 계획: Jetpack Compose 마이그레이션

개발 계획: Jetpack Compose 마이그레이션

No. 145
2026. 04. 21 (화) | Written by @dorian-mobileapp

기존 레거시 코드로부터 Jetpack Compose로 마이그레이션 작업은 계속 진행 중입니다. 작업이 얼마나 남았는지 클로드에 문의한 결과, 내용은 아래와 같습니다. 각 단계별로 진행할 예정이며, 현재 1단계 진행 중입니다.

추가로 아래 내용을 검토해 보니 수동으로 마이그레이션 작업은 사실상 어려운 내용이 아닌가 생각합니다. 지금은 AI의 도움을 받는 것이 현실적입니다.


Jetpack Compose 마이그레이션 현황

📊 요약

범주총 개수Compose 완료진행 중레거시
Activity6개3개0개3개
Fragment7개3개4개0개
Adapter2개0개0개2개
XML 레이아웃20개--4개 사용 중

✅ Compose 완료

파일비고
Main2Activity.ktsetContent {} 사용
PostImagePagerActivity.ktComposeView 기반
ProfileImageActivity.ktComposeView 기반
PostContentFragment.kt완전 구현됨
WalletFragment.kt완전 구현됨
AccountDetailsFragment.kt완전 구현됨

⚠️ 진행 중 (ComposeView는 사용 중이지만 setContent {} 비어있음)

이 Fragment들은 Composable 함수는 이미 만들어져 있지만, Main2Activity 전환에 따라 Fragment 자체가 삭제 예정인 상태로 보입니다.

FragmentComposable 구현 상태
TagsFragment.ktTagsScreen() 구현 완료
ProfileFragment.ktProfileScreen() 구현 완료 (// This class will be deleted)
PostListFragment.ktPostListScreen() 구현 완료
AccountHistoryFragment.ktAccountHistoryScreen() 구현 완료

❌ 레거시 (마이그레이션 필요)

파일패턴비고
MainActivity.ktDataBinding + XML NavigationMain2Activity로 대체 예정
SplashActivity.ktsetContentView(R.layout.activity_splash)단순 화면
VoteListActivity.ktDataBinding + RecyclerViewVoteListAdapter 포함
VoteListAdapter.ktRecyclerView.AdapterLazyColumn으로 변환 필요
PostItemListAdapter.ktRecyclerView.AdapterMainActivity에서만 사용 중으로 보임
BaseActivity.ktDataBindingUtil.setContentView()MainActivity/VoteListActivity가 의존

🎯 권장 마이그레이션 순서

`1단계 (완료 예정인 Fragment 정리)
→ TagsFragment, PostListFragment, AccountHistoryFragment 삭제
(Composable은 이미 구현됨, Fragment 껍데기만 남은 상태)

2단계 (VoteList 마이그레이션)
→ VoteListActivity → Compose Activity로 변환
→ VoteListAdapter → LazyColumn으로 교체

3단계 (SplashActivity 마이그레이션)
→ setContentView → setContent {}로 변환

4단계 (MainActivity 제거)
→ Main2Activity로 완전 전환 후 MainActivity/BaseActivity/BaseFragment 삭제
→ PostItemListAdapter, XML 레이아웃 파일 정리`


핵심 결론: Fragment들은 대부분 Composable로 구현이 끝나있고, 실질적으로 남은 레거시의 핵심은 VoteListActivity(RecyclerView)MainActivity(DataBinding + Fragment Navigation) 입니다. 이 두 곳이 마이그레이션의 주요 대상입니다.


지난 스팀 앱 개발기


Layout provided by Steemit Enhancer hommage by ayogom

Posted using SteemX

Sort:  

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

banner.jpg