Skip to content

SinsaStation/FullStackCodingBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

⚡️ Full Stack Coding Master

About 풀스택 개발 마스터를 향한 고군분투를 담은 퍼즐 게임

Made by Team Sinsa-Station - Team Wiki

Design 2021.06.16 ~ 2021.07.05

Develop 2021.07.06 ~ 2021.08.20

Release 2021.08.23

스크린샷 2021-08-20 오후 12 12 56


Development Environment & Libraries

Development Environment

Swift iOS

Libraries

이름 목적 사용 버전
RxSwift 비동기 처리 6.2.0
RxCocoa View 처리 6.2.0
Firebase Database 및 이벤트 로깅 8.6.0
Firebase/Auth 게임센터 로그인 연동 8.6.0

Scenes & Features

Intro

Launch Story Loading
- Launch Screen 제공 - 앱 첫 실행 시 게임 스토리 제공
- 스킵 가능
- Firebase/Coredata 데이터 로드 제공
- 애플 게임 센터 로그인 제공
- 오프라인 플레이 가능

Main & Menu

Title Item Reward
- 각종 메뉴 및 게임 화면 이동 제어 - 에너지를 사용한 아이템 업그레이드 제공 - 구글 애드몹 연동 보상 광고 제공
- 매일 자정 새로운 리워드 제공
Ranking Setting How To
- 온라인 플레이 시 게임센터 랭킹 제공
- All time & Monthly Ranking
- BGM, 효과음, 진동 설정 가능
- 게임 스토리 재시청 제공
- 게임 진행 방법 제공

Game

Game1 Game2 Fever
- 게임 시작 전 준비 시간 제공 - 게임 플레이 제공
- 유저 하이스코어 연동
- 콤보 달성 시 피버 모드 제공
Pause GameOver
- 게임 정지 기능 제공 - 랭킹 및 에너지 자동 저장 제공
- 점수에 따른 게임오버 스토리

Team Members

WooSeok Song
- 앱 개발
- 앱 기획
- 내러티브 기획
- 앱 개발
- 앱 기획
- 픽셀아트 및 일러스트
github github
WooSeok's Develop History

Summary

프로젝트 초반에 생성해두었던 MemoryStorage를 PersistenceStorage로 수정했던 작업이 기억에 남습니다.  
MemoryStorageType이라는 protocol을 활용하여 viewModel객체들에 의존성을 주입해서 코드를 설계했던 덕분에 쉽게 객체 바꿔치기가 가능했습니다.  
적절한 protocol 사용과 의존성 주입이 유연한 코드 작성에 얼마나 효과적인지 직접 느낄 수 있었습니다.

Main

  • 기본 UI
  • Auto Layout 확인 ((iPod touch, 8, 11, 12)
  • ButtonController (Button 다형성)
  • SceneCoordinator
  • Scene 객체
  • TransitionManager 객체
  • 화면 이동
  • CommonViewModel (모든 viewModel의 super class)
  • MemoryStorage 및 CRUD 메서드
  • Loading ViewController & Activity Indicator

Setting

  • 이동 Button
  • 기본 UI
  • 배경음악 on/off

How To Play

  • 기능 구현
  • 기본 UI

Story

  • 스토리 구상
  • 기본 UI
  • StoryScene 로직

Item

  • 기본 UI
  • cell tap시 Main Image 변경
  • Levelup Button 기능
  • Required Money View
  • Balance View

Ads

  • Test App 등록
  • GAD ID 발급
  • Google Ads 삽입

Game

  • Dynamic Level 코드

Unit Test

  • Storage Protocol 테스트

Apple Game Center

  • AGC 로그인 구현
  • Firebase와 로그인 연동
  • Leader Boards

Firebase

  • Firebase 관리객체 생성
  • Firebase와 Data 통신을 위한 DataFormatManager 생성
  • Coredata와 Data 연동(background 진입 / 앱 종료 시)
  • Real Time DB json
  • Data 다운로드 완료시 LoadingVC dismiss

User Defaults

  • hasLaunchedOnce 기능 구현
  • SettingVC 기능 구현

Core Data

  • 기존 MemoryStorage -> PersistenceStorage로 객체 변경
  • Core Data Entity
  • CRUD 메서드
Song's Develop History

Summary

서드파티 라이브러리 사용 없이 Core Graphics와 UIKit만을 활용하여 모든 애니메이션을 구현한 경험이 가장 기억에 남습니다.
또한, 아이폰4s까지 지원할 수 있도록 Auto Layout을 짜야했던 것도 챌린징했습니다. 
게임이라는 특성 상 화면 구성요소가 다양했기 때문에, View를 짜는 것에 있어서도 구조가 중요하다는 것을 느낄 수 있었습니다.
 

Main

  • Image Asset을 적용한 UI - AutoLayout
  • BackgroundView의 랜덤 구름 Animation
  • Title View 텍스트의 Type Writer Animation
  • Loading View

How To Play

  • Layout 조정 및 assets 적용

Item

  • Image Asset을 적용한 UI - AutoLayout
  • 기기 사이즈에 따른 Font Size 적용
  • Item Upgrade 성공 Animation - 이미지 평균 컬러 반영
  • Info View 텍스트의 Fade In Animation
  • Item Upgrade 성공 여부에 따른 Haptic

Ads

  • UI 구축 - AutoLayout
  • Available(Ad or Gift) / Taken 상황에 맞춘 CollectionCell Update
  • Reward Update Logic 구현 - AdStorage
  • Banner Ads 연동

Story

  • Image Asset을 적용한 UI - AutoLayout
  • 스토리 관리 모델 구축 - Line, Script, Story Manager
  • Story View Animations

Launch Screen

  • UI 구축 - AutoLayout

Game

  • UI 구축 - AutoLayout
  • Game Play Logic 구현 - GameUnitManager
  • Match 성공 시 랜덤 코드 Animation
  • Match 실패 대응 - Haptic 적용, Wrong Animation, 버튼 Cool time
  • 게임 유닛 릴즈의 PerspectiveView & Animation
  • Game Over Logic 구현 - TimeManager
  • Game Over / Pause Scene 흐름 컨트롤
  • Fever Time Logic 구현 - FeverManager
  • 게임 BackgroundView의 FeverAnimation
  • NormalTimeView / FeverTimeView & Animation
  • Game Ready Mode 구현

Pause

  • UI 구축 - AutoLayout
  • Resume / Restart / Home 흐름 컨트롤
  • BackgroundView Animation

Game Over

  • UI 구축 - AutoLayout
  • High Score 연동
  • Restart / Home 흐름 컨트롤
  • BackgroundView Animation
  • 랭크에 따른 랜덤 스토리 연동

Unit Test

  • AdStorage 테스트

Audio

  • 배경음, 효과음 재생 컨트롤 - Sound Station 객체들
  • User Default와 연동

One more thing!

Short Interviews

Team Rules

스크린샷 2021-07-30 오후 12 04 43

Thank you for reading!