티스토리 뷰
설날에 개인 해커톤을 해보자고 계획했고 현재 진행중인데 어려운 점이 많은 것 같다. ㅜ.ㅜ
일단 LINE의 메신저와 동일한 디자인으로 만들고 있는데, 어제계획은 서버 통신을 하기 위한 간단한 서버 구축을 하고 UI작업을 마무리 하는 것 이었는데, 얼추 목표는 달성 했다.
UI 작업에 있어 어려웠던 부분은 채팅방을 UICollectionView로 만들었는데, 메시지의 길이에 따라 셀의 높이를 동적으로 변화해줘야하는 부분이 어려웠던 것 같다.
UITableView로 만들면 이러한 작업이 없어 편하게 만들 수 있었지만 굳이 UICollectionView를 선택한이유는 실제 LINE에서 UICollectionView를 사용한다는 아래의 글 때문이었다.
engineering.linecorp.com/ko/blog/ios-refactoring-uicollectionview-1/
위의 글에서 테이블 뷰에서 컬렉션 뷰로 리팩토링 하는 이유는 아래와 같았다.
실제로 컬렉션 뷰는 FlowLayout을 잘 사용하면 뷰를 원하는대로 만들 수 있어서 테이블 뷰 보다는 좀 더 자유로운 느낌이다. 근데 문제는 셀 높이를 구하는 방법이었다.
메신저의 경우 내가 입력한 메시지의 길이가 길어짐에 따라 셀의 크기도 커져야 했다.
채팅 리스트의 경우엔 위와 같이 셀의 크기가 모두 일정하기 때문에 큰 문제가 되지 않았지만 문제는 채팅 창에서 발생했다.
물론 지금은 문제를 어느정도 해결한 상태라 잘 나오는 것을 볼 수 있다.
근데 가끔 위와 같이 하나의 셀이 너무 크게 계산되는 오류가 발생한다.
오늘은 셀 높이를 계산하는 방법을 좀 더 알아보고 서버 통신을 간단하게 해볼 생각이다.
우선순위는 서버 통신에 두려고 한다.
일단 계획한 바로는 SQL을 통한 간단한 DB구성으로 메시지를 주고받을 수 있게 하는 것인데..
어렵겠지만 열심히 해봐야겠다.
아! 그리고 이번 프로젝트는 bitbucket과 source tree를 사용하여 형상관리를 해보고있다.
아래는 메신저 앱의 git이고
아래는 메신저 서버의 git이다.
이렇게 하니 확실히 관리하기가 쉬운것 같다.
일단 테스트용도로 막 코딩한것을 되돌리기도 쉽고...?
어떤 부분에 어떤 작업을 했는지 commit message로 남길 수 있어서 알아보기 쉬운 장점도 있다.
물론 혼자하는 프로젝트라 크게 필요한 부분은 아니지만, 다른 사람과 협업을 할 땐 꼭 필요한 툴이라고 생각하게 된다.
또한 프로젝트 진행을 보다 재미있게 할 수 있는 것 같다.
뭔가 커밋 메시지가 쌓일 수록 뭘 했다는 느낌?ㅋㅋㅋㅋ
어서 커밋 메시지를 늘려서 완성해야겠다..
'My Story > Toy Project' 카테고리의 다른 글
[iOS 앱개발 일기] 설날 개인 해커톤 3일차 일기 - 메신저 만들기 (0) | 2021.02.14 |
---|---|
[iOS 앱개발 일기] 설날 개인 해커톤 2일차 일기 - 메신저 만들기 (0) | 2021.02.13 |
[iOS 앱개발 일기] 설날 개인 해커톤 계획 - 메신저 만들기 (0) | 2021.02.05 |
[iOS 앱개발 일기] RIOT API를 사용하여 iOS 앱 만들기 - 2 (1) | 2020.09.09 |
[iOS 앱개발 일기] RIOT API를 사용하여 iOS 앱 만들기 - 1 (0) | 2020.08.21 |
- Total
- Today
- Yesterday
- Xcode
- 앱개발
- design
- 코딩테스트
- 자료구조
- 문법
- 백준
- 스위프트
- 테이블뷰
- Publisher
- document
- dfs
- Apple
- IOS
- mac
- 코테
- Combine
- Swift
- OSTEP
- pattern
- OS
- 동시성
- operator
- 알고리즘
- DP
- System
- operating
- 프로그래밍
- BFS
- 아이폰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |