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

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

No. 161
2026. 07. 17 (금) | Written by @dorian-mobileapp

1주일 만에 개발 완료 포스트를 작성합니다. 임대 중에 이어 피임대 중인 스팀파워 목록 화면을 구현했습니다. 스팀 API에서는 이 리스트를 직접 구할 수 없습니다. 그래서 이번에 스팀월드 API 연동을 최초로 시작했습니다. 거래 내역도 스팀 API로부터 바로 구할 수 없고 가공 작업이 필요한데요. 그것보다는 스팀월드 API를 활용할 예정입니다.


작업 내용 요약

1. API 연동 — SteemWorld delegations_api/getIncomingDelegations

표준 Steem API에는 incoming delegation 조회 엔드포인트가 없어 SteemWorld API (sds.steemworld.org)를 사용

레이어작업
DomainSteemWorldRepository 인터페이스 신규 추가, ReadIncomingVestingDelegationsUseCase
DataGetIncomingDelegationsResponseDTO (rows 배열→VestingDelegation 변환 포함), SteemWorldService, SteemWorldClient, SteemWorldRepositoryImpl 신규 추가
  • SteemWorldRepositoryImpl은 DGP(동적 글로벌 속성)와 위임 목록을 병렬 async 호출 후 VESTS → SP 변환

2. IncomingDelegationListScreen 구현

  • IncomingDelegationListScreen: ViewModel 연결, onDelegatorClick 콜백 파라미터
  • IncomingDelegationListContent: 상태 처리 + 검색(AccountSearchTextField 재사용) + 리스트
    • 빈 목록 시: "No steem power is being delegated to you." 표시
    • delegator 이름으로 필터링
  • IncomingDelegationItem:
    • 아바타 이미지
    • delegator 이름 — 클릭 시 ProfileScreen 이동
    • 위임 시각 — 클릭 시 로컬 시간 변환하여 Toast 표시
    • SP 금액
  • IncomingDelegationListScreenPreview: 샘플 3개 항목으로 프리뷰

3. IncomingDelegationListViewModel 구현

  • ReadIncomingVestingDelegationsUseCase 주입
  • flowIncomingDelegationList — UI 상태 노출
  • readIncomingDelegationList()init 블록에서 자동 실행

4. 기타

  • Main2Navigation.kt: IncomingDelegationListRoute 연결, onDelegatorClickProfileScreenRoute 이동

GitHub Commit

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


지난 스팀 앱 개발기


Layout provided by Steemit Enhancer hommage by ayogom

Posted using SteemX

Sort:  

Upvoted! Thank you for supporting witness @jswit.