3주차 회의록 - 42-JMJ/iOS-App-Project GitHub Wiki
- 2주차 진도평가(양호) 및 3주차 일정검토
- 지금까지 나온 아이디어 검토해서 그 중 add-on할 것 DisplayView로 결정 (#42)
- 이유: 나온 아이디어 중 가장 어렵고 배울 것이 많아보여서
- DisplayView 반영해서 화면순서도 변경 (#44)
- List스토리보드 구현 (#45)
- indexPath를 이용해 날짜순 정렬(db연동)
- 오늘날짜 이후의 질문은 목록에 표시되지 않도록 숨기고, 커스텀셀의 디자인도 개선함
- 이미지 파일 불러오는 함수 구현 (#47)
- 로컬/번들에 있는 이미지를 불러오는 함수
- 파일 내용을 가져오는 함수
- DB에 이미지를 저장하는 방법?
- 일단 sqlite3에 이미지 저장이 가능한 것은 확인되었음
- 그런데 추가될 때마다 저장하면 똑같은 이미지가 중복되어 저장될 수 있어 메모리 낭비가 발생할 수 있음
- modal창에서 "기본이미지 제공"으로 할지, "갤러리에서 가져오기"로 할지 혹은 둘 다 할지 고민
- 이미지피커를 이용하면 포토앨범에서 사진을 고르는 것은 가능하지만 기본이미지 제공은 할 수 없음...
-
UIImagePickerController: 카메라로 사진을 찍거나 앨범에서 가져오는 방법으로 이미지를 추가할 수 있도록 해주는 피커
- Display스토리보드 하나의 View를 3명이서 어떻게 역할분담해서 구현할지 고민
- 미혜 (예상난이도 중급)
- Today에서 받아온 article 표시하고 테스트용 이미지로 Display 레이아웃 구성
- show UIImageView해주고 이미지 저장하는 함수를 articleupdate함수와 함께 실행
- 재두 (예상난이도 고급)
- 선택된 이미지를 sqlite에 저장해주는 함수 구현
- 해당 article의의 image값 sqlite에서 불러오는 함수 구현
- 리소스 이미지 불러오는 함수 → 이미지와 관련된 데이터 리턴
- 준서 (예상난이도 고-급)
- 리스트로 이미지를 띄워 사용자가 고를 수 있는 modal창 구현
- modal에서 imageView 터치 시 Today으로 이미지파일을 리턴해줌
- Today스토리보드 개선 (#48)
- 코드가독성 개선, 아이콘 추가 및 전체 배치개선
-
#43 관련 오토레이아웃 적용
- List스토리보드 디벨롭 (#51)
- 사용자가 Cell 선택시 해당 Date를 넘겨주는 함수 구현
- Table '오래된순 정렬'에서 '최신순 정렬'로 수정 및 테두리 디자인 개선
- ImagePicker로 modal화면 구현 (#55)
- 버튼을 누르면 modal창에 띄워진 갤러리에서 사용자가 원하는 사진을 골라 배경화면을 꾸밀 수 있는 기능
- Display스토리보드 기본틀 구현 (#56)
- 전체 레이아웃(스크롤 뷰) 설정하고 필요한 asset 추가
- 해당 날짜에 배정된 질문이 아니라 무조건 첫번째 질문이 주어지던 이슈 해결 (#59)
- 답변작성내용이 있는 경우에도 placeholder가 뜨던 이슈 해결 (#61)
- 터미널에서 Xcode버전 확인하기
- Xcode 버전이 같아도 Swift버전이 다를 수 있고, 그럴 경우 시뮬레이터 실행결과도 다르게 보일 수 있음
- 한글에는 word-wrap 옵션이 적용안되는데 뚜렷한 해결방법을 못찾아서 고민 (#57)
- 현재 커스텀폰트 세가지가 혼용되고 있어 하나로 통일할 필요가 음
- dx시인과나(런치스크린에 사용) vs 경기바탕체 vs 마포꽃섬체
- 이번주에 추가된 Display뷰 (하단그림: 왼쪽) 와 흰색바탕으로 된 기존 뷰들 (하단그림: 오른쪽) 의 디자인 통일성이 떨어져서 고민
- 가능한 방법
- 1번: Display뷰만 수정해서 이미지를 전체화면이 아닌 삽화처럼 작게 넣는 방법
- 2번: 나머지 뷰를 모두 다크모드(?)처럼 수정해서 적용하는 방법
- 2번으로 결정
- 원래 의도한 Display뷰의 느낌도 살릴 수 있고 런치스크린 디자인과도 잘 어울리기 때문

- 마감을 앞두고 작업시간 확보를 위해 남은 3일 정기미팅 시작시간 조정
- 금: 오후 5시
- 토: 오후 8시
- 일: 변동없음(오후 3시)
- 모든 뷰에 다크모드(?)적용하고 런치스크린과 동일한 폰트 적용해서 통일성 확보 (#62)
- 변경한 내용이 없어도 의도하지 않게 alert함수가 뜨는 이슈 해결 (#63)
- Program42 전체공지 확인
- 시연 영상은 유튜브 or 구글드라이브 링크 게시
- 일요일 23:59까지 제출완료하고 GoogleDocs에 O 표시하기
- 프로토타입 보여줄 매개체: 시뮬레이터 촬영?
- 시뮬레이터로 촬영하면 기능을 다 보여줄 수 있을지, 편집이 필요하다면 시간내에 소화할 수 있을지 고민
- 시뮬레이터 촬영시 시나리오 논의 (목록 5개 이상 나오게 따로 설정해야함)
- 리드미 최종적으로 어떻게 정리할지 고민
- 시연영상 : 일요일에 찍어서 추가
- 설치방법 또는 실행방법 : 기능이 간단한 Mobile App이라서 어디까지 어떻게 표현할지 고민
- 스토리보드의 연결성을 간단하게 보여주는 화면흐름도? 추가할지 고민 (참고)
- 프로젝트를 마치며 느낀점 (개발일지 하위카테고리로?)
- db에 사용자가 선택한 이미지가 저장되지 않거나 표시되지 않는 버그fix (#66)
- 아이폰마다 다른 화면 크기가 달라서 화면이 짤리는 이슈해결 (#69)
- 해결방법: sqlite3 bind text함수 사용시 SQLITE_TRANSIENT 사용 (참조)
- 텍스트뷰에서 15 Btye 이하는 저장이 unstable한 버그fix (#70)
- 뷰의 생명주기와 상태변화감지 메소드
- func viewDidLoad()
- func viewWillAppear(_ animated: Bool)
- 다른 뷰에서 되돌아오면 재호출되는 메서드, 화면이 나타날때마다 수행해야하는 작업을 하기 좋은 시점
- func viewDidAppear(_ animated: Bool)
- 뷰를 나타내는 것과 관련된 추가적인 작업을 하기 좋은 시점
- func viewWillDisappear(_ animated: Bool)
- 뷰가 생성된 뒤 발생한 변화를 이전상태로 되돌리기 좋은 시점
- func viewDidDisappear(_ animated: Bool)
- 뷰를 숨기는 것과 관련된 추가적인 작업을 하기 좋은 시점
- 시간이 오래 걸리는 작업은 하지 않는 것이 좋음
- 참고: 부스트코스뷰의 상태변화 감지 메서드

- App 아이콘 제작완료 (#71)
- 시뮬레이션 시나리오
-
0. 실행
-
1. 런치스크린
-
2. 키보드토글&작성
-
3. 저장하지않고 목록이동(얼럿)
-
4. 지난질문 선택(장문 답변)
-
5. 스크롤뷰
-
6. 수정클릭
-
7. 이미지피커실행
-
8. 저장해서 반영된 것 확인?
- 시뮬레이션 영상 촬영 및 리드미파일 정리
- 소감 나누고 마무리 😄😄😄
⚠️ **GitHub.com Fallback** ⚠️