본문 바로가기

iOS 앱 개발자 프로젝트/iOS 숙련

[iOS] “Bean Mobility Korea” Application (Day-1 ദ്ദി '֊' ))

이번 프로젝트를 진행하며 

어떤 문제를 맞닥뜨렸고 어떻게 해결했는가

매일 기록'해' 봅니다. - ̗̀(˶'ᵕ'˶) ̖́- 


 

1. TableView 추가 

 

 

1. VC 에 TableView 추가할 때, 디폴트로 넣어야(상속 받아야) 하는 것들

※ main에서 "TableViewController로 시작한 것과 다르다. 그때는 이와 같은 작업은 안해도 된다.

 

▽  상속자들 :  UITableVIewDelegate, UITableViewDataSource

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에 Table View를 넣은 후, Table View Cell 추가

 

 

해당 VC 에서 TableView 지정하고 inspector를 열어서 Table View Cell  →  Identifier 설정 해 준다.

(내가 만든 VC 이름이 ProfileViewController 이기 때문에 ProfileCell 으로 명명했다.)

Table View Cell Identifier 설정하기

 

 

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. 코드 컨벤션

 

기본적으로 협의하고 가면 좋을 컨벤션에 대해 미리 숙지해도 좋을 듯 하여 여러가지 예시들을 쭉 보았는데

이건 정말 리더가 정하기 나름이겠다.. 는 생각이 들었다. 

카멜케이스를 쓴다 또는 대소문자 구분 정도의 정말 기본적인 것이 아닌 이상은 틀린 것이 아니라 "선택"의 문제 같다.

협업의 경험치가 많이 쌓이면 협업할 때 더 편리한 함수나 가독성이 좋은 코딩 컨벤션이 눈에 들어올 것 같다.

아직은.. 흠..