이동식 저장소

MiTweet 개발일지 16 본문

프로젝트/MiTweet

MiTweet 개발일지 16

해스끼 2021. 1. 14. 22:43

Parcelable encountered IOException writing serializable object

객체의 멤버 변수가 Serializable하지 않아서 발생하는 오류이다. 모든 멤버 변수의 타입을 Serialziable하게 만들면 된다.

트윗 링크 공유하기

공유 버튼을 눌러 트윗 링크를 공유할 수 있다. 일단은 링크만 공유할 수 있게 했고, 나중에 북마크 등을 추가할 예정이다. 아래의 내용을 참고하여 구현했다.

 

다른 앱으로 간단한 데이터 보내기  |  Android 개발자  |  Android Developers

인텐트를 구성할 때 인텐트가 '트리거'할 작업을 지정해야 합니다. Android에서는 추측할 수 있듯이 인텐트가 하나의 활동에서 데이터를 보내는 것임을 표시하는 ACTION_SEND를 포함하여 여러 작업을

developer.android.com

이 버튼을 누르면
잘 공유된다.

트윗 통계 보여주기

예상과는 다르게 나를 엄청나게 괴롭힌 기능이다. API에 ``metrics``(조회수 등 통계) 불러오는 파라미터 있으니까 그냥 써서 보여주면 되겠지~ 했는데 절대 아니었다.

 

일단 API 객체에 ``metrics``를 가져오는 함수를 만들었다. 그런데 트윗 로드가 안 된다. 오랜 삽질 끝에 OAuth 1.0의 signature가 문제임을 인지하여 수정할 수 있었다. 그냥 오랜 삽질이라고만 적었지만 근 3시간 동안의 개고생이었다. Postman으로는 잘 가져오는데 왜 앱에서는 안 되는지, ``metrics``를 가져올 때는 다른 파라미터(트윗의 작성 시간 등)를 쓰면 안 된다던지, 미디어가 포함된 트윗은 미디어 통계를 추가로 가져와야 한다던지...

 

사실 API의 치명적인 단점이 하나 있다.

 

작성된 지 30일이 지난 트윗은 API로 통계를 불러올 수 없다!

 

그럼 대체 공앱은 어떻게 보여주는 거지? 생각보다 API로 안 되는 게 너무 많다. 일단 30일 이내에 작성된 트윗만 통계를 보여주고, 30일이 지난 트윗의 경우 트윗 대신 에러 메시지를 보여주도록 하였다. 미디어 통계는 나중에 따로 추가할 생각이다.

 

어쨌든 API를 대충성공적으로 작성했고, 이제 통계를 보여주기만 하면 된다. 통계를 보여주는 ``TweetMetricsActivity``를 선언하고, 레이아웃을 작성하였다. UI는 공앱과 비슷하게 상단에 트윗을, 하단에 통계 항목을 보여주었다. 통계를 보여주는 부분은 ``ScrollView``와 ``GridLayout``을 사용하여 가로로 보여주게 하였다.

좌우로 스크롤할 수 있다.

사실 스크롤이 아니라 뷰가 화면을 넘어가면 자동으로 다음 행으로 내려서 보여주고 싶었는데(이렇게), 코딩하다가 너무 힘들어서 중단하였다. 듣자하니 ``GridLayout``이 아니라 ``RecyclerView``에 ``StaggeredGridLayoutManager``을 적용해야 한다고 하는데, 컨디션이 안 좋아서 일단 미뤄놓았다. 사실 두통 때문에 글 쓰기도 힘든데 억지로 버티는 것이다.

Github 이슈 사용

개발일지에 들어갈 내용이 맞나 싶기도 한데.

 

 이전까지는 나중에 할 일을 ``TODO`` 주석으로 남겨놨었는데, 이슈를 모아 보기 위해 Github 리포지토리의 Issue를 사용하기 시작했다.

벌써 #6

생각날 때마다, 또는 신기능 구현하기 귀찮을 때마다 하나씩 해결하려고 한다. 

개발할 기능

  • 트윗 상세 화면 추가
  • 타임라인 새로고침 기능 추가

'프로젝트 > MiTweet' 카테고리의 다른 글

MiTweet 개발일지 15  (0) 2021.01.05
MiTweet 개발일지 14  (0) 2021.01.02
MiTweet 개발일지 13  (0) 2020.10.18
MiTweet 개발일지 12  (0) 2020.09.30
MiTweet 개발일지 11  (0) 2020.09.30
Comments