jubeatbook-ios

요약

개발범위 전체
레포지터리 주소 [비공개] https://git.meu.works/cenox_kang/jubeatbook-ios
레포지터리 생성 일자 2017. 02. 04 ~ 2019. 03. 21
사용한 언어 Swift
사용한 개발 툴(IDE) Xcode
활성화 된 기능
  • Push Notifications
  • Background Modes - Background fetch
  • App Groups
  • 사용된 라이브러리
  • Toaster - To show Android style toast view.
  • Firebase - App success made simple
  • SSZipArchive - Simple utility class for zipping and unzipping files on iOS and Mac.
  • Kanna - XML/HTML parser for cross-platform(macOS, iOS, tvOS, watchOS and Linux!).
  • STPopup - just like UINavigationController in form sheet/bottom sheet style, for both iPhone and iPad.
  • RangeSeedSlider - customizable range slider like a UISlider.
  • Then - ✨ Super sweet syntactic sugar for Swift initializers
  • SwiftyJSON - The better way to deal with JSON data in Swift.
  • Versioner - Groundbreaking app versions manager written in Swift
  • 스토어 링크 App Store

    개요

    jubeatbook은 Konami Amusement 사의 jubeat 라는 게임의 성과를 웹이 아닌 앱으로 쉽게 확인할 수 있도록 만든 애플리케이션으로써, 유비트의 성과들을 단 하나의 어플로 관리하고 확인할 수 있는 가장 실용적인 애플리케이션을 목표로 제작되고 있습니다.

    Konami Amusement에서 현재 웹으로 서비스 되고 있는 부분을 Kanna 라이브러리로 HTML을 불러온 후, 필요한 정보를 파싱하여 정보를 가공한 후, 이를 json으로 저장하여 활용합니다. 이 때문에 Konami Amusement의 서버가 점검 중일 경우에는 동기화에 문제가 발생하여 본 앱도 사용이 불가능합니다.

    앱 내용

    메인화면

    디자인 개편 전

    Screen Shot 2017-05-15 at 오후 11.32.39
    Screen Shot 2017-05-15 at 오후 11.34.37

    유저의 프로파일과 기능 메뉴, 그리고 하단에는 그 날의 추천곡과 매일 달라지는 풀 콤보 챌린지 곡을 표시하도록 하였습니다. 각 버튼은 UIStackView로 이루어져 있으며, 버튼을 누를 경우 각 화면으로 Push 됩니다.

    디자인 개편 후

    Simulator Screen Shot - iPhone 11 Pro Max - 2019-12-30 at 23.45.02

    사용자 프로파일을 표시하는 View가 UIView+UIScrollView 조합에서 UITableView로 변경되었습니다. 기존 UIStackView에 적재되어 있는 기능들을 Tab Bar로 분리시키는 디자인의 변화가 있었습니다.

    2018년에는 jubeat clan을 위한 업데이트가 진행되었고, 2019년에는 jubeat festo의 지원을 위하여 업데이트 되었습니다.

    기록화면

    디자인 개편 전

    Screen Shot 2017-05-15 at 오후 11.32.54

    플레이어가 플레이한 곡 들을 전부 표시하는 화면입니다. 오른쪽 위의 정렬버튼을 이용하여 다양한 정렬 옵션을 선택할 수 있습니다. 점수 뿐만 아니라 레벨, 제목, 아티스트 등도 상/하향 순으로 정렬할 수 있습니다.

    정렬 기능은 SortOptions 라는 struct를 SortViewDelegate protocol 로 전달하였고, 함수형 프로그래밍 언어의 장점을 살린 filter(_:)sort(_:)함수를 사용하여 정렬하였습니다.

    디자인 개편 후

    Simulator Screen Shot - iPhone 11 Pro Max - 2019-12-30 at 23.55.56

    디자인 개편 전과 기능적인 부분은 같습니다. 다만, 분기된 Hard 모드의 점수를 따로 표시할 수 있도록 버튼이 추가되었고, 기존 음악/기록 뷰가 따로 존재했지만 이제 한 뷰에 세그먼트를 바꾸어 표시를 변경할 수 있습니다.

    히스토리

    디자인 개편 전

    Screen Shot 2017-05-15 at 오후 11.33.19

    Screen Shot 2017-05-15 at 오후 11.39.46

    플레이어가 최근 10판 동안 플레이 한 곡들을 볼 수 있는 뷰 입니다. 각 셀에는 플레이한 곡의 재킷 이미지, 곡의 이름, 점수, 랭크, 순위 등을 비롯하여 언제 어디서 플레이했는지 알 수 있습니다. 셀을 누르면 TUNE POST 라고 불리는 이미지를 불러올 수 있습니다. 오른쪽 위의 저장 버튼을 클릭하여 카메라롤에 추가할 수 있습니다.

    디자인 개편 후

    Simulator Screen Shot - iPhone 11 Pro Max - 2019-12-30 at 23.58.52

    기본적으로 플레이어가 최근 10판동안 플레이 한 곡들의 TUNE POST를 가져올 수 있는 기능은 같습니다. 다만 위의 Edit 버튼을 통하여 TUNE POST의 디자인을 변경할 수 있는 웹페이지로 연결할 수 있는 기능이 추가되었으며, 왼쪽의 새로고침 버튼을 통해 변경한 디자인을 적용할 수 있습니다.

    통계

    statstics

    jubeat clan 지원 때 추가된 기능입니다. 서버와의 통신을 통하여 가져온 유저의 플레이 기록을 분석하여, 사용자의 기록에 대한 통계를 계산하여 표시합니다.

    특정 지표를 통과할 때마다, Mastery를 통해 업적과 비슷한 형식으로 유저에게 성과를 알리며 유저는 이를 활용하여 자신의 기록 달성 상황을 한눈에 확인할 수 있습니다.

    라이벌

    rival

    jubeat clan 지원 때 추가된 기능입니다.

    jubeat 내에서 라이벌이라 함은, 점수를 비교할 수 있는 대상을 뜻하며 최대 3명까지 추가할 수 있습니다.

    앱 내에서 라이벌을 조회, 검색하고 라이벌이 자신의 프로필을 공개했을 경우 해당 프로필과 점수까지 볼 수 있습니다.

    또한, 자신의 프로필 및 점수 공개 설정을 앱 내에서 변경하는 기능을 지원합니다.

    데이터 이전 및 플레이어 이름 변경

    datamig

    jubeat festo 지원 때 추가된 기능입니다.

    jubeat는 기본적으로 아케이드에서 pass 라고 불리는 RFID 카드를 찍어 사용자의 데이터를 불러옵니다. 하지만 카드를 새로 구입한 경우 등의 상황에서는 해당 데이터를 불러오기 위해 서버에서 정보를 업데이트 할 필요가 있습니다. 이를 좀 더 편하게 진행할 수 있도록 해당 기능을 구현하였습니다.

    해당 부분은 KONAMI가 서버 구조를 변경함에 따라, 똑같이 REST API를 사용하여 만들어져 있습니다.

    현지화

    현재 jubeat festo를 지원하는 업데이트까지 한국어와 일본어 그리고 영어를 지원합니다.

    이전 스크린샷은 실기기에서 한국어로 캡쳐되었으며, 디자인 변경 후 스크린샷은 시뮬레이터에서 영어로 캡쳐되었습니다.