Skip to content

Latest commit

 

History

History
466 lines (438 loc) · 37.6 KB

README.md

File metadata and controls

466 lines (438 loc) · 37.6 KB

homemade_guardian_beta

1. App

사용자 간 물물교환을 할 수 있고, 채팅 및 커뮤니티 기능을 제공하는 소셜 네트워크 서비스(SNS) 어플리케이션

Firebase - HomemadeGuardian Test (테스트) / Homemade Guardian Beta (Store)

2. Inteface

  1. 로그인 화면

1. 구글 로그인/ 카카오 로그인 기능

2. 자동로그인 기능

  1. 회원정보 화면

1. 회원정보의 입력은 사진과 닉네임과 생년월일과 학교를 받는 화면이다

2. 닉네임을 입력 받지 않을시 이메일의 앞부분으로 생성한다.

3. 사진을 선택 시 선택한 사진이 미리보기로 보여진다.

  1. 마켓리스트 화면

유저들의 마켓에 올린 게시물이 실시간으로 보여진다.

  1. 검색 창 화면& 카테고리 화면

1. 상단 오른쪽 돋보기 버튼을 누르면 검색창으로 검색창으로 이동된다.

2. 단어를 검색시 게시물의 제목의 글자를 찾아 검색결과의 리스트를 보여준다.

3. 하단 카테고리버튼을 클릭시 해당 카테고리리스트를 보여준다.

  1. 마켓 게시물 화면

1. 유저가 올린 게시물을 클릭시 해당 게시물의 상세 정보를 보여준다.

2. 게시물 창에는 게시물을 올린 유저의 사진을 5장까지 스와이핑까지 가능하다.

3. 좋아요, 신고하기 기능도 있다.

4. 게시물의 작성자와 채팅을 원할시 하단부에 있는 채팅하기를 누르면 채팅창으로 이동된다.

  1. 호스트 정보 화면

1. 게시자의 프로필사진을 클릭시 게시자의 회원정보 창이 나온다.

2. 게시자 회원정보 창에는 게시자의 정수와 리뷰가 나온다.

  1. 커뮤니티 리스트 화면

1. 회원들이 올린 커뮤니티 리스트가 올라온다.

  1. 커뮤니티 검색 창 화면

1. 상단 오른쪽 돋보기 버튼을 누르면 검색창으로 검색창으로 이동된다.

2. 단어를 검색시 게시물의 제목의 글자를 찾아 검색결과의 리스트를 보여준다.

  1. 커뮤니티 게시물 화면

1. 유저가 올린 게시물을 클릭시 해당 게시물의 상세 정보를 보여준다.

2. 게시물 창에는 게시물을 올린 유저의 사진을 5장까지 스와이핑까지 가능하다.

3. 좋아요, 신고하기 기능도 있다.

4. 해당 게시물에 댓글을 달 수 있다.

  1. 게시물 작성 화면

1. 마켓 버튼을 클릭시 마켓 리스트에 올릴 수 있는 글쓰기 창이 생성된다.

2. 마켓에는 카테고리, 제목, 상세정보를 기입가능하며 사진은 5장까지 등록이 가능하다. 또한 선택된 사진의 미리보기가 가능하다.

1. 커뮤니티 버튼을 클릭시 커뮤니티 리스트에 올릴 수 있는 글쓰기 창이 생성된다.

2. 커뮤니티글쓰기에는 카테고리, 제목, 상세정보를 기입가능하며 사진은 5장까지 등록이 가능하다. 또한 선택된 사진의 미리보기가 가능하다.

  1. 채팅 화면

1. 채팅방 목록에는 현 유저가 지금까지 채팅한 채팅목록을 보여준다. 채팅한 상대가 채팅을 보냈을시 오른쪽에 개수가 표시된다.

2. 채팅방목록리스트에 원하는 채팅을 누를시 채팅방으로 이동되며 채팅이 어떠한 마켓에서 생성되었는지 마켓의 정보가 상단에 표시된다.

3. 해당 마켓의 정보는 유저가 마켓게시물을 올린 호스트인지 게스트인지에 따라 바뀐다.

12)채팅방 기능

1. 호스트일시 해당 게시물의 거래시에는 거래중 거래완료라는 체크로 해당게시물이 자동적으로 상태를 알수 있게 한다.

2. 거래완료시 자동적으로 호스트와 게스트는 상대방의 거래의 거래상태와 리뷰를 남길 수 있다.

1. 채팅으로는 글과 사진을 보내기 가능하다.

2. 하단부에 있는 사진 버튼을 클릭시 해당 디바이스에 있는 사진들을 불러와 사진을 선택시 보내지게 된다.

13)내정보 화면&수정

1. 내 정보에는 회원정보에는 해당 유저의 다양한 정보를 확인해 볼 수 있다.

2. 회원정보 변경 버튼 클릭시 회원정보 변경 창으로 전환 되며 변경시 자동적으로 내 정보가 바뀌게 된다.

  1. 진행중 게시물 화면

1. 진행중 버튼 클릭시 현재 내가 진행중인 게시물의 정보리스트가 보여지는 창이 나오게 된다.

  1. 거래완료 창 화면

1. 거래완료 버튼 클릭시 지금까지 거래되었던 게시물의 정보가 보여지게 된다.

  1. 내가 작성한 게시물 화면

1. 내가 작성한 게시물버튼을 클릭시 내가 지금까지 올렸던 게시물들의 정보가 마켓과 커뮤니티 카테고리로 분류되어 나타나게 된다.

  1. 나에게 작성된 리뷰 화면

1. 나에게 작성한 리뷰버튼을 클릭시 지금까지 나에게 수기로 작성된 리부의 목록 리스트가 나타나게 된다.

  1. 로그아웃 화면

1. 로그아웃 클릭시 로그아웃 경고 창이 나타나게 되며 로그아웃버튼을 한번더 클릭시 최초 로그인 화면으로 넘어가게 된다.

3. Explanation

Ⅰ chat(패키지)

1. activity (패키지)

  1. ChatActivity : 여러 변수를 다른 액티비티에서 받아오고 여러 프레그먼트를 담고 있다.
    ◇ 주요 변수
    currentUser_Uid (현재 자신의 UID), To_User_Uid (상대방 UID), ChatRoomListModel_RoomUid(채팅방 UID), MarketModel_Market_Uid(마켓 UID)
    ◆ 주요 기능
    ⓐ ChatFragment의 위치를 선정해 주고 주요변수를 넘겨준다.
    ⓑ currentUser_Uid와 해당 마켓의 MarketModel_Host_Uid에 따라 다른 프레그먼트를 띄워준다.
  2. SelectUserActivity : 그룹채팅방을 할 때 사용하는 액티비티 (현재는 사용하지 않음, 나중에 사용할지 모르므로 남겨 놓은 상태)

2. common (패키지)

  1. phoroview(패키지) : 사진 확대시 사용하는 패키지 (현재는 사용하지 않음, 나중에 사용할지 모르므로 남겨 놓은 상태이다.)
  2. MyAppGlideModule : Firebase Storage with Glide를 이용하여 ImageView에 이미지 띄우기위해 사용하는 자바 파일

3. fragment (패키지)

  1. ChatFragment : 실제 채팅에 관련된 모든 기능을 담당하고 있다.
    ◇ 주요 변수
    currentUser_Uid (현재 자신의 UID), To_User_Uid (상대방 UID), ChatRoomListModel_RoomUid (채팅방 UID), MarketModel_Market_Uid (마켓 UID)
    ◆ 주요 기능
    ⓐ 메세지 (글, 사진)을 파이어베이스를 통하여 상대방에게 보내준다.
    ⓑ 상대방과 이전까지 했던 채팅 기록을 리스트 형태로 띄워준다.
  2. GroupUserFragment : 그룹채팅에 사용하는 프레그먼트 (현재는 사용하고 있지 않음)
  3. Guest_Chat_MarketInfoFragment : 해당 마켓의 게스트용 마켓의 정보가 보여지는 프레그먼트
    ◇ 주요 변수
    MarketModel_Market_Uid (마켓 UID)
    ◆ 주요 기능
    ⓐ 마켓의 정보를 파이어베이스에서 가져와 정보를 띄워준다.
  4. Host_Chat_MarketInfoFragment : 해당 마켓의 호스트용 마켓의 정보가 보여지는 프레그먼트이고 해당 마켓의 예약과 거래완료기능이 있음
    ◇ 주요 변수
    MarketModel_Market_Uid(마켓 UID), To_User_Uid(상대방 UID), currentUser_Uid (현재 자신의 UID)
    ◆ 주요 기능
    ⓐ 마켓의 정보를 파이어베이스에서 가져와 정보를 띄워준다.
    ⓑ 해당 마켓의 예약과 거래완료를 설정할수있다.
  5. Nonepost_chat_MarketInfoFragment : 해당 마켓의 정보가 없을 때 띄우는 프레그먼트
    ◇ 주요 변수
    MarketModel_Market_Uid(마켓 UID)
    ◆ 주요 기능
    ⓐ 마켓의 정보가 없을 때 빈 프레그먼트를 띄워준다.

