• Home
  • About
    • Zzu-h photo

      Zzu-h

      주니어 Android 개발자입니다.

    • Learn More
    • Email
    • Instagram
    • Tistory
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

놀러온 학교!

29 Dec 2022

Reading time ~3 minutes

놀러온 학교!

👀 Overview

   
한줄 소개 대학 캠퍼스 챌린지 플랫폼 놀러온 학교!
진행기간 2022.12.18 ~ 2022.12.19
Skills Glide, Retrofit2, Coroutine, Flow, Hilt, FileUtil, ViewModel
팀구성 Android 1 / Spring 2

❓ 개발 의도 및 개발 목표

기획 의도

covid-19로 인해 2년 이상 비대면 수업과 비대면 행사가 진행되었다.
신입생들은 학교를 방문할 기회가 현저히 감소했으며 자연스럽게 선후배간의 교류가 줄어들었다.
대부분의 대학교 캠퍼스는 재학생들 사이에서 입소문을 타 전해내려오는 방문스팟 및 버킷리스트가 존재한다.
인하대의 경우 정석학술정보관 앞의 벚꽃 스팟에서 사진찍기, 비룡탑 앞 울림돌에서 크게 소리내어보기가 있다.
이러한 이야기를 전해 듣지 못했던 신입생 및 재학생들이 포스트 코로나 시대에도 캠퍼스 라이프를 온전히 즐길 수 있도록, 캠퍼스 버킷리스트들을 소개하고 경험을 돕는 것에 관하여 아이디어를 선정하였다.

개발 목표

  • 최대한 서비스의 모든 기능들을 구현하는 것이 목표
  • 10시간 채 안되는 개발시간 동안 최대한 많은 기능들을 만들어 결과를 내는 것

🍀 서비스 내용

  • 캠퍼스에서 꼭 해보아야할 챌린지 리스트중 마음에 드는 챌린지를 선택해 수행할 수 있다.
  • 챌린지 수행은 인증샷을 올리는 등으로 진행된다.
  • 사용자들은 챌린지를 수행한 정도에 따라 등급을 부여 받게 된다.
  • 높은 등급을 가지고 있는 사용자는 새로운 챌린지를 제안할 수 있다.
  • 제안한 챌린지가 많은 ‘인정’ 점수를 받게 된다면 정식 챌린지로 등록된다.
  • 다른 사용자들은 제안된 챌린지들을 구경하고 ‘인정’점수를 부여할 수 있다

사용자

  • sns 소셜 로그인 지원
  • 사용자별 등급제 도입
    • 1~5단계의 등급 부여
    • ‘챌린이, 챌소년, 챌른이, 고인물, 암모나이트‘로 이루어짐

챌린지 컨텐츠

  • 언제, 어디서, 어떻게, 무엇을, 어떻게로 구성
  • 챌린지 수행 인원 확인 가능
  • 챌린지 목록에서 선택을 통해 다른 사용자가 참여한 챌린지 확인 가능

챌린지 후보

  • ‘고인물’등급 이상의 사용자부터 챌린지 후보 제안 가능
  • 10개 이상의 ‘인정’ 점수를 획득할 경우 챌린지 컨텐츠로 자동 전환
  • 사용자당 1개의 ‘인정’ 점수 부여 가능

챌린지 수행

  • 챌린지의 언제 어디서 무엇을 어떻게에 해당한는 인증샷 업로드

🛠 기술 스택

  • Glide
  • Retrofit2
  • Coroutine
  • Flow
  • Hilt
  • FileUtil
  • ViewModel
  • CircleIndicator2

🖥 개발 내용

Login

  • Google OAuth를 통해 구글계정 로그인 기능을 구현함
  • SharedPreferenced를 통해 토큰을 저장하고, 자동 로그인 기능을 구현함
  • 토큰이 expired 되었을 시 로그인 갱신을 하도록 구현함

Main

  • Jetpack Navigation을 활용해 fragment를 연결
  • Bottom Navigation View와 Floating Button을 커스텀 배치함
  • 게시글 Overview 뷰를 커스텀해서 관리함

Main - Home

  • 상단 광고뷰
    • 코루틴을 활용하여 자동 스크롤 구현
    • RecyclerView와 Indicator를 이어 일정 시간이 지났을 때 다음 index로 움직인다.
  • NestedScrollView를 통해 Scroll를 구현함
  • Custom Board Overview를 통해 불러온 챌린지와 수행한 미션 top 5를 뽑아 보여준다.

Main - 챌린지 리스트

  • 서버로부터 데이터를 받아와 전체 미션 정보를 띄운다.
  • Item 클릭 시
    • 상세 미션 정보
    • 현재 이 챌린지에 참여한 사람들의 미션들
    • 확인 가능한 상세 페이지로 이동
  • 챌린지 추가 Floating Button
    • 챌린지 미션을 추가할 수 있는 화면으로 이동한다.

Main - 챌린지 업로드

  • 직접 업로드하기 직전 어떤 챌린지를 수행했는지를 선택한다.
    • 검색 기능 구현
    • debounce를 활용해 입력 후 일정시간이 지났을 때 검색의 기능을 수행하도록 구현함
    • Spinner를 통해 정렬 순서를 바꿀 수 있다.
  • 선택 후 실제 입력 화면으로 이동한다.
    • 수행한 결과들을 작성하고 업로드 한다.

Main - 챌린지 후보 리스트

  • 챌린지 추가 Floating Button
    • 챌린지 미션을 추가할 수 있는 화면으로 이동한다.

Main - 프로필

  • 사용자의 개인 프로필 정보를 확인할 수 있다.
    • 사용자의 프로필 수정 페이지로 이동할 수 있다.
  • 사용자의 개인 좋아요한 정보들을 확인할 수 있는 페이지로 이동할 수 있다.
    • 해당 페이지들은 미구현

Challenge Detail

  • 챌린지의 상세 페이지
  • 챌린지의 상세한 설명과 이에 참여한 사람들의 미션 수행 이력들을 확인할 수 있다.
    • 인스타 릴스 참고

📱 서비스 화면

시연영상

ArtWhale Thumbnail

Login

image image

Home

image

챌린지 리스트

image

  • 챌린지 상세

image

챌린지 후보 리스트

image

프로필

image

  • Edit Profile

image

수행할 챌린지

  • 선택

image

  • 업로드

image

챌린지 업로드

추가

  • 인하대학교 2022 컴퓨터공학과 해커톤 🏆 1등 수상
  • 모든 기능들을 완벽히 구현하지 못함


project Share Tweet +1