스팀 앱 개발기 #163 - 개발 완료: 지갑 화면에 탭 도입 (잔액, 보낸 목록, 받은 목록)
개발 완료: 지갑 화면에 탭 도입 (잔액, 보낸 목록, 받은 목록)
거의 한달만에 포스트 올리네요. 한달에 1번씩이면 진도가 사실상 안 나가는 건데... 집안에 이런 저런 사정이 있다 보니 그리 됐습니다. 조금씩이라도 시간 내서 진행하려 합니다. 요즘 클로드로 진도 빼는 분들 계시던데, 저도 그렇게 하고 있습니다.
지갑 화면은 이전까지 잔액만 보여줬는데요. 이번에 보낸 목록, 받은 목록도 보여주는 기능을 구현했습니다. 각 화면은 탭에서 선택 가능합니다.
작업 내용
1. 탭 구조 도입
WalletTabInfo.kt (신규) — BALANCE("Balance"), SENT("Transfer\n(sent)"), RECEIVED("Transfer\n(received)")
WalletScreen.kt
SteemitWalletContent: 최상단 탭 바 + 선택된 탭 콘텐츠 구조로 변경. 선택 인덱스는rememberSaveable로 유지WalletTabRow:TagsSortTabRow와 동일한 방식(TabRow+SecondaryIndicator+tabIndicatorOffset). 선택 인덱스는 파라미터로 받도록 올림BalanceTabContent: 기존 지갑 카드 4종(Balances / Staking / Savings / Power Down)을 그대로 추출verticalScroll을 화면 호출부에서BalanceTabContent로 이동 — 탭 바가 함께 스크롤되어 사라지는 걸 방지
2. 명명 규칙 정리
readOutgoingTransfers(블록체인 관례 from=보낸 것)와 처음 요청하신 readTransferTo가 서로 반대 방향을 가리켜, 확인 후 Sent / Received로 통일했습니다. 탭 enum, ViewModel 함수, 컴포저블 이름 모두 이 기준을 따릅니다.
3. Sent / Received 내역
WalletViewModel — ReadOutgoingTransfersUseCase, ReadIncomingTransfersUseCase 주입, flowSentTransfersState / flowReceivedTransfersState, readSentTransfers(account) / readReceivedTransfers(account) 추가
WalletScreen — SentTransferTabContent, ReceivedTransferTabContent가 각각 LaunchedEffect(account)로 로딩 후 Loading / ErrorOrFailure / 리스트 분기. TransferList(LazyColumn, 행 배경 교차) → TransferItem이 isSent에 따라 to: 또는 from:을 보여주고 amount: / time: / memo:는 공통. 세 탭이 모두 구현되면서 임시 WalletTabPlaceholder는 삭제했습니다.
GitHub Commit
보다 자세한 코드는 아래 commit을 참고하세요.
지난 스팀 앱 개발기
- #162 - 개발 완료: 패키지 관련 오류 수정
- #161 - 개발 완료: 피임대 중인 스팀 파워 목록 화면 구현
- #160 - 개발 완료: 스팀 파워 임대 목록 화면 구현
- #159 - 개발 완료: 포스트의 댓글 정렬 오류 수정
- #158 - 개발 완료: 추가 개선 6, 7, 8, 9
- #157 - 개발 완료: 추가 개선 4, 5
- #156 - 개발 완료: 추가 개선 1, 2, 3
- #155 - 개발 계획: 추가 개선 적용
- #154 - 개발 완료: 테스트 코드 개선
- #153 - 개발 완료: Architecture 개선 작업
- #152 - 개발 완료: 레거시 의존성 제거 작업 요약
- #151 - 개발 완료: Compose 마이그레이션 연장선
- #1 ~ #150
안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.
안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!
Upvoted! Thank you for supporting witness @jswit.