이동식 저장소

MiTweet 개발일지 1 본문

프로젝트/MiTweet

MiTweet 개발일지 1

해스끼 2020. 8. 10. 15:51

원래는 나만의 SNS 앱을 하나 만들어서 쓰려고 했지만 트위터를 다시 시작하는 김에 목표를 바꾸었다.

쓰레기같은 공앱을 대체할 앱을 만들자!

공앱 안 좋은 건 예전이나 지금이나 달라지질 않는다. 이참에 내가 쓰는 기능만 모아서 깔끔하게 앱을 만들어 보자.

 

MiTweet 개발 목표

  • 트위터의 핵심 기능(트윗 작성, 타임라인 갱신, 팔로우/언팔로우 등)을 지원
  • 내가 안 쓰는 기능(리스트, 북마크 등)은 미지원
  • 최소한 공앱보다는 좋은 성능을 보이게
  • 스와핑 등 제스쳐에 반응하기
  • 디자인은 깔끔하게

위에 있을수록 더 중요한 목표이다. 즉, 디자인은 제일 마지막 목표라는 말. 내가 그렇게 디자인 감각이 좋은 편이 아니라서.. 그래도 아주 나쁘게는 만들지 않는다.

출발

트위터는 API를 자세하게 제공하고 있지만, 이걸 하나하나 구현하기에는 거의 이 앱 개발하는 정도의 시간이 더 걸린다. 롤 전적앱을 만들 때는 실제로 이렇게 했는데, 전적 하나만 구현하는데도 너무 시간이 오래 걸려서 이번에는 라이브러리를 사용하려고 한다.

 

여기에서 트위터 라이브러리 구현체를 찾을 수 있다. 나는 Java 라이브러리를 사용한다.

가운데의 Twitter4J는 마지막 커밋이 2년 전이길래 패스하고, JTwitter를 사용하기로 했다. 이건 지금도 꾸준히 개발이 되는 듯하다.

 

그런데 왜 적용이 안 되지?

이런 오류

오류 하나를 해결하면 다른 하나가 나타나고, 또 해결하면 아까 그 오류가 다시 나타나고.. 사실 어제 하루종일 여기에만 매달렸는데 답이 없다. 최후에는 ``This function requres ASM7``이래서 ``ASM7``을 gradle에 추가했는데, 그래도 같은 오류가 계속;;

 

여기에는 적지 않았지만 나름 열심히 노력해 봤는데, 이건 아닌 것 같다. 어차피 트위터 API가 변하지 않는 이상 옛날 거를 써도 괜찮을 듯하다. 

결국 Twitter4J를 사용하기로 했다. 이건 다행히 정상적으로 import 된다.

 

개발 계정 생성

트위터 API를 사용하려면 여기에서 토큰을 발급받아야 한다. 트위터 계정이 없다면 먼저 계정을 만들어야 한다. Application을 만들고 토큰을 저장해 두자. 특히 Authentication Tokens은 다시 볼 수 없기 때문에 반드시 저장해 둬야 한다(잃어버리면 재발급하는 방법밖에 없다).

시작

처음에는 간단하게 계정 하나만 지원하기로 한다. 언젠가 계정을 하나 더 만들게 되면 다중 계정을 지원하게 될 지도 모르겠다. 일단 트위터로 로그인해서 간단히 트윗 하나를 작성해 보자.

스플래시 화면을 만들고, 로그인 화면을 보여준다. 이전에 로그인한 적이 있다면 자동으로 로그인한다. 아직 로그인한 적이 없는 경우에는 버튼을 눌러 트위터로 로그인한다.

 

로그인하면 메인 화면이 나온다. 아직은 타임라인을 구현하지 않았는데, 향후 메인 화면에 타임라인을 보여주고 오른쪽 아래의 버튼을 눌러 트윗을 작성하게 바꿀 예정이다.

 

트윗이 잘 전송되는지 확인하자. 트윗을 입력하고 버튼을 누른다.

트윗이 잘 전송되었다. ``MiTweet_App``에서 작성한 트윗이라고 나오는데, 아까 Twitter Developers에 Application에 앱을 등록할 때 ``MiTweet``은 이미 존재하는 이름이라고 해서 조금 바꿨다. 

 

일단 오늘은 여기까지다. 다음엔 타임라인 구현을 해 보자.

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

MiTweet 개발일지 6  (0) 2020.08.28
MiTweet 개발일지 5  (0) 2020.08.27
MiTweet 개발일지 4  (0) 2020.08.19
MiTweet 개발일지 3  (0) 2020.08.16
MiTweet 개발일지 2  (0) 2020.08.13
Comments