스팀 앱 개발기 #160 - 개발 완료: 스팀 파워 임대 목록 화면 구현

개발 완료: 스팀 파워 임대 목록 화면 구현

No. 160
2026. 07. 10 (금) | Written by @dorian-mobileapp

대략 한달만에 포스트를 다시 쓰네요. 한동안 회사 일이 바빠서 개인 프로젝트는 조금씩 천천히 진행되고 있었습니다. 바쁜 일도 지나갔고, 작업도 완료되어 오늘 공유하게 되었습니다.

스팀 파워 임대 목록 화면을 구현했구요. 지갑 화면에서 이를 연결시켰습니다.


스크린샷

IMAGE 2026-07-10 18:22:44.jpg


작업 내용 요약

1. WalletScreen 개선

  • WalletStakingWalletStakingCard로 이름 변경
  • 임대 중 / 위임받은 항목에 눈 모양 아이콘 추가 및 클릭 시 각 목록 화면으로 이동
  • WalletScreenRoute 데이터 클래스의 account가 무시되던 버그 수정

2. API 연동 — condenser_api.get_vesting_delegations

레이어작업
DomainVestingDelegation 모델, ReadVestingDelegationsUseCase
DataGetVestingDelegationsParamsDTO/ResponseDTO, SteemService 메서드 추가, SteemRepositoryImpl 구현
TestSteemServiceTest 테스트 4개 추가

3. API 연동 — condenser_api.get_expiring_vesting_delegations

레이어작업
DomainExpiringVestingDelegation 모델, ReadExpiringVestingDelegationsUseCase
DataGetExpiringVestingDelegationsParamsDTO/ResponseDTO, SteemService 메서드 추가, SteemRepositoryImpl 구현

4. OutgoingDelegationListScreen 구현

  • 임대 중 / 회수 중 TabRow (검정색 텍스트 + 검정색 인디케이터 바)
  • 임대 중 탭: 검색 + 리스트, delegatee 텍스트 클릭 → ProfileScreen 이동
  • 회수 중 탭: 만료 시각(로컬 시간) + SP 표시
  • 빈 목록 시 안내 텍스트 표시
  • 탭 문자열 strings.xml 리소스화 ("Delegating" / "Expiring")

5. OutgoingDelegationListViewModel 구현

  • flowOutgoingDelegatingList + readDelegatingList()
  • flowExpiringDelegationList + readExpiringDelegationList()
  • init 블록에서 두 목록 동시 로드

6. DelegatedListScreen

  • 플레이스홀더 화면 추가 (향후 구현 예정)

7. 공통 컴포저블 추가

  • AccountSearchTextFieldui/compose/ 패키지에 분리하여 재사용 가능하게 구현 (VoteListActivity에도 적용 가능)

8. 유틸리티 추가

  • String.toRelativeTimeString() — UTC 타임스탬프를 "X분 전 / X시간 전 / X일 전 / X개월 전 / X년 전"으로 변환

9. 버그 수정 (SteemRepositoryImpl)

  • readSteemitWallet: return@withContext 누락, 잘못된 변수 참조 수정
  • readVestingDelegations: dgp 변수 미사용으로 SP 변환이 우회되던 문제 수정

GitHub Commit

보다 자세한 코드는 아래 commit을 참고하세요.


지난 스팀 앱 개발기


Layout provided by Steemit Enhancer hommage by ayogom

Posted using SteemX

Sort:  

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.099
BTC 64125.80
ETH 1796.79
USDT 1.00
SBD 0.38