https://github.com/son7877/T82_ReadMe
- 모바일 어플리케이션 고유의 기능을 최대한 이끌어내기
- MVVM 아키텍처를 활용하여 뷰 로직과 비즈니스 로직을 분리해서 테스트 중 유지 보수가 원활하게 진행하도록 노력하기
- SwiftUI 프레임워크를 사용하여 UIKit 프레임워크와의 장단점 차이 파악하기
프로젝트 구조 트리 링크 : https://github.com/T82-encore/IOS_T82/wiki/Project-File-Tree
- App
- 어플 구동에 관한 기본 설정 및 런치 스크린으로 구성
- Core
- 어플의 REST api 호출 로직 및 비즈니스 로직으로 구성
- Component
- 어플에서 자주 사용하는 UI 컴포넌트(ex. 커스텀 네비게이션 바 및 탭뷰..)로 구성
- Feature
- 어플에서 각 기능 별 모듈을 관리 -> 주로 UI와 직접적으로 상호작용하는 View와 통신 및 UI로직을 처리하는 ViewModel로 구성
- Model
- 어플 내의 데이터 구조를 정의하는 모델들로 구성
-
프로그래밍 언어 및 프레임워크
-
개발 도구 및 CI/CD
-
라이브러리 및 SDK
-
OAuth 및 결제 서비스
-
로그인 및 회원 가입
- 어플 실행 시 TestFlight에 등록되어있는 어플 버전(빌드번호)과 현재 기기에 설치되어있는 어플 버전(빌드번호)를 비교하여 업데이트 알림 유무 결정
- 일반 회원 로그인 외에도 카카오, 구글 로그인이 가능하도록 구현
- 로그인 시 사용자 아이디를 Key로 설정해서 유저별로 필요한 정보(공연 찜 목록)를 UserDefaults에 저장하도록 설정
-
메인 탭 뷰
- 공연 정보 뷰
- 보다 다양한 카테고리 별 공연과 티켓팅 오픈일이 다가오는 공연들로 메인 뷰 구성
- 공연 정보 뷰
-
공연 시간 선택, 대기열 및 좌석 선택 뷰
- 공연 시간 선택 뷰에서 공연 별 잔여 좌석 확인
- 공연 시간 선택 우측 상단의 하트 마크를 이용해서 찜 여부를 설정
- 좌석 선택 뷰로 넘어가기 전에 대기열 웹뷰로 이동
-
결제 및 결제 완료 뷰
- 토스 페이먼트로 티켓 결제 기능 구현
- 결제 완료시 티켓 확인을 위해 마이페이지의 내 티켓 뷰로 이동
-
공연 별 댓글 뷰
- 공연 별로 공연을 관람한 관객들의 별점 및 후기를 확인 가능하도록 구현
- 인플루언서가 답글을 달았을때 닉네임 옆에 별도의 구분표시를 해두어 인플루언서와 소통이 가능함을 인지하도록 구현
-
마이 페이지 탭 뷰
-
공연 임박 Push Notification
- 예매한 티켓 정보 중 공연 시작 시간을 토대로 공연 15분전 공연 임박알림 기능 구현(FCM)
https://github.com/T82-encore/IOS_T82/wiki/%08Trouble-Shooting
https://www.notion.so/T82_IOS-76ca1cdcf14e4b2698732810eea07ad6