Ⅱ community (패키지)

1. activity (패키지)

  1. CommunityActivity : 커뮤니티 페이지의 선택된 게시물의 상세 정보 액티비티
    ◇ 주요 변수
    Communitymodel (커뮤니티 모델), Usermodel (유저 모델), community_CommentModel(커뮤니티 댓글 모델)
    ◆ 주요 기능
    ⓐ 해당 게시물의 상세정보와 해당 게시물의 작성자의 정보가 입력 되어있다.
    ⓑ 좋아요라는 게시물의 관심도가 실시간으로 표시되며 해당 게시물에 입장한 게스트들은 '좋아요'를 누를 수 있다.
    ⓒ 게시물 하단부에 댓글을 달 수 있다.
  2. EnlargeCommunityImageActivity : CommunityActivity에서 이미지가 있다면 클릭하여 큰 Image의 뷰페이저 형식으로 볼 수 있는 액티비티
    ◆ 주요 기능
    ⓐ CommunityActivity에서 이미지가 있다면 클릭하여 큰 Image의 뷰페이저 형식으로 볼 수 있음
  3. ModifyCommunityActivity : 게시물의 수정을 위한 액티비티
    ◇ 주요 변수
    Communitymodel
    ◆ 주요 기능
    ⓐ 게시물에서 수정을 눌렀을 때 실행되는 액티비티가 실행되며 게시물 수정 액티비티로 이동된다.
  4. SearchCommunityActivity : 검색을 실행하려 하고 검색하고자 하는 단어를 입력 받는 액티비티
    ◇ 주요 변수
    Communitymodel
    ◆ 주요 기능
    ⓐ 커뮤니티 페이지에서 검색을 실행하려 하고 검색하고자 하는 단어를 입력 받는 액티비티이며 단어를 입력한 후 버튼을 누르면 SearchCommunityResultActivity로 넘어가게 된다
  5. SearchCommunityResultActivity : SearchCommunityActivity에서 버튼을 눌러 넘어 온 액티비티
    ◆ 주요 기능
    ⓐ SearchCommunityResultFragment에서 Fragment를 이용하여 결과물을 출력한다. <-> SearchCommunityResultAdapter와 연결된다.

2. adapter (패키지)

  1. CommunityAdapter : CommunityFragment와 연결된 어댑터
    ◆ 주요 기능
    ⓐ onBindViewHolder로 카드뷰에 게시물의 정보들을 담는 역할을 한다.
  2. CommunityViewPagerAdapter : 뷰페이져에서 이미지리스트의 string으로 저장된 이미지들을 imageList에 넣어서 CommunityActivity에서 슬라이드하여 이미지들을 볼 수 있게 해준다
  3. SearchCommunityResultAdapter : SearchResultFragment와 연결된 어댑터
    ◆ 주요 기능
    ⓐ onBindViewHolder로 카드뷰에 게시물의 정보들을 담는 역할을 한다.

3. fragment (패키지)

  1. SearchCommunityResultFragment : 검색 결과 액티비티에서의 결과를 담고 있는 프레그먼트
    ◇ 주요 변수
    CommunityModel
    ◆ 주요 기능
    ⓐ SearchCommunityActivity (abc 검색) -> SearchCommunityResultActivity (abc 가져옴) (abc 전해줌) -> SearchCommunityResultFragment (abc 가져옴)

Ⅲ Main (패키지)

