로그인 로그인 UI 작업한다
로그인 Social login 기능을 추가한다 ( Google, Kakao)
로그인 FireBase로 자체 로그인 기능을 추가한다
로그인 CheckBox로 1회 로그인시 자동 로그인 기능을 추가한다
로그인 비밀번호 찾기 버튼 클릭시 비밀번호 찾기 창이 뜬다
로그인 회원가입 버튼 클릭시 회원가입 페이지로 넘어간다
비밀번호
찾기 로그인 페이지에서 넘어온 화면으로 가입했던 이메일 입력시 비밀번호를 찾을 수 있다.
(단 간편로그인으로 로그인한 경우 찾기가 불가능하다)
비밀번호
찾기 비밀번호 찾기 UI 작업한다
비밀번호
찾기 비밀번호 찾기 버튼 클릭시 FireBase 와 연동된 아이디와 유효성 검사후 비밀번호 안내
비밀번호
찾기 이메일 입력시 이메일 형식 and 띄어쓰기 or 빈칸이 있을 경우 아이디를 찾을수 없으니 유효성 검사를 진행한다
회원가입 회원가입 UI 작업한다
회원가입 전체동의 버튼 클릭시 하단에 있는 체크박스들이 체크가 된다
회원가입 비밀번호 두 번 입력으로 같은지 확인해야 된다
회원가입 별명 입력시 DB에 해당 Table에 같은 값을 비교해야 된다
회원가입 이메일 입력시 이메일 형식에 맞게 유효성 검사를 진행해야 된다.
회원가입 약관 동의란에 이용약관 클릭시 이용약관을 보여줄수 있는 창을 띄워야한다
회원가입 회원가입 완료 버튼 클릭시 EditText 빈칸 확인, 약관 동의 칸 확인 ( 특가, 쿠폰 란 체크가 안되어있어도 넘어갈수 있음), 이메일 유효성 확인, 비밀번호 유효성 확인, 별명 중복확인이 된 후에 회원가입이 진행된다.
메인 바텀 네비게이션을 통해 홈화면, 검색화면, 지도, 커뮤니티, 마이페이지로 이동할 수 있다.
메인 UI 작업을 진행한다. ( Fragment)
Ui 작업을 진행한다.
상단부 Image가 swap 되면서 DB에 있는 사진을 불러와 보여줄 수 있다.
버튼 이벤트를 통해 오늘의 날씨 확인이 가능하다
버튼 이벤트를 통해 이달의 축제 ( Festival Fragment) 화면으로 이동이 가능하다
버튼 이벤트를 통해 항공원 검색 ( SkyScanner API) 이 가능하다
버튼 이벤트를 통해 User 입장에서 원하는 테마를 검색 후 적용 시킬 수 있다.
버튼 이벤트를 통해 Background에서 작용되는 만보기 기능을 사용할 수 있다.
버튼 이벤트를 통해 실시간 활율을 사용할 수 있다.
해당 버튼들은 GridLayout으로 한줄에 2개씩 나열할 수 있다.
축제 화면 해당 페이지 UI 작업을 진행한다 (Fragment)
해당 달의 모든 축제를 API에서 불러와 Infinity Scroll로 나열할 수있다.
해당 사진은 Recyclerview로 item마다 한 개의 축제의 정보를 넣을 수 있다.
item은 한 개의 중요 사진, 축제 이름, 축제 주소, 기간을 넣을 수 있다.
축제화면 임의의 item 클릭시 해당 축제의 주요 정보를 알려주는 축제 주요 fragment로 이동한다.
축제
주요 화면 해당 화면 UI 작업한다. (Fragment)
User는 해당 축제의 좋아요 기능을 활용해 추후 마이 페이지에서 관리할 수 있다.
해당 축제의 정보들을 API에서 불러올 수 있다.
해당 축제의 평점을 남길 수 있다.
해당 축제의 일정을 추가할 수 있다.
해당 축제의 평점 남기기 버튼 클릭시 평점이 남겨지는 다이얼로그가 보여진다.
별점과 후기를 남길수 있으며 등록 버튼시 DB에 저장이 된다.
검색 화면 해당 화면 UI 작업한다. (Fragment)
EditText부분에 User는 검색어를 입력할 수 있다.
검색어 입력시 안나오는 검색어는 보여질 수 없다 Ui를 보여준다.
검색어 입력시 실시간으로 알맞은 연관 검색어를 보여줄 수 있다.
  1. 로그인/회원가입 화면

    1. L / 자체 로그인을 위해 메일, 비밀번호 입력하는 칸 생성
    2. L / 자체 로그인 시 유효성 검사 진행 (빈 값, 이메일 형식, 비밀번호 형식 등)
    3. L / 자동 로그인 체크버튼을 통해 자동로그인 설정 → SharedPreferences를 통해 아이디 값, UID을 기억하고 있다가 앱 재접속시 auth와 preferences 값을 확인, 검증해서 자동로그인 하면 될 듯
    4. L / 자체 로그인은 firebase auth 사용
    5. L / 구글 로그인은 firebase auth 의 구글 계정 사용
    6. L / 카카오 로그인은 카카오 로그인 sdk 사용
    7. L / 사용자 상태 관리는 → 자체 로그인은 사용자 아이디를 통해 상태 관리 - d에 서술, 소셜로그인은 각 로그인의 auth를 통해 관리?
    8. L / 비밀번호 찾기?
    9. S / 자체 회원 가입에는 이메일, 비밀번호 비밀번호 확인, 닉네임을 입력 할 수 있게 함
    10. S / 약관을 두고 체크 할 수 있게 함
    11. S / 필수 약관 체크가 되지 않고, 회원 가입 버튼을 누를 때, 안내 메세지 출력
    12. S / 모든 조건이 충족 되면 firebase auth에 회원 정보를 저장
    13. S / 회원 가입이 완료되면 자동으로 로그인 페이지로 변환
  2. 홈 화면

    1. 상단에 VIewPager를 통해 행사 정보 몇 가지를 띄워줌 (행사정보조회 api 사용)
    2. 하단에는 다른 화면으로 들어 갈 수 있는 버튼들을 배치 (하단 내용)
    3. 오늘의 날씨 확인 , 이달의 축제page 이동, 항공권 검색(국내외 항공권 검색(SkyScanncer API 이용)), 테마 검색 → 유저마다 개성있는 테마 사용가능
  3. 축제 목록 화면

    1. 행사 정보 조회 API를 통해 다양한 행사 정보 리스트를 가져옴
    2. 리사이클러뷰에 행사 정보 리스트를 등록
    3. 각 아이템을 클릭하면 행사 정보를 볼 수 있는 디테일 페이지로 이동
  4. 제 상세 화면

    1. 목록 화면으로부터 전달 받은 데이터를 화면에 출력
    2. 좋아요 버튼을 누르면 데이터베이스에 해당 축제 정보를 저장
    3. 일정 추가 버튼을 누르면 캘린더 다이얼 로그가 뜨고, 날짜 구간을 선택하여 내 일정으로 지정 (DatePickerDialog, 데이터베이스 저장)
    4. 일정 추가 시 해당 날짜에 이미 다른 일정이 추가되어 있다면, 다른 날짜를 선택하도록 알림 띄우기 (ex. 토스트 메세지)
    5. 평점 및 짧은 후기를 남겨 데이터베이스에 저장 (firebase 가 될 듯) (저장 할 때는, 커뮤니티와 연동이 되어야하므로 이미지, 위치, 후기를 남긴 사람 등 보여줄 정보를 함께 저장해야함)
    6. 보여줄 평점은 firebase에서 해당 축제의 정보를 가져와 평점 값의 평균을 보여줌 (처음에는 없으므로 0)
    7. 길 찾기에 들어가면 현재 위치에서 축제 위치까지의 경로를 보여
  5. 색 화면

    1. 상단에 검색 창을 두고, 그 밑으로 검색 결과 화면을 둠
    2. 검색 결과 화면에는 기본 이미지를 둠
    3. 검색어를 입력했을 때, 결과가 없다면 에러 화면 보여주기
    4. 검색어를 입력할 때마다 지역 자동 완성 보여주기
    5. 검색 버튼 눌러 결과가 있으면 지도를 띄우고, 해당 지점들에 마커를 표시 (키워드 검색 api 사용 - 결과에 위,경도가 있)
    6. 마커를 클릭하면 , Bottom Sheet Behavior로 하단에서 올라오는 화면을 보여주고, bottom sheet에서는 해당 지점의 간단한 정보를 제공 (이미지, 주소, 평점)
    7. 자세히보기 클릭시, bottom sheet이 화면 전체를 덮으며 상세 정보를 보여줌 (키워드 검색 api의 content id 값을 갖고 있다가, 자세히 보기가 클릭 되면 공통 정보조회 api를 통해 상세정보를 가져옴)
  6. 지도 화면

    1. 지도 화면을 세팅함
    2. 각 시도 별 이미지를 클릭하면 여행 장소 리스트 화면을 띄움
    3. 화면을 넘어갈때 시도 이름 (키워드 or 지역 코드: (1~8 광역시) (31-39 경기도 ~ 제주도) )를 넘김
  7. 여행 장소 리스트 화면

    1. 키워드 API를 통해 다양한 행사 정보 리스트를 가져옴
    2. 리사이클러뷰에 행사 정보 리스트를 등록
    3. 각 아이템을 클릭하면 행사 정보를 볼 수 있는 디테일 페이지로 이동
  8. 여행 장소 상세 화면

    1. 목록 화면으로부터 전달 받은 데이터를 화면에 출력
    2. 좋아요 버튼을 누르면 데이터베이스에 해당 축제 정보를 저장
    3. 일정 추가 버튼을 누르면 캘린더 다이얼 로그가 뜨고, 날짜 구간을 선택하여 내 일정으로 지정 (DatePickerDialog, 데이터베이스 저장)
    4. 일정 추가 시 해당 날짜에 이미 다른 일정이 추가되어 있다면, 다른 날짜를 선택하도록 알림 띄우기 (ex. 토스트 메세지)
    5. 평점 및 짧은 후기를 남겨 데이터베이스에 저장 (firebase 가 될 듯) (저장 할 때는, 커뮤니티와 연동이 되어야하므로 이미지, 위치 등 보여줄 정보를 함께 저장해야함)
    6. 보여줄 평점은 firebase에서 해당 축제의 정보를 가져와 평점 값의 평균을 보여줌 (처음에는 없으므로 0)
    7. 길 찾기에 들어가면 현재 위치에서 축제 위치 까지의 경로를 보여
  9. 커뮤니티 화면

    1. firebase에서 모든 정보를 가져와서 정보를 보여줌
  10. 내 정보 화면

    1. 내 로그인 정보를 간단히 볼 수 있음 (이미지, 이름, 소개 등)
    2. 회원탈퇴, 로그아웃 버튼을 두어 각 기능을 실행 할 수 있음
    3. 축제 상세 화면, 여행 상세 화면에서 내가 좋아요를 누른 것들의 리스트를 리사이클러뷰를 통해 보여줌
    4. 나의 일정을 담은 캘린더 뷰를 띄움
    5. 캘린더 뷰에는 축제 상세 화면, 여행 상세 화면에서 내가 일정으로 추가한 것들의 기간을 보여줌
    6. 일정 구간 중 아무날짜를 클릭하면, 내가 저장한 일정 정보를 볼 수 있는 다이얼로그를 띄움
    7. f의 다이얼로그에서는 DatePickerDialog를 통해 날짜 수정을 할 수 있음
    8. 삭제, 저장 버튼이 있음
    9. 삭제 버튼을 누르면 해당 일정을 데이터베이스에서 삭제함
    10. 저장 버튼을 누르면 g에서 수정한 날짜로 변경함, 단, 수정한 날짜가 다른 일정과 겹치면 알림 메세지를 띄움

    상세 페이지에서 저장하고, 마이페이지에서 보여줄 일정 구간 db 구조

    | --- | --- | --- | --- | --- | --- |


    —-

    로그인 이메일 주소 & 패스워드 입력 시 로그인 버튼 활성 화 후 메인엑티비티로 이동 자동로그인 : 체크 시 앱이 종료된 후 다시 실행 시에도 메인액티비티로 이동 비밀번호 찾기 버튼 클릭 시 dialogfragment로 화면 띄어짐 (안에 내용에 대해서는 조금 더 논의 후 추가해야 함) 회원가입 버튼 클릭 시 회원가입 dialogfragment fullscreen으로 보여짐 간편로그인 아이콘 클릭 시 로그인 진행됨

    회원가입

    이메일 : 이메일 주소 입력 시 형식에 맞지 않으면 에러메세지가 뜸 비밀번호 : 비밀번호 입력 시 형식에 맞게 입력하라는 에러메세지가 뜨고 맞게 입력하면 에러메세지 삭제됨 비밀번호 확인 : 위 비밀번호와 값이 맞지 않다면 에러메세지가 뜸 맞게 입력하면 삭제 별명(중복불가) : 이건 고민 회원가입완료 버튼 : 이메일 , 비밀번호, 비밀번호확인, 별명, 약관(필수) 동의가 되었을 시 버튼 클릭이 활성화가 됨

    맨 위 스와이프 이미지는 자동으로 넘어가고 인기 축제 top 10이 보여짐 이달의 축제 : 클릭하면 이달의 축제가 보이는 프레그먼트로 화면이 이동함 아이템 하나 클릭 시 디테일 페이지로 이동 하트 버튼 클릭 시 마이페이지에 좋아요 리스트로 항목이 추가됨 일정 추가 클릭 시 캘린더픽커가 뜨면서 일정 범위를 클릭 후 저장할 수 있게 만들어줌 -> 마이페이지에 일정에 추가가 됨 홈페이지 들어가기 클릭 시 웹뷰 홈페이지로 넘어감 평점 : 아무런 값도 없으면 별이 빈값으로 표시 평점남기기 : 내가 원하는 평점 댓글 넣어주면 평점에 평균값에 맞게 별이 색칠이 됨 -> 내가 남긴 평점은 커뮤니티페이지에 띄어짐

    테마 검색 : 클릭하면 다양한 테마가 있는 프레그먼트로 화면이 이동함(와이어프레임 그림 x) 오늘의 날씨 : 클릭하면 오늘의 날씨를 볼 수 있는 창으로 넘어감 ( 와이어프레임 그림 x) 항공권 검색 : 클릭하면 항공권 검색할 수 있는 창으로 넘어감 ( 와이어프레임 그림 x) 만보기 : 만보기를 사용할 수 있음( 와이어프레임 그림 x) 환율 : 환율 페이지로 넘어감( 와이어프레임 그림 x)

    서치

    검색창에 단어 입력 시 관련된 검색에가 보여짐 없는 검색어 입력하면 검색어를 찾을 수 없습니다 라는 문구가 보여짐 검색어를 제대로 입력하면 지도 이미지가 보여지고 마커 클릭 시 해당 지역의 정보가 간략하게 보여짐 하트 클릭 시 마이페이지에 좋아요 리스트로 값이 넘어감


Splash Activity

애니메이션을 이용하여 구현

Login Activity