-
Notifications
You must be signed in to change notification settings - Fork 4
11월 11일 회의록
회 의 일 시 | November 11, 2024 4:04 PM |
---|---|
참 여 자 | 문영균 구병조 |
- Domain을 고려하지 않는 Persist 모듈
| 배경
지금은 엔티티를 고려한 설계가 아닌, Core Data를 통해서 로컬에 데이터를 저장하고 불러올 수 있는 수준의 모듈을 만들려고 한다.
| 토의
인터페이스화
- Create
- single element
- Update
- single element
- Read
- multiple element
- Delete
- single element, multiple element
⇒ protocol 만들기 → 사용하는 곳에서 채택하여 사용(구체화)
| 배경
엔티티의 속성이 변경되는 경우가 잦다.
| 문제
설계가 완전하지 않아 엔티티의 속성값이 변경되는 경우가 많다.
| 토의 내용
도메인 회의를 통해서 모델 내의 엔티티가 정해지고 코어 데이터 엔티티를 설정하면 될 것으로 보임.
회 의 일 시 | November 11, 2024 3:20 PM |
---|---|
참 여 자 | 조한승, 김민석 |
- 채팅 UI 설계
- 채팅 리스트: TableView? CollectionView?
- 입력칸: TextField? TextView?
- 채팅 상세 내용(말풍선): TextView? UILabel?
- SwiftUI 이용 영역
- 채팅 UI 세부적인 설계
- 채팅이 진행방향 구현
- 채팅 입력에 따른 스크롤링
- 가장 아래로 내려가는 버튼
- 채팅 시작할때 제일 밑으로 가게
- 스크롤링 할때 마다 위로 채팅이 생성되게
- 그 외 예외처리
- TextField Sizing
- 키보드 생성시 제일 최근 메세지 보이게
| 채팅 리스트: TableView? CollectionView?
두 개를 나누는 기준은 ‘행과 열이 나뉘는가?’이므로, 열이 1개 뿐인 채팅은 테이블뷰 이용을 결정
| 입력칸: TextField? TextView?
- 텍스트를 여러줄 입력할 시, 사이즈 변화가 필요하므로 텍스트뷰 이용 결정
- 또한 높이는 최소 1줄, 최대 5.3줄의 크기로 제한
- 탭바와같이 Floating
메세지 전송 버튼은 → UIButton → 클릭시 입력창에 있는 TextView내용들을 보내주기
- TextView에 내용이 빈값이면 버튼 비활성화
- 채팅을 보내서 AI 대답이 오기전에 다시 보낼수 있는가?
- 채팅을 보낸 순간부터, 서버응답을 받아 AI 메세지 UI업데이트 되기 전까지 disabled
PlaceHolder: 메시지 입력
| 채팅 상세 내용(말풍선): UILabel?
Cell들임 ⇒ SwiftUI(Text)로 넣고 ⇒ 내용은 서버 내용, User 입력 내용
Cell Style → 2개
- AI쪽 메세지
- User쪽 메세지
- SwiftUI(Text) Cell
- init(type: robot)시 → background 바뀌고, 왼쪽에 위치할지 오른쪽에 위치할지
- 정렬방식: reading(robot), trailing(user)
- 말풍선 최대 너비 설정(좌우 양끝이 닿지 않게 하기 위함)
- 화면 너비의 60%
- 가로는 정해두고 넘어가면 밑으로 나오게
- 화면 너비의 60%
- 말풍선 최대 높이 설정:
- 세로는 화면 높이의 70% 이상이면 더보기 버튼 활성
- 더 보기: 말풍선 아래로 전개
- 닫기: 말풍선 위로 축소
- 세로 높이 고정 함수를 만들면(true, false)
- 꾹 눌러 옵션 띄우기: 복사
| SwiftUI 이용 영역
- TableViewCell(말풍선)
- 텍스트 입력창: SwiftUI.TextEditior? →
ViewController → View들이 있음
ViewController → HostingViewController → SwiftUI의 View 구조체
채팅 입력해서 보내면???
→ SwiftUI Property가 어떻게 VC에 전달해서 ViewModel이나 Model에 전달할지?
SwiftUI가 VM이나 M을 가지고 있어야할지?
| 채팅이 아래에서 위로 어떻게 진행할지?
| 채팅 입력에 따른 스크롤링
채팅을 입력하게 되면 scrollToBottom 함수 동작
| 가장 아래로 내려가는 버튼
scrollToBottom 함수를 버튼에 넣기
| 채팅 시작할때 제일 밑으로 가게
| 스크롤링 할때 마다 위로 채팅이 생성되게
| TextField Sizing
| 키보드 생성시 제일 최근 메세지 보이게
https://velog.io/@s_sub/새싹-iOS-26주차
https://pooh-footprints.tistory.com/entry/swift-채팅-UI를-만들어봅시다1
https://velog.io/@sossont/iOSTableView-활용해서-채팅앱-만들기-2
https://ios-adventure-with-aphelios.tistory.com/20
https://medium.com/@llghdud921/swiftui에서-keyboard가-나타날때-scroll되는-기능을-구현해보자-abe6107ba598