일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- AWS
- architecture
- livedata
- 프로그래머스
- 코루틴
- 쿠링
- GitHub
- Python
- Rxjava
- Kotlin
- pandas
- activity
- android
- 코드포스
- 암호학
- Gradle
- 백준
- MyVoca
- textfield
- boj
- Hilt
- Coroutine
- TEST
- relay
- Codeforces
- Coroutines
- Compose
- ProGuard
- MiTweet
- androidStudio
- Today
- Total
목록프로젝트/MiTweet (16)
이동식 저장소
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CPHGR/btqHy5SFLiI/hOcxs9ENM9k11W1hzti1I1/img.png)
``TweetMiniView``를 다듬었다. ``DynamicGridImageView`` 버그 수정 오늘 사진 3개짜리 트윗을 불러오는 테스트를 했는데, 사진이 제대로 표시되지 않았다. 문제는 레이아웃이었다. 이미지 로드는 제대로 됐지만, 커스텀 뷰 ``DynamicGridImageView``의 ``width``가 ``-2``로 설정되어 있었다. 분명히 xml에서는 ``MATCH_PARENT``로 했음에도 불구하고.. 해결 방법은 수동으로 ``LayoutParams``를 설정하면 된다. // width, height image_grid_view.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) 해결 완료! `..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l8ePd/btqHjqq4x5t/stGNwJts276CCUMWBTKDEK/img.png)
트윗 작성 화면을 만들 때는 그때그때 생각나는 대로 디자인하다 보니 시간 효율이 좋지 않았다. 타임라인부터는 기획하는 흉내라도 내 보기로 했다. 일단 오늘은 타임라인 구현을 위한 기초 작업. BottomNavigationView 추가 최근 안드로이드 앱을 보면 하단에 탭을 두고 이동할 수 있도록 디자인한 모습이 보인다. 그동안 Android에서 프래그먼트 사이를 이동하려면 ``FragmentManager``로 시작하는 길고 긴 코드를 써야 했지만, Jetpack에 BottomNavigationView가 추가되어 기능을 쉽게 구현할 수 있게 되었다. 과정은 다음과 같다. 메뉴 xml 작성 레이아웃에 각 프래그먼트를 보여줄 ``host fragment``를 추가 ``host fragment``에 ``NavC..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OCFWA/btqGUfvsdMu/5vOdpcbkNWe1EgmZzlePuk/img.png)
트윗 작성 화면을 마무리했다. 투표 레이아웃 작성 트윗을 작성할 때 그나마 많이 쓸 것 같은 투표 기능을 추가하였다. 사실 난 지금까지 한 번도 쓴 적이 없지만, 플레이 스토어에 올라갈 앱인데 이정도는 해야 되지 않을까 싶어서 구현하기로 했다. 투표와 사진은 동시에 올릴 수 없도록 제한했다. 항목 오른쪽의 + 버튼을 누르면 항목을 추가할 수 있다. 맨 밑에는 투표 기간과 삭제 버튼을 달았다. 간단해 보이지만 레이아웃이랑 코드 완성하는 데 한 3시간 걸린듯? 수정을 많이 하다 보니.. 디자인이 밋밋해 보이는 건 기분 탓이 아니다. MiTweet의 디자인에 기여하고 싶으신 분들의 연락을 바랍니다. 그런데 트위터 API가 투표 업로드를 지원하지 않는다고 한다. ????????????? 놀랍게도 현재 최신 버전..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bFe2em/btqGJwKlTpM/4acS8xL3aJS5dzNACw1tC0/img.png)
커스텀 갤러리의 사진 선택 기능을 완성하였다. 선택한 사진을 트윗 작성 화면에서 해제 가능 지금까지는 선택을 해제하기 위해 커스텀 갤러리에 들어가야 했다. 사진 미리보기 뷰에 삭제 버튼을 붙여서 사진을 쉽게 지울 수 있도록 했다. 이미지가 중복되던 버그 수정 커스텀 갤러리에 특정 이미지가 중복으로 나타나던 버그를 해결했다. 갤러리에서 사진을 가져올 때 쿼리문에 ``MediaStore.Images.Media.DATA``를 사용했는데, 아마도 이 필드가 원인이지 않을까 추정한다. 어차피 Android Q(10)부터는 Deprecated된 필드라서 새로운 방법을 찾아야 했다. 쿼리 결과로 얻은 ``cursor``를 다음과 같이 순회했다. val externalUri = MediaStore.Images.Medi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6sDRp/btqGyKpCtvY/Lv6EGcI5XwwnkQ239kXShK/img.png)
개발일지는 하루마다 쓰는 게 아니라 기능을 추가할 때마다 쓰려고 한다. 어제 개발일지를 작성하지 않은 이유도 그와 같다. 원래 타임라인을 불러오는 기능을 개발하려 했는데, 아예 트윗 작성 기능을 완성해도 좋을 것 같다는 생각이 들었다. 트윗 작성 화면 제작 메인 화면에 있던 입력 창을 지우고, 오른쪽 하단의 버튼을 눌러서 트윗 작성 화면으로 넘어가게 만들었다. 작성 화면은 Activity로 구현했다. 버튼을 누르면 화면이 나타난다. 화면은 크게 상태 정보, 트윗 작성, 미디어 선택의 세 부분으로 나눌 수 있다. 상태 정보에는 프로필 이미지와 계정 이름, @ 아이디를 보이게 했다. 참고로 twitter4j에서는 userId가 아니라 screenName에 접근해야 @로 시작하는 아이디를 얻을 수 있다. us..