[내일배움캠프][TIL] 24.01.15 (월) - 팀 프로젝트(숙련) 1일차
1. 팀 프로젝트(숙련) 1일차
이번 숙련 단계도 어느덧 1주일을 남기고 있었고, 이제 그 결산과도 같은 팀 프로젝트만을 남겨두고 있었다.
이번에는 저번 팀 프로젝트에서 보였던 부족한 부분을 보완해서 저번보다 더 나은 모습을 보여주리라 다짐했다.
팀 프로젝트 과제 - 연락처 앱
이번 팀 프로젝트 주제는 '연락처 앱'이다.
이번 주제는 UI 디자인적인 부분보다도 기술적인 부분에서 상당한 난이도가 있었다.
이번 숙련 과정의 핵심이 RecyclerView와 Fragment인 만큼 이 두 가지를 바탕으로 앱을 구현시켜야 하고, 거기다 중간에 선택 과제 중에서는 '실제 폰에 있는 데이터와 연동'시키는 부분까지 있었기 때문.
다음은 연락처 앱에서 필수적으로 구현해야 하는 기능들이다.
- 필수 과제
- TabLayout / ViewPager
- TabLayout
- ViewPager
- ContactListFragment
- MyPageFragment
- 메인
- RecyclerView
- Adapter
- ViewHolder
- 연락처 추가
- Dialog / DialogFragment
- EditText
- 기능 버튼
- 상세
- ConstraintLayout
- ImageView
- Button
- Bundle
- ScrollView
- 마이페이지
- ConstraintLayout
- ImageView
- Button
- ScrollView
- TabLayout / ViewPager
여기서 Bundle은 Fragment의 데이터를 전달하는 방법을 말한다.
즉, 메인페이지의 특정 사람을 누르면 그 사람의 데이터를 상세페이지로 전달시켜야 함을 뜻한다.
팀 프로젝트 논의
팀 프로젝트이니만큼 이번에도 프로젝트를 어떻게 진행할지 논의했다.
아울러, 저번 팀 프로젝트 때 받았던 피드백 중에서 주요한 두 가지를 적어보면
- 논의한 내용을 빠뜨리지 말고 꼼꼼히 기록할 것.
- 컨벤션을 빠뜨리지 말것.
요거였다.
그래서 이번 논의에서는 이 두 가지를 최대한 지키는 쪽으로 진행했다.
1. 프로젝트 명
우선, 가장 중요한 프로젝트 명.
본래 프로젝트 명이라 함은 어떤 컨셉을 잡느냐에 따라서 이름 또한 그에 따라가는 경우가 많다.
헌데 이번 프로젝트는 다소 협소한 범위라서 프로젝트 명을 짓는 게 오히려 어려웠다. 이름 만으로는 특정 컨셉을 명확하게 나타내기가 어렵다는 뜻.
그래서, 우리 조는 오히려 '누가 봐도 연락처 앱'이라는 느낌이 나도록 이름을 짓자고 결정했고, 이후 여러가지 안건들이 나왔는데 그 논의 끝에 최종적으로 결정된 프로젝트 명은 바로…
애니콜(AnyCall).
'누구나'라는 뜻의 Anyone과 Call을 합쳐서 '누구나 쉽게 전화를 할 수 있는 연락처 앱'이라는 뜻으로 지었다.
(옛날 삼성 폰 기종 이름이기도 하다)
2. 와이어프레임
위 사진은 우리 조의 앱 컨셉을 나타내는 그림이다.
아래 contact와 mypage는 프래그먼트로 이동하는 버튼.
그리고 왼쪽부터 차례대로 contact, mypage, detail 프래그먼트다. (contact에서 사용자를 누르면 detail로 넘어간다)
특별히 좋아요 버튼을 하트 대신 즐겨찾기 버튼 느낌이 나게 별모양으로 했다.
3. 역할 분배
이 다음으로는 역할 분배를 진행했다.
참고로 메인페이지인 ContactFragment는 아무래도 다른 곳보다 작업량이 배는 많아서 2명이서 진행하기로 했고, 나머지 Fragment를 각각 한 명씩 맡기로 했다.
그리하여 나는 상세페이지 부분인 ContactDetailFragment를 맡았다.
다른 건 다 괜찮은데 Fragment랑 그 Fragment의 데이터를 전달하는 Bundle 부분이 조금 힘들어보이긴 한다.
4. 컨벤션
저번 팀에서는 이렇게 역할을 분배하자마자 곧바로 앱 만들기에 착수했는데 이번에는 컨벤션부터 진행했다.
저번에 무작정 만들다가 여기서 꼬인 전적이 있었기 때문에...
- 코딩 컨벤션
- 코딩 컨벤션은 안드로이드 공식 사이트를 참고했다.
Kotlin 스타일 가이드 | Android Developers
Kotlin 스타일 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 문서에서는 Kotlin 프로그래밍 언어의 소스 코드와 관련된 Google의 Android 코딩 표준을
developer.android.com
- git 컨벤션
- commit은 다음의 규칙을 따랐다.
이제 기본적인 규칙은 다 정해졌다.
내일부터는 본격적으로 앱 개발에 들어갈 예정이다.