1. activity (패키지)

  1. BasicActivity : 액티비티 생성시 틀이 되는 액티비티
    ◆ 주요 기능
    ⓐ AppCompatActivity를 기본으로 부가적인 기능을 추가하여 BasicActivity으로 만들었으며 다른 액티비티에서 이를 호출하여 사용한다.
    ⓑ public class 쓰려는 액티비티 (extends AppCompatActivity) --> (extends BasicActivity)
  2. HostModelActivity : 사용자의 정보를 보여주는 액티비티
  3. LoginActivity : 로그인 액티비티
    ◆ 주요 기능
    ⓐ 구글 로그인 버튼 선택시 구글 Auth를 통하여 로그인을 입력 받는다. 그 후 메인으로 넘겨준다.
    ⓑ 카카오 로그인 선택시 카카오 측으로부터 아이디를 받아온다. 그 후 그 아이디와 미리 설정해 놓은 비밀 번호로 파이어베이스 로컬 아이디 Auth를 만들어 준다. 그 후 메인으로 넘겨준다.
    ⓒ 이후 앱을 다시 실행 하였을때 로그인을 자동으로 확인하여 로그인액티비티를 지나치지 않고 바로 메인으로 넘어가게 된다.
    ⓓ 처음 로그인(해당 아이디가 지금 막 생성되지 않았더라면)이 아니라면 해당 정보에 토큰을 확인하여 만약 토큰이 다르다면 새로 토큰을 받아와 유저정보를 업데이트 해준다.
  4. MainActivity : 메인 액티비티
    ◆ 주요 기능
    ⓐ 어플리케이션이 시작되면 처음 들르는 액티비티로 유저의 로그인 상태 정보를 판별하며, 하단 네비게이션의 각 속성들을 선언, 정의 해주는 액티비티
    ⓑ 하단 네비게이션 : 마켓 페이지, 커뮤니티 페이지, 글쓰기 페이지, 채팅방 목록 페이지, 내정보 페이지
    ⓒ 유저의 정보가 있는지를 확인하고 만약 없다면 InitActivity로 넘겨 준다.
  5. MemberInitActivity : 이용자 정보를 입력받는 액티비티
    ◆ 주요 기능
    ⓐ 사용자의 정보를 입력 받는다.
    ⓑ 해당 액티비티에서 입력받은 정보들은 파이어스토어 USER라는 문서에 해당 유저의 UID를 통에 입력하게 된다.
  6. MyInfo_WritenPostActivity : 내가 적은 게시물 목록 액티비티
    ◇ 주요 변수
    currentUser_Uid
    ◆ 주요 기능
    ⓐ My_Writen_Market_Fragment와 My_Writen_Community_Fragment를 담고 있다.
  7. MyInfoPostActivity : 내정보 페이지에 예약중,거래완료,나에게 작성된 리뷰 프레그먼트를 담고 있다.
    ◇ 주요 변수
    CurrentUid(현재 자신의 UID), Info(선택한 것의 넘버)
    ◆ 주요 기능
    ⓐ 선택에 따라 프레그먼트를 다른 것을 보여준다.
  8. ReviewActivity : 리뷰 액티비티
    ◇ 주요 변수
    Usermodel(유저 모델), Reviewmodel(리뷰 모델)
    ◆ 주요 기능
    ⓐ 거래 완료후 거래중이 였던 상대방의 사용자에 리뷰를 다는 액티비티
    ⓑ 친절함, 정확함, 완벽함, 불쾌감 중에 상태방의 상태를 선택한다.
    ⓒ 후기작성 선택이 가능하다. 후기를 선택했다면 WriteReviewActivity로 이동된다.
    ReviewActivity에서 불쾌감을 누를시 자동적으로 WriteReviewActivity로 이동된다.
  9. UpdateInfoActivity : 회원정보를 바꾸는 액티비티
    ◇ 주요 변수
    Usermodel(유저 모델)
    ◆ 주요 기능
    ⓐ MyInfoFragment에서 회원의 정보를 바꾸어 준다.
  10. WriteCommunityActivity ; 커뮤니티 게시물 작성 액티비티
    ◇ 주요 변수
    Communitymodel(커뮤니티 모델)
    ◆ 주요 기능
    ⓐ 글쓰기 중 커뮤니티페이지에 올라갈 게시물을 작성하는 액티비티이다.
  11. WriteMarketActivity ; 커뮤니티 게시물 작성 액티비티
    ◇ 주요 변수
    Marketmodel(마켓 모델)
    ◆ 주요 기능
    ⓐ 글쓰기 중 마켓페이지에 올라갈 게시물을 작성하는 액티비티이다.
  12. WriteReviewActivity : 리뷰에 후기를 작성하는 액티비티
    ◆ 주요 기능
    ⓐ 이용자는 ReviewActivity 에서 후기를 작성을 원할시 현 액티비티로 이동되어 작성할 수 있다.
    ⓑ ReviewActivity에서 불쾌감을 누를시 자동적으로 후기를 입력받게 한다.

