MyAR
👀 Overview
한줄 소개 | 각종 게임, 대회, 프로젝트 등 학교별 대전을 통해 순위를 매기는 플랫폼입니다! |
진행기간 | 2022.07.02 ~ 2022.08.28 |
Skills | Retrofit2, Gson, Data Binding, MPAndroidChart, Coroutine, Flow |
팀구성 | Android 2, Spring 2, Designer 1 |
❓ 개발 의도 및 개발 목표
기획 의도
우리는 다음의 문제를 해결하기 위해 이 프로젝트를 기획했습니다.
- 다양한 분야에서 우리 학교가 얼마나 우수한지 알기가 어렵습니다
- 학교 간의 경기, 대회 등이 존재하는지 알기 어렵습니다. 따라서 참석 자체가 어렵습니다
- 관련 통합 플랫폼이 없고, 기타 (일정 조율 등) 번거로운 일들이 있습니다
개발 목표
Battle’S는 다양한 분야에서 우리 학교를 자랑스럽게 만드는 선의의 경쟁 문화를 만드는 목표를 가지고 있습니다
🍀 서비스 내용
이 서비스는 경기별, 동아리별, 학교별 순위를 볼 수 있습니다.
현재 우리 학교 경기 성적들을 통계로 확인할 수 있으며, 다른 학교와 친선 경기를 잡으며 친목을 도모할 수 있습니다.
- 분야별 경기 개최 및 참여
- 학교 간의 협업 프로젝트 개최 및 참여
- 학교별 경기 관람
- 학교별, 연도별, 분야별 순위 제공 (이미 있는 순위도 보여줄 예정 ex. 백준 순위)
🛠 기술 스택
- Retrofit2
- Naver Api를 통해 좌표에 대한 주소 정보 또는 주소를 통한 좌표 정보를 가져올 수 있도록 함
- Gson
- 네트워크 통신 시 받아오는 데이터를 Gson으로 데이터를 파싱
- Data Binding
- 양방향 데이터 바인딩
- MPAndroidChart
- 경기 성적에 따라 학교 순위를 그래프로 보여주기 위해 사용
- Coroutine
- 데이터 호출의 비동기 처리를 위해 사용됨
- 자동 스크롤의 처리를 위해 사용됨
- Flow
- 데이터 변화를 감지하고 뷰에 적용하기 위해 사용됨
🖥 개발 내용
Splash 화면 및 로그인 기능
spalsh 화면을 activity로 적용했습니다.
이는 안드로이드 권장사항에 맞추어 향후 마이그레이션을 수행할 예정입니다.
google api를 통해서 사용자의 이메일 정보를 받아오며, 서버에 해당 이메일을 보내 로그인 및 회원가입을 수행합니다.
해당 정보가 없음을 받으면 자동으로 회원가입 바텀시트를 열며 회원가입 화면을 수행할 수 있습니다.
메인 화면
서버로부터 실시간 인기 종목의 행킹을 첫 화면에서 보여줄 수 있으며, 인기 게시글 등과 다른 화면으로 움직일 수 있는 버튼을 제공합니다.
Jetpack Navigation을 통해 각 Fragment을 이었으며, 자연스러운 프래그먼트 이동을 볼 수 있습니다.
랭킹 화면
MPAndroidChart를 활용해 각 동아리 또는 학교를 그래프로 보여줄 수 있으며, 각 점수를 수치화해서 직관적으로 확인할 수 있습니다.
📈 성장 경험
Custom Library 생성
멀티 모듈로 커스텀 라이브러리를 만들어 본 것은 처음입니다.
라이브러리로 따로 만들어 분리된 작업을 수행하며, 필요로 되는 부분에 대해 각 모듈에서 따로 관리할 수 있는 장점이 좋게 와닿았습니다.
Map SDK 적용 경험
맵 sdk를 통해 맵이 로드되는 시점과 마커를 등록하는 방법 등을 배웠으며, Naver Developer Api를 통해 좌표를 주소로, 주소를 좌표로 받아오면서 Retrofit2를 이용하는 것에도 적응할 수 있었습니다.
📱 서비스 소개