이번 프로젝트를 진행하며
어떤 문제를 맞닥뜨렸고 어떻게 해결했는가
매일 기록'해' 봅니다. - ̗̀(˶'ᵕ'˶) ̖́-
1. TableView 추가
1. VC 에 TableView 추가할 때, 디폴트로 넣어야(상속 받아야) 하는 것들
※ main에서 "TableViewController로 시작한 것과 다르다. 그때는 이와 같은 작업은 안해도 된다.
▽ 상속자들 : UITableVIewDelegate, UITableViewDataSource
여기서 중요한 상속자들을 짚고 넘어가자.
1. UITableViewDelegate 프로토콜 : TableView의 '동작'을 제어한다. 구체적으로는 셀의 높이 설정을 비롯하여 셀 선택 시 동작, 스크롤 동작 등을 구현할 수 있도록 한다. table.delegate = self 는 현재 ProfileViewController 자신이 TableView의 delegate 역할을 하겠다는 의미이다.
2. UITableViewDataSource 프로토콜 : TableView에 필요한 '데이터'를 제공한다. 예를 들어 TableView에 표시할 section의 개수, 각 section의 행의 개수, 각 행에 표시할 셀의 내용 등. table.dataSource = self 는 현재 ProfileViewController 자신이 TableView에서 dataSource로서의 역할을 하겠다는 의미이다.
2. VC 내에 추가한 TableView에 cmd+shift+L 에서 Table View Cell 추가한 후,
해당 VC 에서 TableView 지정하고 inspector를 열어서 Table View Cell → Identifier 설정 해 준다.
(내가 만든 VC 이름이 ProfileViewController 이기 때문에 ProfileCell 으로 명명했다.)
3. VC 내에 추가한 TableView에 Table View Cell 을 추가하고 constrain을 충분히 맞춰준 후,
아래와 같은 func 두 개를 꼭 넣어주어야 한다.
(아래의 tableView func 두 개는 위의 1번에서 상속 대상을 추가하면 자동 완성 기능(error → fix)으로도 알려준다.)
생성된 함수 중 위의 것은 UITableView의 Section 당 들어갈 Row의 수를 정하는 것이고,
아래는 UITableViewCell에 대한 설정을 해주는 함수이다.
일단 여기까지 구체적인 내용은 내일 더 발전시키자.
2. 내 branch 생성해서 push하기
[ Remote → Local ]
local 저장소가 없을 때는 git clone을 하고,
local 저장소를 만든 후에는 git pull origin main ( ← 이걸 매번 해야하는 걸까?)
[ Local 에서 작업 브랜치 생성 후, '그 곳'에서 ]
git branch 브랜치 이름 또는
git checkout 브랜치 이름
위에 명령어를 한 번에 치고 싶으면 : git checkout -b 브랜치이름
오늘 어려웠던 부분은, 처음 내 브랜치 생성 후
작업을 하고 다시 push를 할 때 그냥 commit 하고 push가 아니라 pull을 무조건 해야하는가.
에 대한 의문이었다. 다른 작업자의 변경 사항을 확인하고자 하는 게 아닐 때도 이게 반드시 거쳐야 하는 단계인걸까?
내일 이 부분도 다시 확인해야지.
3. 코드 컨벤션
기본적으로 협의하고 가면 좋을 컨벤션에 대해 미리 숙지해도 좋을 듯 하여 여러가지 예시들을 쭉 보았는데
이건 정말 리더가 정하기 나름이겠다.. 는 생각이 들었다.
카멜케이스를 쓴다 또는 대소문자 구분 정도의 정말 기본적인 것이 아닌 이상은 틀린 것이 아니라 "선택"의 문제 같다.
협업의 경험치가 많이 쌓이면 협업할 때 더 편리한 함수나 가독성이 좋은 코딩 컨벤션이 눈에 들어올 것 같다.
아직은.. 흠..
'iOS 앱 개발자 프로젝트 > iOS 숙련' 카테고리의 다른 글
[iOS] SwiftUI: UIScrollView (0) | 2024.04.24 |
---|---|
[iOS] “Bean Mobility Korea” Application (Day-2 ദ്ദി '֊' )) (2) | 2024.04.23 |
[iOS] 기술 면접 준비 (2) | 2024.04.16 |
[iOS] WishList App (feat. CoreData) (0) | 2024.04.14 |
[iOS] DataManager & ViewController (relationship) (0) | 2024.04.14 |