2. bottombar (패키지)

  1. ChatroomList_BottombarFragment : 채팅방 목록 페이지 프레그먼트
    ◇ 주요 변수
    chatRoomListModel(채팅 목록 모델)
    ◆ 주요 기능
    ⓐ 현 이용자의 지금까지의 채팅을 하였었던 정보들을 파이어스토어 ROOMS에서 불러 와 Adapter에 배치 시켜 준다.
    ⓑ 오른쪽 스와이핑을 통해 방을 나갈 수 도 있다.
    ⓒ 해당 채팅방을 선택시 해당 채팅정보를 ChatActivity로 넘겨주며 이동하게 된다.
  2. Community_BottombarFragment : 커뮤니티 페이지 프레그먼트
    ◇ 주요 변수
    CommunityModel(커뮤니티 모델)
    ◆ 주요 기능
    ⓐ 커뮤니티에 현재 올라와져 있는 모든 게시물을 파이어 스토어 COMMUNITY문서에서 정보를 불러와 Adapter에 배치시킨다.
    ⓑ 핫 게시물을 통해 좋아요 개수에 맞추어 필터링을 시켜준다.
    ⓒ 원하는 게시물의 카드뷰를 누를시 해당정보를 CommunityModel를 CommunityActivity로 넘겨주며 이동하게 된다.
  3. Market_BottombarFragment: 마켓 페이지 프레그먼트
    ◇ 주요 변수
    MarketModel(마켓 모델)
    ◆ 주요 기능
    ⓐ 커뮤니티에 현재 올라와져 있는 모든 게시물을 파이어 스토어 MARKET문서에서 정보를 불러와 Adapter에 배치시킨다.
    ⓑ 해당 카테고리별로 필터링이 가능하다.
    ⓒ 핫 게시물을 통해 좋아요 개수에 맞추어 필터링을 시켜준다.
    ⓓ 원하는 게시물의 카드뷰를 누를시 해당정보를 MarketModel를 MarketActivity로 넘겨주며 이동하게 된다.
  4. MyInfo_BottombarFragment : 내정보 페이지 프레그먼트
    ◇ 주요 변수
    CurrentUid(현재 자신의 UID)
    ◆ 주요 기능
    ⓐ 현재 이용자의 정보를 띄워준다.
    ⓑ 거래중,거래완료,내가 쓴 게시물를 볼수 있다.
    ⓒ 현재 나의 리뷰의 상태를 알 수 있다.
    ⓓ 공지사항, 자주 묻는질문, 앱설정, 로그아웃을 이용할 수 있다.(현재 공란)

