- 주제 : 이웃 간 물건 공유 플랫폼
- 설명 : 같은 지역 내에서 누군가에게는 필요하지만, 다른 누군가에게는 당장 필요하지 않은 물건을 서로 공유하여 공유문화를 활성화시켜, 지역 사회 구성원의 화합을 이끌어내는 서비스
- 기간 : 2023.01.03 - 2023.02.17
Android Studio | Kotlin | Android Jetpack | Retrofit | FCM |
---|---|---|---|---|
- Retrofit을 이용한 AWS EC2의 MySQL, MongoDB와 REST API 통신
- 웹소켓 통신 STOMP를 이용한 채팅 기능
- STOMP로 실시간 채팅을 하며 동시에 공유 지도를 사용할 수 있는 기능
- Firebase Cloud Messaging을 이용한 푸시 알림 서비스
- 로그인 성공시 홈 화면으로 이동, 실패시 다이얼로그 띄움
- 비밀번호 재설정 페이지 이동
- 카카오 로그인
- 네이버 로그인
- 회원가입 페이지로 이동
- 이메일 인증 및 중복 확인
- 닉네임 중복 확인
- 회원가입 신청
- multipart/form-data로 물품 이미지 업로드
- Update 구성 과정에서 사용자가 입력했던 data를 그대로 받아와서 수정할 수 있게 구현함
- 검색 버튼
- 목록으로 검색
- 물품 공유 게시글 목록
- 물품 요청 게시글 목록
- on : 공유 가능 목록만 보기 / off : 전체 목록 보기
- 게시글 상세 내용 페이지 이동
- 공유글 작성 페이지 이동
- 요청글 작성 페이지 이동
- 메인 화면 이동
- 채팅 목록 화면 이동
- 마이 페이지 이동
- 키워드 검색
- 검색 내용 입력
- 한 글자 이상 입력후 엔터를 누르면 검색
- 물품 공유 탭의 경우 공유 가능만 보기 필터링 가능
- 카테고리 설정 버튼
- 해당 카테고리로 필터링 된 게시글을 확인할 수 있음
- 카테고리 검색
- 채팅 목록
- Websocket과 STOMP를 활용한 실시간 채팅
- 클릭시 메뉴 페이지 닫음
- 채팅 입력 후 클릭시 채팅이 전송
- 공유기간 설정
- 공유자 : 공유자가 대여해주는 기간을 설정할 수 있도록 캘린더 피커를 띄움
- 피공유자 : 공유자가 선택해준 공유 날짜 확인 가능
- 서약서 작성 및 확인
- 피공유자 : 피공유자가 물건을 깨끗하게 사용 후 반납하겠다는 서약서를 작성하는 다이얼로그
- 공유자 : 피공유자가 작성한 서약서 확인 가능
- 지도 공유하기
- 채팅 화면 상단에 지도 화면이 나타나서 공유자, 피공유자가 동시에 지도를 제어하고 마커를 찍는 등 지도 사용 가능
- 만남 확정하기
- 공유자가 만남 확정하기 버튼을 누르면 공유가 시작됨
- 반납하기
- 피공유자가 물건 반납 후 공유자가 반납하기 버튼을 누르면 피공유자에 대한 평가를 별점으로 할 수 있는 다이얼로그
- 만남 취소
- 만남 확정 전 만남을 취소 한 뒤 채팅이 불가해짐
- 캔버스를 이용한 사인 및 서약서 기능
- 확인 시 다이얼로그 닫힘
- 실시간으로 1:1 채팅과 kakao map 을 동시에 제어할 수 있음
- 공유 지도 서비스
- 꾹 누르면 마커가 찍히며 상대방의 지도가 이동
- 드래그 엔 드롭을 하면 지도가 이동하며 상대방의 지도가 이동
- 줌인아웃을 하면 지도가 확대되며 상대방의 지도가 확대
- 사용자 프로필 / 포인트 내역 / 동네인증
- 프로필 편집 페이지로 이동
- 매너지수
- 클릭시 매너지수에 대한 안내가 나옴
- 현재 마감 임박, 시작 임박인 공유, 대여 물품을 보여줌
- 공유 캘린더 페이지로 이동
- 나의 작성글 페이지로 이동
- 나의 관심글 페이지로 이동
- 포인트 내역 페이지로 이동
- 나의 공유 물품 페이지로 이동
- 나의 대여 물품 페이지로 이동
- 나의 대여 물품 페이지로 이동
- 내 동네 설정 페이지로 이동
- 로그아웃 후 로그인 페이지로 이동
- 내 동네 설정 : GPS 기반으로 사용자의 동네를 가져옴
- 현재 저장된 사용자의 동네를 보여줌
- 버튼 클릭시 사용자 위치를 감지하여 동네 설정
- 성공시 성공 다이얼로그 띄운 후 확인 버튼 클릭시메인 화면으로 이동
- 실패시 실패 다이얼로그
- 포인트 내역
- 총 포인트, 총 적립 포인트, 총 사용 포인트 시각화
- 총 포인트 대비 사용 포인트를 progress bar로 제공
- 공유 영수증
- 포인트 적립/차감 내역을 최신순으로 정렬
- 박정은
- 코루틴과 Retrofit을 이용한 REST 통신을 이해 할 수 있었습니다.
- STOMP를 이용한 웹소켓 통신을 처음 사용하면서 작동 원리를 이해할 수 있었습니다.
- 안드로이드 제트팩 라이브러리를 좀 더 다양하게 사용하지 못한 점이 아쉬웠습니다.