팀 프로젝트 주제: 자기소개 어플리케이션 만들기
드디어 길고 긴..? 한 주가 끝났다 처음으로 깃을 통해 협업을 진행해 봤었는데 쉽지 않았다.. 진작에 좀 배워둘걸... 그래도 이번에 프로젝트를 진행하며 많이 사용해보기도 하고 서로 붙잡고 물어보고 해결하고를 반복하니 어느 정도는 괜찮아진 것 같다. 다음 프로젝트 때 열심히 써먹어야지 ㅋㅋ
요건 우리 프로젝트의 main.Storyboard인데, 우리는 화면 전환을 위해 Storyboard Reference를 사용했다. 하나의 Storyboard에 모든 것을 병합하면 보기에는 쉽고 한눈에 들어오지만, 충돌 오류가 많이 발생하기 때문이다.(구글링을 통해 얻은 지식 ㅋㅋ)
첫 번째 사진은 저번에 1일차에서 말했듯이 table View로 최초에는 카카오톡 채팅방처럼 프로필 사진과 오른쪽에 설명과 버튼을 달아줄 생각이었는데, 개인 화면을 꾸미다가 중간에 깃을 통해 병합하려다 보니..ㅋㅋㅋ 시간이 없었다 ㅠㅠ
아무튼!
IBOutlet을 통해 main.Storyboard 와 View Controller를 연결시켜주고, 각각 테이블에 id값을 넣어줘서 id값으로 개개인의 프로필에 연결시켜 준다.
사실, 위쪽 Class에 이 코드를 적어줘도 괜찮지만, 보기 쉽게 하기 위해서 extension으로 내려줬다. 이건 하나하나 코드를 뜯어볼까?
extension ViewController: UITableViewDelegate, UITableViewDataSource {
// ViewController 클래스가 UITableViewDelegate와 UITableViewDataSource 프로토콜을 확장하는 부분이다.
// 이 프로토콜들은 테이블 뷰의 동작과 데이터를 제공하는 데 사용된다.
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// 섹션 당 행의 수를 반환하는 메소드다.
return teamName.count // teamName 배열의 요소 수만큼 행을 생성한다.
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// 특정 행의 셀을 구성하고 반환하는 메소드다.
let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell") as! TableViewCell
// 재사용 가능한 셀을 큐에서 가져오고 TableViewCell 타입으로 강제 캐스팅한다.
// 만약 해당 셀이 해당 타입이 아니면 앱이 크래시 된다.
cell.nameLabel.text = teamName[indexPath.row].name
// nameLabel 속성에 teamName 배열의 현재 행에 해당하는 팀 이름을 설정한다.
cell.profileImgView.image = UIImage(named: teamName[indexPath.row].id)
// profileImgView의 이미지 속성에 teamName 배열의 현재 행에 해당하는 id를 이미지 이름으로 설정한다.
return cell // 구성된 셀을 반환한다.
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// 테이블 뷰의 셀이 선택되었을 때 호출되는 메소드다.
performSegue(withIdentifier: teamName[indexPath.row].id, sender: self)
// 지정된 식별자를 사용하여 세그웨이를 트리거한다.
// withIdentifier는 트리거할 세그웨이의 식별자로, teamName 배열의 선택된 행에 해당하는 객체의 id 속성을 사용한다.
tableView.deselectRow(at: indexPath, animated: false)
// 선택된 셀을 다시 선택 해제한다. animated: false는 애니메이션을 사용하지 않는다는 의미다.
}
}
음.. 너무 두서없이 적었나..? 아무튼 코드리뷰를 하며 내 것으로 만들려고 시도는 해보았지만! 아직까지는 완벽하게 이해는 못 했다.. 더 봐야겠지..? ㅋㅋ
요건 우리 팀 자기소개 앱 시연영상이다. 아직 많이 부족한 점이 많아 보이지만 그래도 한 주 만에 만든 것 치고는 괜찮게 만든 것 같다 ㅋㅋ 사실 처음부터 깃을 사용했다면 더 좋은 퀄리티가 나왔겠지만 어느 정도 구현 한 후에 노베이스 상태에서 깃으로 병합과정을 거친 거라 한 1~2일은 깃 병합에 시간을 쓴 것 같다.. 그래도 나쁘지 않은데? ㅋㅋ
일단 팀원 분위기가 좋아서 여러 가지 시도를 해볼 수 있어서 좋았고, 아침마다 하는 애자일 스크럼도 엄청 좋았다 ㅋㅋ 다음 팀도 이런 분위기였으면 좋을 것 같다. 9 to 9이지만 사실상 팀원 모두 9 to 11 9to 12..? 그 이상 참여하시면서 엄청난 의지를 보여주셨는데 나도 진도 따라가려면 더 노력해야지..
아무튼! 다음 프로젝트부터는 깃으로 스트레스받는 일이 없도록 주말사이에 엄청 공부해야 할 것 같다. 다음 주부터는 swift 문법에 대해 공부하게 되는데 할 수 있겠지??
'Team Project' 카테고리의 다른 글
TeamProject 키오스크 2일차 (1) | 2024.07.03 |
---|---|
TeamProejct 키오스크 1일차 (0) | 2024.07.02 |
Team Project 개발일지 4일차 (0) | 2024.05.30 |
Team Project 개발일지 3일차 (0) | 2024.05.29 |
Team Project 개발일지 2일차 (0) | 2024.05.28 |