3. common (패키지)

  1. OnPostListener (패키지) : 삭제를 할 때에 FirebaseHelper와 연결되어 사용되는 Interface
  2. BackPressEditText : EditText에 사용하는 widget
  3. OFirebaseHelper : 파이어베이스에서 파이어스토어,파이어스토리지의 MARKET,COMMUNITY,ROOMS삭제에 관여한다.
  4. FirestoreAdapter : 파이어스토어 Data를 RecyclerView를 연결해줌
  5. GlobalApplication : 카카오 로그인시 토큰받아오게 해줌
  6. OItemTouchHelperCallback : ChatroomList_BottombarFragment 에서 오른쪽 스와이핑시 삭제라는 아이템이 나오고 클릭시 Adapter에서 삭제가 가능하게 함
  7. ItemTouchHelperListener : ItemTouchHelperCallback의 함수를 불러오는 리스너
  8. Loding_Dialog : 로딩중 다이어로그
  9. Logout_Dialog : 로그아웃 다이어로그
  10. MyFirebaseMessagingService : 파이어베이스 클라우드 메세징
  11. ReviewResultAdapter : SearchResultFragment와 연결된 어댑터이다. onBindViewHolder로 카드뷰에 검색된 게시물의 정보들을 담는 역할을 한다. !검색된 결과의 게시물 나열!
  12. SendNotification : 파이어베이스 클라우드 메세징
  13. ThumbnailImageView : MainFragment에서 이미지를 썸네일로써 한장만 보여주고 2장 이상일경우 "더보기"로 구현
  14. Util : BaseActivity와 같은 개념으로 여러군데에서 사용하는 특정 함수들을 모아서 선언해 놓은 Class이다, 가장 많이 사용되는 것은 토스트를 생성하는 메소드이지만, isStorageUrl에서 파이어베이스의 스토리지 경로를 저장한 부분이 중요한 곳이다.
  15. Deal_Complete_Post_Fragment : 나와 거래가 되었던 포스트의 정보를 보여주는 프레그먼트
    ◇ 주요 변수
    CurrentUid(현재 이용자 UID), MarketModel(마켓 모델)
    ◆ 주요 기능
    ⓐ MyInfo_BottombarFragment에서 거래 완료라는 버튼을 클릭시 MyInfoPostActivity에 Deal_Complete_Post_Fragment 로 띄워진다.
    ⓑ 파이어베이스 CurrentUid의 Market_dealList를 차례로 받아와 MARKETS에서 불러온다.
  16. My_Writen_Community_Fragment: 나가 작성한 커뮤니티의 정보를 보여주는 프레그먼트
    ◇ 주요 변수
    CurrentUid(현재 이용자 UID), CommunityModel(마켓 모델)
    ◆ 주요 기능
    ⓐ MyInfo_BottombarFragment에서 거래 완료라는 버튼을 클릭시 MyInfoPostActivity에 My_Writen_Community_Fragment 로 띄워진다.
    ⓑ 파이어베이스 COMMUNITY문서에서 CommunityModel_Host_Uid가 CurrentUid와 같고 CommunityModel_DateOfManufacture는 최신순으로 콜렉션 해온다.
  17. My_Writen_Market_Fragment: 나가 작성한 마켓의 정보를 보여주는 프레그먼트
    ◇ 주요 변수
    CurrentUid(현재 이용자 UID), MarketModel(마켓 모델)
    ◆ 주요 기능
    ⓐ MyInfo_BottombarFragment에서 거래 완료라는 버튼을 클릭시 MyInfoPostActivity에 My_Writen_Market_Fragment 로 띄워진다.
    ⓑ 파이어베이스 MARKET문서에서 MarketModel_Host_Uid가 CurrentUid와 같고 MarketModel_DateOfManufacture는 최신순으로 콜렉션 해온다.
  18. Proceeding_Post_Fragment : 내가 거래중인 마켓의 정보를 보여주는 프레그먼트
    ◇ 주요 변수
    CurrentUid(현재 이용자 UID), MarketModel(마켓 모델)
    ◆ 주요 기능
    ⓐ MyInfo_BottombarFragment에서 진행중이라는 버튼을 클릭시 MyInfoPostActivity에 Proceeding_Post_Fragment 로 띄워진다.
    ⓑ 파이어베이스 CurrentUid의 Market_reservationList를 차례로 받아와 MARKETS에서 불러온다.
  19. To_Review_Writen_Fragment : 나에게 작성된 리뷰 프레그먼트
    ◇ 주요 변수
    CurrentUid(현재 이용자 UID), ReviewModel(리뷰 모델)
    ◆ 주요 기능
    ⓐ MyInfo_BottombarFragment에서 나에게 작성된 리뷰이라는 버튼을 클릭시 MyInfoPostActivity에 To_Review_Writen_Fragment띄워진다.
    ⓑ USERS에서 CurrentUid중 REVIEW를 최신순으로 불러온다.

Ⅳ Market (패키지)

1. activity (패키지)

  1. EnlargeImageActivity : MarketActivity에서 이미지가 있다면 클릭하여 큰 Image의 뷰페이저 형식으로 볼 수 있음
  2. GalleryActivity : 이미지를 단일 선택하고, 사용자의 프로필 사진의 선택을 할 때에 실행되는 액티비티이다. 초기화 버튼 존재
    ◆ 주요 기능
    ⓐ MemberInitActivity, UpdateInfoActivity에서 사진을 고를 때에 사용된다. <-> GalleryAdapter와 연결된다.
  3. MarketActivity: 커뮤니티 페이지의 선택된 게시물의 상세 정보 액티비티
    ◇ 주요 변수
    Marketmodel (마켓 모델), Usermodel (유저 모델), Comment_MarketModel(커뮤니티 댓글 모델)
    ◆ 주요 기능
    ⓐ 해당 게시물의 상세정보와 해당 게시물의 작성자의 정보가 입력 되어있다.
    ⓑ 좋아요라는 게시물의 관심도가 실시간으로 표시되며 해당 게시물에 입장한 게스트들은 좋아요를 누를 수 있다.
    ⓒ 해당 게시물의 작성자와 채팅하기 버튼을 통하여 채팅이 가능하다.
  4. ModifyMarketActivity: 게시물의 수정을 위한 액티비티
    ◇ 주요 변수
    MarketAmodel
    ◆ 주요 기능
    ⓐ 게시물에서 수정을 눌렀을 때 실행되는 액티비티가 실행되며 게시물 수정 액티비티로 이동된다.
  5. SearchMarketActivity : 검색을 실행하려 하고 검색하고자 하는 단어를 입력 받는 액티비티
    ◇ 주요 변수
    MarketAmodel
    ◆ 주요 기능
    ⓐ 마켓 페이지에서 검색을 실행하려 하고 검색하고자 하는 단어를 입력 받는 액티비티이며 단어를 입력한 후 버튼을 누르면 SearchMarketResultActivity로 넘어가게 된다
  6. SearchMarketResultActivity : SearchMarketActivity에서 버튼을 눌러 넘어 온 액티비티
    ◆ 주요 기능
    ⓐ SearchMarketResultFragment에서 Fragment를 이용하여 결과물을 출력한다. <-> SearchMarketResultAdapter와 연결된다.

