두번째 프로젝트에 대한 회고가 늦었더니 세번째 프로젝트에 대한 회고가 금방 돌아와버렸다.
세번째 프로젝트도 끝이 났다. 시간이 너무 빠르게 흐르는것 같다.
벌써 교육의 절반이 흘렀고, 내 현재 상태에 대해 돌아볼 시점이 된것 같다는 생각이 들기도 하는 것 같다.
이번 프로젝트의 목표는 연락처 앱 구현이었다. 요즘 빠져있는 드라마 "무빙" 을 컨셉으로 한 연락처 앱을 만들어보았다.
필수 구현 기능이 비교적 간단해서인지, 선택 구현 기능은 꽤나 난이도가 있었던 것 같다.
처음 써보는 기능들도 있었고 쉽게 구현이 될 줄 알았던 기능에서 오랜시간 붙들려있기도 했던 것 같다.
이번 프로젝트도 KPT 방법론을 활용하여 회고를 기록해보려고 한다.
K(Keep) - 유지할 부분
- 매일 오전, 저녁 팀 회의를 진행하며 진행 사항에 대해 공유했다.
- 모든 기능을 도전해보고 완성까지 해냈다.
- 막히는 기능에 대해 포기하지 않고 더 나은 방안을 시도해봤다.
P(Problem) - 문제점 및 해결방안
- 협업을 하기에 앞서 미리 정했던 코딩컨벤션이 지켜지지 않았던 것 같다.
> 개발을 시작하기 전에 팀원 다같이 모여서 코딩컨벤션을 직접 작성하면서 협의하는 과정이 필요할 것 같다.
- 기능이 복잡해지고 화면 갯수가 많아질수록 코드의 가독성이 떨어지거나 재사용되는 코드가 많아졌던 것 같다.
> 코드의 가독성을 위해서라도 재사용되는 코드들을 함수 혹은 클래스로 따로 빼는 습관을 들여야겠다.
T(Try) 및 Feel - 앞으로의 노력 및 느낀점
- 매일매일 유동적인 회의 시간이 아닌, 시간을 고정해두고 일정하게 진행하는것이 좋겠다는 생각이 들었다.
- 하루를 마무리하며 각자의 진행사항이나 코드를 화면공유를 통해 공유하는 과정이 필요하다고 느꼈다.
+ 이번 주는 기능 구현에 있어 부딪혔던 부분들이 많아서 몇개의 트러블 슈팅도 추가해보려고 한다.
1. 문제사항
- RecycleView의 타입(ListView / GridView) 을 선택하여 연락처 리스트를 출력하는 과정에서 GridView를 그리는 방법에 대한 고민을 하게 됨
시도 및 해결
- layoutManager 를 사용하여 LinearLayout 과 GridLayout 을 설정해주었지만 GridLayout 으로 설정했을 때 원하는 형태의 리스트가 출력되지 않음
- 새로운 방법으로, ListView 타입과 GridView 타입에 대한 Adapter 를 각각 만들어서 사용
> 정상적으로 출력은 되나, 출제의도와 맞지않다는 생각이 들어 첫번째로 시도했던 방법 수정하여 재도전
- layoutManager를 사용하여 GridLayout으로 설정해주되, 출력되는 리스트에 대한 item layout을 각각 만들어 binding 시켜줌
> ListView와 GridView를 선택했을 때의 ViewType을 다르게 설정하여 화면에 출력
2. 문제사항
- 연락처 리스트를 왼쪽에서 오른쪽으로 스와이프 한 후, 스와이프 된 레이아웃이 복구되지 않음
시도 및 해결
- ItemHelper 클래스를 만들어 onSwipe 함수를 오버라이드 하여 사용
> onSwipe 함수가 호출된 이후 자동으로 호출되는 clearView 함수도 오버라이드하여 스와이프된 레이아웃이 복구되는 코드 작성
getDefaultUIUtil().clearView((viewHolder as ContactRecyclerViewAdapter.Holder).linearLayout)
> cleartView 함수가 호출되지 않음. 간혹 자동으로 호출되지 않는 경우가 있기 때문에 해당 함수를 명시해주어 호출되도록 코드를 작성하였지만 그럼에도 호출되지 않음
- 연락처 리스트를 출력하는 Fragment에서 스와이프 된 리스트에 해당하는 항목을 notify 해주어 리싸이클러뷰 갱신 > 레이아웃 복구
이번 주차는 유독 협업이라는게 쉽지 않다는 것을 알 수 있는 한 주 였던 것 같다. 힘들었던 만큼 많은 도전의 연속이었고 그 노력의 시간만큼 분명 얻은 것도 많았을 것이라고 생각한다.
어쨌든 이번 프로젝트도 결과적으로는 완성도 있게 마무리했으니까 좋게 생각해보려고 한다 ⸜(*ˊᗜˋ*)⸝
아래 링크들은 이번 프로젝트의 Notion과 Github 주소이다. (Figma(와이어프레임)는 권한 이슈로 생략)
- Notion
https://teamsparta.notion.site/18-bc8dc20c3f994a419f2b01b67552e78d
18조
팀 링크
teamsparta.notion.site
- Github
https://github.com/Team18Contact/ContactApp
GitHub - Team18Contact/ContactApp
Contribute to Team18Contact/ContactApp development by creating an account on GitHub.
github.com
'기타 > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] 네번째 프로젝트를 마무리하며 (1) | 2023.10.08 |
---|---|
[내일배움캠프] 두번째 프로젝트를 마무리하며 (11) | 2023.08.30 |
[내일배움캠프] 첫번째 프로젝트를 마무리하며 (0) | 2023.07.23 |
[내일배움캠프] Android 앱 개발 과정 합격 (0) | 2023.07.18 |