튜토리얼 완료
9XD 개발자모임
오늘은 9XD 개발자모임에 참가했다.
무려 선착순 2등을 하며 참가자격을 얻었다!!
생각했던 것 보다 더 고퀄의 강연이었어서 좀 놀랐고 서포터가 데브여서 한번 더 놀랐다.
강연 중 생각나는 것이 데브 서버개발자 분께서 발표하신 GraphQL에 대한 내용이었는데
페이스북 SDK를 작업하면서도 그래프 API에 대한 편함을 경험한 바 있어서 크게 공감했던 것 같다.
시간을 내어서 지금 구글에 저장하고 있는 유저데이터를 AWS의 DynamoDB 에 사용하면서 GraphQL을 이용하면 좋은 것같다.
그때를 위해 검색해본 URL을 남긴다.
GraphQL 설명 : http://blog.sapzil.org/2015/09/01/graphql-rfc/
GraphQL Parser github : https://github.com/graphql/libgraphqlparser
GraphQL Serverless framework github : https://github.com/serverless/serverless-graphql-blog
GraphQL Explorer : https://graphql-tryout.herokuapp.com/graphql?query=&operationName=undefined
튜토리얼
이번에 작업한 것은 튜토리얼이다.
일전에 회사에서 튜토리얼 관련된 코드를 본적이 있었는데
아무런 생각과 대책없이 튜토리얼을 구현하면 이렇게도 구현할 수 있구나 싶었다.
온갖 조건문과 예외처리 코드가 스파게티처럼 꼬여있어서 새로운 스텝을 추가하기도 수정하기도 쉽지 않았던 기억이 있다.
아무튼 이런 저런 이유로 알기 쉽고 수정과 관리가 용이하게 구현하려 노력했다.
또 비디오나 스프라이트가 아닌, 사용자 반응형 튜토리얼을 구현하려 했다.
완벽하게 끝이 난것은 아니지만 정리해서 포스팅 해보겠다. ( 원래 리펙토링은 끝이 없기에.. )
먼저 관련 클래스는 3 가지로 나뉜다.
- TutorialManager
- TutorialStep
- TutorialHelper
간단하게 설명하자면 TutorialStep 이 모여 하나의 Tutorial이 된다.
예를들어 처음 플레이 하는 유저가 게임 방법에 대한 튜토리얼을 진행한다면
"BEGINER_TUTORIAL"이라는 Key를 사용하는 TUTORIAL 아래 1 ~ 3의 STEP이 추가된다.
Step 1. "시작버튼을 누르세요" 라는 메시지 박스 출력
Step 2. "화면을 터치하면 캐릭터가 움직입니다."라는 메시지 박스 출력
Step 3. 유저가 화면을 터치하면 캐릭터가 움직이고 "잘하셨습니다!!"라는 메시지 박스 출력
위와같은 방식으로 총 59 STEP으로 이루어진 BEGINER 튜토리얼을 구성했다.
또 설정 팝업에 추가하여 언제든 튜토리얼을 다시 할 수 있도록 하였다.