스팀 앱 개발기 #89 - 태그 화면에서 다운보팅 카운트 클릭하면 앱이 죽는 문제steemCreated with Sketch.

시작하며...

어제 보팅 리스트에 스팀잇 계정 검색 기능 추가는 성공적이었습니다. 그런데 추가로 테스트 하면서 버그가 나왔네요. 그것은요. 태그 화면에서 다운보팅 카운트를 클릭하면 앱이 죽는 문제입니다. 오늘은 기능 개발 대신 버그 수정을 해야 합니다.


버그 원인

TagsFragment 클래스의 upvoteViewClickListener는 수정했지만 downvoteViewClickListener를 수정하지 않았기 때문입니다. 전자에서 보팅 리스트 화면에 필요한 업보팅 배열을 업보팅 배열 리스트(ArrayList)로 수정했지만, 후자에서는 이를 하지 않았습니다. 그 결과, VoteListActivity 객체에서 이를 읽지 못 하고 ClassCastException을 발생시켰습니다.


수정

downvoteViewClickListener도 upvoteViewClickListener와 동일하게 보팅 리스트 화면에 필요한 다운보팅 배열을 업보팅 배열 리스트(ArrayList)로 수정했습니다.

private val downvoteViewClickListener = object: PostItemListAdapter.OnVoteCountViewClickListener {
    override fun onClick(postItem: PostItem) {
        // open new activity to show upvoting list
        val downvotes = postItem.activeVotes.filter { vote ->
            vote.isDownvote()
        }.sortedByDescending { it.value }

        if (downvotes.isEmpty()) {
            return
        }

        val downvoteArrayList = ArrayList(downvotes)
        Intent(requireActivity(), VoteListActivity::class.java).apply {
            this.putExtra(VoteListActivity.INTENT_BUNDLE_VOTER_LIST, downvoteArrayList)
            startActivity(this)
        }
    }
}

GitHub Commit

https://github.com/netrance/dorian-steem-apps/commit/6e9a9805b4e8c5a916c99bb760266eb48353993b


마치며...

이렇게 오늘은 버그 수정을 마쳤네요. 이와 같이 개발에서는 신규 기능 개발을 못 하고 버그 수정을 대신 해야 하는 경우가 왕왕 발생합니다. 가능한 버그 없는 코드를 만드는 것이 제일 좋겠지요. 가능한 이상향에 가깝게 개발할 수 있다면, 그게 실력이 있다는 뜻일 것입니다.


지난 스팀 앱 개발기

Sort:  
 3 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

와우 오픈소스인가용? 👍 기능 구현하느라 버그 잡느라 고생이 많으십니다.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.080
BTC 61291.61
ETH 1623.62
USDT 1.00
SBD 0.42