스팀 앱 개발기 #151 - 개발 완료: Compose 마이그레이션 연장선
개발 완료: Compose 마이그레이션 연장선
No. 151
2026. 05. 02 (토) | Written by @dorian-mobileapp
추가로 진행 중인 리팩토링 건입니다. 당분간 이러한 작업이 더 계속됩니다.
Compose 마이그레이션 연장선 요약
작업 개요
ComposeView + setContentView() 하이브리드 방식으로 남아있던 두 Activity를 setContent {} 방식으로 전환했습니다.
변경 파일 목록
| 파일 | 변경 내용 |
|---|---|
PostImagePagerActivity.kt | AppCompatActivity → ComponentActivity 전환, setContent {} 적용 |
ProfileImageActivity.kt | AppCompatActivity → ComponentActivity 전환, setContent {} 적용 |
ProfileImageViewModel.kt | 삭제 (미사용 고아 클래스) |
PostImagePagerActivity 변경 내용
| 항목 | 변경 전 | 변경 후 |
|---|---|---|
| 부모 클래스 | AppCompatActivity | ComponentActivity |
| UI 설정 | setContentView(ComposeView(...)) | setContent {} |
| ViewModel | ViewModelProvider(this).get(...) | by viewModels() |
| Intent 처리 | Composable 내부 | onCreate로 이동 |
| 페이지 제목 | supportActionBar?.title | CustomTopAppBar + mutableStateOf 동적 타이틀 |
| 배경색 | 흰색 (기본값) | 검은색 (Color.Black) |
| 이미지 정렬 | 정렬 없음 | Box(contentAlignment = Alignment.Center) |
ProfileImageActivity 변경 내용
| 항목 | 변경 전 | 변경 후 |
|---|---|---|
| 부모 클래스 | AppCompatActivity | ComponentActivity |
| UI 설정 | setContentView(ComposeView(...)) | setContent {} |
| ViewModel | ViewModelProvider(this).get(...) | 제거 (Composable에서 미사용) |
| Intent 처리 | Composable 내부 | onCreate로 이동 |
| 계정명 제목 | supportActionBar?.title | CustomTopAppBar(title = "@${account}") |
ProfileImageViewModel 삭제 이유
ProfileImageActivity 변경으로 ViewModel 참조가 사라졌고, ProfileImageScreen은 원래부터 ViewModel 없이 account: String을 직접 파라미터로 받는 구조였으므로 삭제했습니다.
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