2. adapter (패키지)

  1. GalleryAdapter : GalleryActivity와 연결되어 사용되는 어댑터
  2. MarketAdapter : MarketFragment와 연결된 어댑터
    ◆ 주요 기능
    ⓐ onBindViewHolder로 카드뷰에 게시물의 정보들을 담는 역할을 한다
  3. ViewPagerAdapter : 뷰페이져에서 이미지리스트의 string으로 저장된 이미지들을 imageList에 넣어서 MarketActivity에서 슬라이드하여 이미지들을 볼 수 있게 해준다
  4. SearchMarketResultAdapter : SearchResultFragment와 연결된 어댑터
    ◆ 주요 기능
    ⓐ onBindViewHolder로 카드뷰에 검색된 게시물의 정보들을 담는 역할을 한다. 검색된 결과의 게시물 나열할때 사용

3. fragment (패키지)

  1. Market_Borrow_Fragment : SearchResultActivity에서 카테고리가 '대여하기'인 Market 나열 Fragment
    ◇ 주요 변수
    Marketmodel(마켓 모델)
    ◆ 주요 기능
    ⓐ SearchResultActivity에서 Info = 3을 가지고 이동된 Fragment : 카테고리가 '대여하기'인 Market 나열 Fragment
  2. Market_Food_Fragment: SearchResultActivity에서 카테고리가 '음식교환'인 Market 나열 Fragment
    ◇ 주요 변수
    Marketmodel(마켓 모델)
    ◆ 주요 기능
    ⓐ SearchResultActivity에서 Info = 1을 가지고 이동된 Fragment : 카테고리가 '음식교환'인 Market 나열 Fragment
  3. Market_Quest_Fragment: SearchResultActivity에서 카테고리가 '퀘스트'인 Market 나열 Fragment
    ◇ 주요 변수
    Marketmodel(마켓 모델)
    ◆ 주요 기능
    ⓐ SearchResultActivity에서 Info 4을 가지고 이동된 Fragment : 카테고리가 '퀘스트'인 Market 나열 Fragment
  4. Market_Thing_Fragment: SearchResultActivity에서 카테고리가 '물건교환'인 Market 나열 Fragment
    ◇ 주요 변수
    Marketmodel(마켓 모델)
    ◆ 주요 기능
    ⓐ SearchResultActivity에서 Info = 2을 가지고 이동된 Fragment : 카테고리가 '물건교환'인 Market 나열 Fragment
  5. SearchResultFragment : 검색된 Market 나열 Fragment
    ◇ 주요 변수
    Marketmodel(마켓 모델)
    ◆ 주요 기능
    ⓐ SearchResultActivity에서 Info = 0을 가지고 이동된 Fragment

Ⅴ model (패키지)

1. chat

  1. ChatimageModel : 이미지 이름과 파일 모델
  2. ChatRoomListModel : 채팅목록 리스트의 모델
  3. MessageModel : 파이어스토어 MESSAGE 문서 모델
    ◇ 주요 변수
    Marketmodel (마켓 모델), Usermodel (유저 모델), Comment_MarketModel(커뮤니티 댓글 모델)
    ◆ 주요 기능
    ⓐ 해당 게시물의 상세정보와 해당 게시물의 작성자의 정보가 입력 되어있다.
    ⓑ 좋아요라는 게시물의 관심도가 실시간으로 표시되며 해당 게시물에 입장한 게스트들은 좋아요를 누를 수 있다.
    ⓒ 해당 게시물의 작성자와 채팅하기 버튼을 통하여 채팅이 가능하다.
  4. NotificationModel : 사용x
  5. RoomModel : 파이어스토어 ROOMS 문서 모델

