혹시 이 알고리즘을 아시나요?
대전 하면 성심당이고, 성심당 하면 대전이죠. 말로만 듣던 성심당에 같이 갈 친구를 찾고 있는 여러분들을 위해 이 앱을 만들었습니다.
🍞 ‘빵빵이와 친구들’을 이용해서 빵을 같이 먹을 빵친에게 전화를 걸고, 새로운 빵친을 구하는 모집글을 작성해보세요! 빵 랭킹을 확인하고 나만의 평점과 후기를 남겨 다양한 빵을 경험해볼 수 있습니다😄 🍞
이승주 : Tab1, Tab3 구현
<iframe src="https://github.com/leesju0103" frameborder="0" style="width:100%; height:500px;"></iframe>신민철 : Tab2, Tab3 구현
<iframe src="https://github.com/minchurl" frameborder="0" style="width:100%; height:500px;"></iframe>Front-end : Kotlin
IDE : Android Studio
Version Control Tool : Git (GitHub)
세 개의 탭은 각각 빵친 리스트, 빵먹으러 갈 사람~, 성심당 랭킹으로 구성되어 있습니다.
빵을 같이 먹을 빵친의 이름과 전화번호를 확인할 수 있는 탭
- 연락처 목록 : 접근 권한을 허용받으면 휴대폰의 주소록에서 연락처를 불러와 리스트로 보여줍니다. 이름과 전화번호를 확인할 수 있습니다.
- 연락처 추가 : 연락처 추가 버튼을 누르면 다이얼로그에서 이름과 번호를 입력하여 새로운 빵친 연락처를 추가할 수 있습니다.
- 연락처 수정 : 연락처 수정 버튼을 누르면 기존 빵친 연락처를 수정할 수 있습니다.
- 연락처 상세정보 : 리스트에서 연락처를 클릭하면 기본 전화 어플로 연결되어 바로 연락을 할 수 있습니다.
- 연락처 검색 : 저장된 연락처의 이름으로 검색할 수 있습니다.
- 연락처 삭제 및 동기화 : 연락처를 빵친 리스트에서 삭제할 수 있고, 동기화 버튼을 누르면 휴대폰의 주소록과 동기화하여 모든 연락처를 불러오는 작업을 진행합니다.
새로운 빵친을 구하는 포스트를 확인할 수 있는 탭
- 빵 사진 나열 : 인스타그램 돋보기와 같이 3열로 빵 사진을 나열합니다. 각 칸에 맞도록 사진을 보여줍니다. 각 사진은 빵 먹으러 갈 사람을 구하는 포스트를 대표하는 사진입니다.
- 빵 포스트 상세보기 : 사진을 클릭하면 사진이 팝업되며, 빵 먹으러 갈 사람을 구하는 포스트의 상세 정보가 나옵니다. 빵 포스트에서 간단한 설명과 날짜, 위치, 인원을 확인할 수 있습니다.
- 빵 포스트 생성 : 사용자는 빵 먹으러 갈 사람을 구하는 빵 포스트를 생성할 수 있습니다. 포스트에 필요한 사진은 사용자 폰에 저장된 사진 또는 카메라로 직접 찍은 사진을 업로드할 수 있습니다. 또한 포스트의 목적을 담은 설명과 함께 날짜와 최대 참가자 수, 만남 장소를 입력하여 포스트를 생성합니다.
- 빵 포스트 참가 관리 : 포스트의 “참여하기” 버튼을 눌러 빵 먹으러 갈 사람을 모집하는 빵 포스트에 참가할 수 있습니다. 이미 참여한 포스트의 경우, 빵 사진이 블러 처리되어 보이며, 사진의 우상단에 “참여중”이라는 문구가 표시됩니다. 이미 참여 중인 이벤트의 상세보기에서 “참여중!” 버튼을 누르면 해당 이벤트 참가를 취소할 수 있습니다.
성심당 빵 랭킹을 확인하고, 나만의 평점과 리뷰를 남길 수 있는 탭
- 빵 랭킹 : 성심당 공식 홈페이지에서 가져온 빵 리스트를 RecyclerView로 나열합니다. 빵 대표사진, 이름, 전체 평점, 내 평점 정보를 포함합니다. 이때 보여지는 내 평점은 가장 최근에 매긴 평점에 해당합니다.
- 빵 검색 및 정렬 : 원하는 빵의 이름으로 검색할 수 있습니다. 정렬 기준은 평점 높은 순, 평점 낮은 순, 가나다순이 있으며, 이 기준에 따라 빵 목록을 정렬할 수 있습니다.
- 후기 작성 : 작성된 후기가 없는 빵을 클릭하면, 평점과 후기를 작성할 수 있습니다. 평점은 5점 만점이며, 후기는 사진을 첨부하여 자유롭게 작성할 수 있습니다. 작성 후 저장 버튼을 눌러 후기를 저장할 수 있습니다.
- 작성한 후기 리스트 보기 : 해당 빵에 대한 후기가 있다면, 지금까지 작성한 후기 리스트를 확인할 수 있습니다. 리스트에는 매긴 내 평점과 작성 날짜, 후기 내용과 사진이 포함됩니다. 삭제하고 싶은 후기를 휴지통 아이콘을 클릭해 삭제할 수 있습니다.
-
스크럼
- 개발 환경 구축
- Android Studio 설치
- Hello World! 출력
- XML 구조 이해
- 전기수 1주차 프로젝트 탐색
- 코드 분석 및 이해
- Github Repository 생성
- 아이디어 기획
- 작업 분배
- RecycleViewer 이해
- Github에서 project file을 clone해오니 실행 안되는 현상 발생
- local.properties에 sdk.dir을 설정해줘야 한다.
- VC는 local.properties를 추적하지 않음!
- 따라서, 로컬에서 손수 만들어줘야한다.
- 탭 1 주요기능 구현
- 접근권한 허용 받을 시 주소록에서 연락처 불러오기
- Listview로 보여주며, 이름과 번호 확인 가능
- 연락처 클릭하면 기본 전화 어플로 연결되어 바로 연락 가능
- 연락처 추가 버튼을 누르면 다이얼로그에 이름, 번호를 입력하여 생성
- 접근권한 허용 받을 시 주소록에서 연락처 불러오기
- 탭 2 주요기능 구현
- 인스타 돋보기 같이 빵 사진 나열
- 3열로 빵 사진 나열
- 각 칸 틀에 맞도록 사진 나열
- 사진 터치하면 사진이 팝업되고, 그 아래 사진 description이 뜨도록 만듦
- 사용자 폰에 있는 사진 업로드 가능
- 더미 데이터 생성
- 구현 내용 레포에 업로드
- 인스타 돋보기 같이 빵 사진 나열
- 개발 환경 구축
- 연락처와 갤러리 코드 merge, 충돌 시 발생하는 문제 해결
- 탭 1에서 연락처 삭제 및 검색 기능 추가 구현
- 탭 2의 사진 팝업 시 사진이 팝업되는 것은 구현. 이때 어떤 정보를 사용자에게 보여줘야 할 지 고민
- 탭 3 주제 확정 후 구현 구상
- Git commit은 최대한 자주 하기. 중간에 작업한 내용이 날라가서 다시 코딩했다.
- Chat-gpt는 GitHub 레포도 읽을 수 있다.
- 에뮬레이터 실행이 안될 때 local.properties 확인하자. keeps stopping 에러는 코드에서 발생한 문제일 확률이 크다.
- 탭 1, 2 디버깅 및 주요기능 구현 완료
- 연락처 검색 및 삭제 기능 구현
- 휴대폰 연락처 목록에 있는 번호 불러오는 동기화 기능 추가
- 탭 3 컨셉 확정 및 구현
- 성심당 빵 랭킹 탭
- 성심당 공식 홈페이지에서 빵 리스트를 가져와서 이를 Recycler view로 나열
- 빵 사진, 빵 이름, 다른사람들의 빵 평점값을 더미데이터로 만듬
- 각 빵 사진마다 내 평점을 매길 수 있음
- 탭 3 구현 이어서
- 더미데이터 수정
- 빵 검색 기능 추가
- 탭 2 카메라로 바로 연결 가능하도록 구현
- 탭 1, 2 컨셉에 맞게 UI 수정
- 많이 쓰이는 라이브러리 종류
- Recycler view
- Glide
- androix는 android support library를 개선하여 만들어진 것이다
- androidx로 마이그레이션하거나 하나만 선택해서 쓸 수 있음!!
- Tab2 수정
- DummyData 수정: 내가 이미 참여하고 있는 빵 이벤트의 경우, hasJoined를 true로 만들도록 만듬
- 카메라로 업로드하는 기능 추가: post 추가할 때, 로컬에 있는 이미지 파일 불러오는 것 뿐만 아니라 기기 카메라 이용해서 찍은 사진 바로 가져올 수 있게 함
- 권한 부여 이슈 발생 → 해결. 궁금한/필요한/알아닌 것 칸 참조
- 이벤트 참가 버튼 수정
- hasJoined가 true면 이미 이 이벤트를 참여한 상태이므로 버튼을 join이 아닌 already joined로 보이도록 바꿈
- join 버튼을 누르면 현재 참여인원을 하나 늘리고, already joined 버튼을 누르면 현재 참여인원을 하나 줄이는 로직 구현
- Tab2 디자인: Tab1과 동일한 스타일로 구현
- Tab3 수정
- 평점 매길 빵 검색할 수 있도록 구현
- 정렬 기준에 따라 랭킹 순위 볼 수 있도록 번호 매김
- ‘빵’ 컨셉에 맞게 전체적인 ui 수정
- 앱 이름: 빵빵이와 친구들
- Tab3 팝업탭 구상 및 구현
- 이미지가 들어있는 탭을 눌렀을 때, 빵 리뷰 나올 수 있도록 작업
- 전체적으로 디자인 한번 더 점검
- Tab2 Shared Preferences 적용
- 앱 로고 구상 및 스플레시 이미지에 적용
- README 파일 작성 시작 + 산출물 페이지도 작성 시작
- 카메라 이슈
- 기기 카메라를 사용하여 사진을 업로드 하려면 카메라 권한 뿐만 아니라 저장공간 권한까지 필요하다
- 카메라 권한은 한번만 사용 / 이 앱을 사용하는 동안 계속 사용 가능 / 사용 불가로 세 가지 권한이 있다
- 권한 종류가 3개이므로 이를 유의하면서 구현해야 한다.
- 앱 이름: 빵빵이와 친구들
- Tab3 팝업탭 구상 및 구현
- 이미지가 들어있는 탭을 눌렀을 때, 빵 리뷰 나올 수 있도록 작업
- 전체적으로 디자인 한번 더 점검
- Tab2 Shared Preferences 적용
- 앱 로고 구상 및 스플레시 이미지에 적용
- README 파일 작성 시작 + 산출물 페이지도 작성 시작
- tab1 추가기능 : 연락처 초성으로 분류
- tab1 추가기능 : 연락처 수정 기능 구현
- tab1 추가기능 : 연락처 ㄱ, ㄴ, ㄷ로 스크롤
- tab3 추가기능 : 후기가 없는 빵이면 후기를 작성할 수 있게 하기. 기존에 후기를 작성한 빵이면 후기를 볼 수 있는 페이지 만들기.
- 테스트
- README 수정, 앱 시연 사진 올려두기
- PPT 만들기
- 발표준비
- drawable을 사용하여 Button의 색상, 경계선의 radius 등을 변경하려고 할 때 색깔이 적용되지 않는 문제는 Button 대신 Theme.AppCompat.Light.NoActionBar을 사용하면 된다.
- 뷰가 다른 뷰에 가려져서 안 보이는 경우가 있음 → elevation 속성을 조절해 뷰의 우선순위를 결정한다.