2주차 회의록 - 42-JMJ/iOS-App-Project GitHub Wiki

:lemon: 4월 27일 (월)

끝냈습니다

  • 1주차 진도평가(양호) 및 2-3주차 일정검토
  • 프로그램참여 신청명단에 누락된 상황 조치
  • 온라인 중간미팅 주제 관련 사전 논의 (이번주 수요일 @13:42, Zoom)
  • 온라인 중간미팅 참석대상자 문의
    • 답변내용: 팀장 필참, 팀원은 선택
  • Today.Storyboard 구현 (#20)
    • 작성날짜(오늘날짜) 표시
    • placeholder 표시/감추기
    • 텍스트뷰 외 터치 시 키보드 감추기

배웠습니다

  • 시뮬레이터 녹화하는 방법 📷
    • 터미널에 입력 xcrun simctl io booted recordVideo ~/simulator.mov

고민입니다

  • 목표한 기능을 한번에 PR할 경우 (ex.목요일에 한번) 코드가 길어져 원활한 리뷰가 어렵고, 또 격일로 reviewer가 바뀌기 때문에 격일로 PR할 경우 한명에게만 리뷰를 받는 문제가 발생
    • :gem: 깃허브 협업 룰 추가 :gem: 해서 해결
      • 당일 작업사항은 당일에 꼭 PR합니다
  • vnc환경에서는 Cocoapods 설치가 안되는 문제 발견
    • Realm 대체 데이터베이스 관리시스템 선택해야 함
    • 대체할 프로그램으로 Core Data, SQLite 검토

:lemon: 4월 28일 (화)

끝냈습니다

  • Realm 대체할 프로그램으로 Core Data, SQLite 중 SQLite 선택
    • SQLite는 다양한 운영체제 환경에서 사용할 수 있음
    • SQLite로 인해 생성되는 각 데이터베이스는 하나의 파일로 구성되어 관리가 용이함
    • 주로 개발용 및 소규모 프로젝트에 적합함
  • 런치스크린 관련 저작권 확인
    • dx시인과나 폰트 비상업적 용도로 사용가능한 것으로 확인완료
    • Unplash(사진공유웹사이트)의 이미지파일 비상업적 용도로 사용가능한 것으로 확인완료 set
  • 런치스크린 시안 공유 (#24)
  • DataBase protocol과 Article struct 선언 (#23)
    • id / date / question / answer로 구성
  • Today.Storyboard 구현 (#25)
    • 텍스트뷰가 비어있지 않을때만 저장버튼 활성화

배웠습니다

  • 런치스크린에서도 custom font 적용시키는 방법 (by 준서)
    • imageView에서 View-Content Mode에서 아무거나 다른 옵션 선택 후 다시 원래 옵션 선택하면 적용됨

고민입니다

  • 런치스크린 디자인시안 다 좋아서 고민
    • 언제든 수정이 가능하니 우선 준서가 하나 골라서 master에 올려놓기로 함
    • 전체 View의 통일성을 위해 런치스크린에서 사용한 font를 다른 View에도 적용해야함
  • displayView 추가 고려
    • 답변 작성하는 화면보다 더 깔끔하게 내용을 확인할 수 있고, 작성이 끝난 나의 답변을 제 3의시각으로 다시 볼 수 있는 기회도 됨
      • (변경 전) 답변작성->저장버튼->ListView로 전환
      • (변경 후) 답변작성->저장버튼->displayView로 전환
    • 사용자가 질문 또는 답변에 어울리는 이미지를 선택해서 배경화면을 꾸밀 수 있는 기능도 추가로 접목한다면 더욱 다양한 경험을 제공할 수 있음
    • 다음주에 구현해볼 수 있을 것으로 예상되나 우선 진행중인 기능 구현 마무리되면 다시 논의
  • "(0/500자)"와 같이 현재 작성된 글자수 및 전체 글자수를 알려주는 기능 추가 고려
    • 글자수 제한은 기능상 필요하지 않아 전체 작성한 글자수만 보여주는 기능도 괜찮을 듯함
    • 역시 우선 진행중인 기능 구현 마무리되면 재논의
  • 질문목록을 db 담아서 사용하는 방법 고민
    • 가능한 경우
      • 1번: 서버에서 db를 받아와서 사용하는 방법
      • 2번: 파일을 앱에 넣고 db를 사용하는 방법
    • 2번으로 결정
      • 2번의 경우 앱을 업데이트 할때까지 질문이 바뀌지 않지만 미리 충분한 질문 pool을 확보해논 상태라면 서버없이 구현할 수 있기 때문에 2번으로 결정

:lemon: 4월 29일 (수)

끝냈습니다

  • @1:42 온라인 중간미팅
    • 제출 후 평가방법 문의 답변내용: 온라인 평가로 진행
    • 간단한 기능부터 우선 구현하고 add-on 형식으로 붙여나가서 성취감을 가질 수 있도록 추진
  • 테스트용 db 구현 완료 (#27)
  • List 스토리보드 디자인 구현 완료 (#28)
  • 런치스크린 구현 완료 (#29)

배웠습니다

고민입니다

  • today.storyboard와 selected.storyboard의 레이아웃이 동일함에도 중복되서 존재하는 문제
    • today.storyboard를 다시 활용하는 방법으로 변경
  • 런치스크린 표시하는 시간
    • 가능한 방법
      • 1번 : 5초 정도로 길게 (현재 적용)
      • 2번 : 3초 이하로 짧게
    • 2번으로 선택
      • 넉넉한 시간동안 앱의 컨텐츠에서 추구하는 천천히 생각하는 시간을 갖는 분위기와 맞추는 것도 좋지만 너무 길면 사용자가 자칫 앱의 반응속도가 느리다는 인식을 갖거나 답답해할 수 있음

:lemon: 4월 30일 (목)

끝냈습니다

  • 전체일정 중간점검 및 개별목표 공유
    • 재두 : 이번주까지 sqlite 부분 완성 목표
    • 미혜 : 이번주까지 today.storyboard 완성 목표
    • 준서 : 이번주까지 list.storyboard완성 목표
  • Today.Storyboard 구현 (#30)
    • ListView에서 cell 선택시 새로운 view로 연결하지 않고 기존의 TodayView 활용하도록 변경
    • db연동해서 select함수로 질문 가져오기
    • 회의때 얘기했던 스크롤 위치, 테두리 색상 등 반영
  • 리드미파일 및 위키 현행화 완료 (#33)
    • 스태프분들/멘토분들께서 진행상황 보실 수 있도록 "매주 목요일 23:59까지 기록"
    • 온라인 미팅때 리드미에 모든 것을 기록하기보다 목적에 맞게 작성하는게 좋다는 조언 참고

배웠습니다

  • 리드미파일 작성목적 및 포함사항(권장)
    • What kind of project it is
    • How it can be useful
    • How to install and use it
    • List of authors
    • Guidelines for contributing
    • License notice
    • Whatever else the developers would want other people to read.
    • 참조: purpose of readme

고민입니다

  • 최종제출 때 보여줄 매개체
    • 꼭 영상을 제출 해야되는건 아니지만 프로토타입 보여줄 매개체 필요(영상제출 관련 문의 답변내용, 4/29 온라인 미팅)
    • 시뮬레이터로 촬영하는 방법이 효과적?
    • 다른 어플 프로모션 영상 찾아보기

:lemon: 5월 1일 (금)

끝냈습니다

  • DB관련 자주 쓰이는 함수 추가 (#35)
    • Date를 String으로, String을 Date로 변환하는 유틸 함수 추가
  • Today.Storyboard 구현 (#40)
    • alert함수작성 및 doAction()에서 ListView로 연결되지 않던 문제 해결
    • 사용자 답변 작성내용을 db에 update()하는 btnSaveTouchOn함수 작성
    • animate 효과 추가 (회의에서 의견나누고 다시 수정)

배웠습니다

  • Swift 5.1의 Self키워드 기능 참조
    • Self : 자기 자신의 동적 클래스(dynamic class)를 가리키는 키워드
    • Swift 5.1에서는 상속받은 클래스에서 정의하는 class 멤버를 참조할 수 있도록 Self 키워드에 능력 추가됨
    • 단, Swift 5.0에서는 Self를 사용하면 컴파일 에러가 뜨므로 Self.이 아닌 클래스명.으로 작성해주어야 함

고민입니다

  • 매일 짝수/홀수일별로 PR리뷰어가 바뀌어서 헷갈리는 문제
    • PR템플릿 추가 (#38) 해서 해결
    • PR작성 화면에서 자체 깃컨벤션에 따른 리뷰어를 자동으로 안내해주는 유용한 기능!
  • 3주차 과제 설정 및 역할분담
    • 현재 각자 진행하고 있는 사항을 모두 완료한다면 그 다음 우선 구현해야할 사항은 DisplayView
    • DisplayView를 2~3명이서 쪼개서 구현하기에는 작업단위가 애매함
    • 월요일까지 진행상황 보고 다시 고민