2. community

  1. Community_CommentModel : 커뮤니티 파이어스토어 COMMENT 문서 모델
  2. CommunityModel : 파이어스토어 COMMUNITY 문서 모델

3. market

  1. Market_CommentModel : 마켓 파이어스토어 COMMENT 문서 모델
  2. MarketModel : 파이어스토어 MARKET 문서 모델

4. photo

  1. DirectoryModel : 사진 디렉토리의 모델
  2. PhotoModel : 사진 모델

5. user

  1. ReviewModel : 파이어스토어 REVIEW 모델
  2. UserModel : 파이어스토어 USERS 모델

Ⅵ photo(패키지)

1. activity (패키지)

  1. PhotoPickerActivity : 사진을 다중 선택하는 이벤트의 최초로 도달하는 액티비티
    ◆ 주요 기능
    ⓐ 주된 기능은 앨범, 카메라,스토리지에 대한 접근 및 카메라 실행 / 사진 각 장마다의 setOnClickListener (ImagePagerFragment) / 접근한 경로의 이미지들을 배열하는 것 (PhotoPickerFragment) 이렇게 3가지이다.
    ⓑ PhotoPickerActivity → (PhotoPickerFragment) → (PhotoGridAdapter)
    └ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ→ (ImagePagerFragment) → (PhotoPagerAdapter)

2. adapter (패키지)

  1. PhotoGridAdapter : PhotoPickerFragment와 연결되어 제일 첫번째에는 카메라 기능을 연결할 버튼을 배치하고 그 다음부터는 이미지들을 나열한다.
  2. PhotoPagerAdapter : ImagePagerFragment와 연결되어 있고, 이미지를 크게 보기 위한 데에 필요한 Adapter이다.
  3. PopupDirectoryListAdapter : PhotoPickerFragment에서 나타낸 하단부에 이미지들의 디렉토리를 고를 수 있다. 다른 경로의 이미지들을 선택할 수 있게 해준다.
  4. SelectableAdapter : RecyclerView에 Utill처럼 PhotoModel package에서만 사용 할 기능을 추가하여 쓰기 위해 만든 추상 클래스

3. common (패키지)

  1. event(패키지)
    ◆ 주요 기능
    ⓐ 1. OnItemCheckListener : 이미지들이 나열되어 있는 PhotoPickerFragment와 연결되어 있는 PhotoGridAdapter에서 사진들이 체크되었을 때 발생하는 이벤트를 interface로 선언한 것
    ⓑ 2. OnPhotoClickListener : 이미지들이 나열되어 있는 PhotoPickerFragment와 연결되어 있는 PhotoGridAdapter에서 사진이 클릭 되었을 때 발생하는 이벤트를 interface로 선언한 것
    ⓒ 3. Selectable : 이미지를 선택 할 수 있는지 아닌지를 구별하는 interface
  2. widget(패키지)
    ◆ 주요 기능
    ⓐ 1. SquareItemLayout : PhotoGridAdapter를 이용하여 이미지들을 나열 할 때에 이미지의 규격을 설정한 것
    ⓑ 2.TouchImageView : PhotoPagerAdapter에서 나타낸 이미지 한장을 나타내는 화면에서 여러가지 기능들을 구현 할 수 있도록 만들어 놓은 것이다. 더블탭으로 이미지 확대 축소헤서 보기, 이미지 화면의 폭에 맞추기, 이미지의 높이가 더 크면 스크롤로 볼 수 있게 하기
  3. ImageCaptureManager : PhotoPickerFragment에 나열되어 있는 이미지, 카메라 버튼 중에 카메라 버튼을 누르면 실행되는 이벤트
  4. ImagePagerFragment: PhotoPickerFragment,PhotoGridAdapter로 나열한 이미지들 중에 이미지 하나를 클릭하였을 때 확대 보기를 하기위한 Fragment, ImagePagerFragment 역시 PhotoPickerActivity 와 연결되어 있지만, 사진이 클릭하는 이벤트가 발생했을 때 Intne
  5. PhotoPickerFragment : PhotoPickerActivity와 연결된 Fragment로 앨범의 이미지들을 나열하는 기능
  6. PhotoUtil : 형태는 조금 다르나 다른 package에서 쓰이는 Utill과 기능

4. 세부 사항

세부내용은 해당 파일중 보고서 파일을 보기 바랍니다.

5. FeedBack

피드백이나 기능의 개선사항에 대한 의견은 [email protected] 혹은 [email protected] 으로 보내주시면 감사하겠습니다.