<aside> 👉 우리는 다 잘하는 사람들이다! 항상 자신감 가지고 행복하게 코딩하기! 아프지 않기!
</aside>
<aside> 📌 아침에 모여서 화이팅 외치고 가기 잠은 알아서 일찍 잘 자기 → 늦잠자서 지각하면 가만 안둠, 찾아감
</aside>
<aside> 🚫 팀원분들의 사기 떨어뜨리는 멘트 금지(시도때도 없이 죄송합니다 금지) 당황해서 얼타기 금지 (PM의 다짐) 찐텐 금지 → 화가 나면 PM한테 화내기(?)
</aside>
<aside> 🦁 구성원
PM
: 김종찬 ESFP
어둠의 응원단장
: 김강호 ENFP
사용자 1팀(이벤트 목록)
: 윤진영(팀장) ISTP, 남현정 ESTP, 이재승(파베) ENTP, 주진형 ENFJ
사용자 2팀(나의 이벤트)
: 한아리(팀장) ESFJ, 정석호 INFJ, 원강묵(파베) ISTJ
사용자 3팀(설정)
: 이승준(팀장) INFJ, 유재희(파베) ISTP, 김윤우 ISFP
관리자 팀
: 임병구(팀장,파베) ENFP, 나예슬 ENFP, 선아라 ISFJ, 최세근 ISTJ
</aside>
혹시나 하는 출결 특이사항?
<aside> 📃 팀 페이지
</aside>
<aside> 🔗 링크
Google Sheet ‣
https://docs.google.com/spreadsheets/d/1yRiSaXJ7SPtNbrnLoRTxLVkBC2Pr_amecv4HbmGscpo/edit#gid=563042982
Figma https://www.figma.com/file/QXsQEryAveVTnqjB3ho0qZ/Team-I?type=design&mode=design&t=HRXNkgwsnr0SnNhN-0
https://ddok9.com/ko/our-personality-chemistry/3N0VcZf2y?gmno=24194236
Firestore
https://console.firebase.google.com/project/ticketlion-4bdb5/overview?hl=ko
</aside>
<aside> 📝 팀 회의록
</aside>
<aside> 👨🏻🏫 강사님, 멘토님 피드백
유재호 멘토님 피드백
<aside> 📌 UI보다는 코드리뷰 위주로
</aside>
Debug → color indicator
변수가 String이면 굳이 보간법 안해도 괜찮음
@State
- Use state as the single source of truth for a given value type that you store in a view hierarchy.
- 다른 뷰가 이 State 를 가질 수 없다 - 중복해서
- 다른 개발자들 (본인 포함) 실수를 예방할 수 있다 (prevent)
- source of truth → 본인이 주인임
- 접근제어 잘해주자 (면접 질문)
- private var 꼭!
- 기본값이 없는 State는 source of truth 가 아님 → 바깥에서 주는것에 의존함
즐겨찾기 Bool값 Model에 넣어야 겠다!
모델 구현 팁
- // → 주석 comment, /// → 문서 document
- 변수, 메서드, 타입, 연산프로퍼티 위에 선언해서 다른 뷰에서 찾을 때 설명 잘 나오게 하자
- let, var 차이
- id → 바뀌면 절대 안댐
- 근데 디코딩 관련 경고창 나옴
- init으로 해결하자 → 선택사항
- 일단은 let으로 선언했다가 필요시 var로 변경
- 모델은 final class로 하자 → 기계적으로
- 상속 안시키기 위해서
- 다른 개발자에게 알려줄수 있음 → 협업 시 좋다
- 컴파일러 최적화
- https://cautious-smash-7a0.notion.site/Swift-final-ac0449f61a87417e95f7bb467fcfb188
캡슐필터 애니메이션
- 수정 완?
신청하기 View
- ScrollView 적용
- 기기마다 화면이 담는 크기가 다르니까
- 왠만하면 넣자
- toggle 영역을 텍스트까지 확장하자!
- 버튼 텍스트
- 좀 더 커도 괜찮음
- Bold()
- sheet 내리기
- binding으로 toggle하는거 말고 dismiss로 하자
- 굳이 파라미터를 넘기지 않아도 가능함
모달, 네비게이션 사용 구분
extension은 그룹화해서 우선순위를 내려서 순서를 지어두자
역할이 애매한 파일은 잘 정리하자
StateObject, ObservedObject → 중요!
https://medium.com/hcleedev/swift-observedobject와-stateobject-4f851ed9ef0d
- 공통
- 뷰모델을 홀딩할 수 있는 프로퍼티 래퍼
- 차이
@StateObject
- State 여기에 값 넣어두면 힙에 들어감 → 참조타입 즉 주소
- 본인의 값을 유지하기 위함
- View의 source of truth
- 생성할때는 이거로 쓰자
@ObservedObject
- 받는 곳에서는 이거 쓰자
@EnvironmentObject
- 최상위에서 선언해서 하위 뷰 들어가서 필요한 것들을 뽑아와서 사용함
- 세대를 건너서 내려옴
- 이거 쓴다고 성능에 문제가 발생한다? 이건 모르겠음
- 실무에선 이걸 더 많이 씀
- 코드가 단순해짐 -> 이니셜라이저가 필요 없어짐
- 하위뷰 어디서든 선언 가능 -> 변화에 빠르게 대처한다
</aside>
<aside> ❓ 물어볼 것!!!!!!
</aside>