1. Introduction
1.1) Purpose
•
iOS 어플리케이션 개발
•
협업
•
12월 초까지 서비스런칭을 목표로
1.4) Project Scope
•
아이폰을 지원한다.
2. Overall Description
2.2) Product Features
•
지도기반 모임 생성/참여 서비스
•
혼자 여행을 다니는 사람들을 우선타겟으로 한다.
•
현재 시점부터 24시간 이내의 모임들만 보인다.
•
모임 뿐 만 아니라 도움, 인력이 필요한 대부분의 경우를 커버할 수 있도록 디자인한다.
2.4) Operating Environment
frontend : swift
backend : nodejs
DB : postgresql
AWS / azure / NCP
3. System Freatures
각 기능별 작동 사항 및 동작 제한 사항 정의
3.1) Functional Requirements
화면 전환
•
지도뷰를 커면 아래에 검색바가 Floating view로 떠있다.
◦
검색바를 누르면 Floating view가 화면 최상단 까지 올라간다.
▪
Floating view에는 검색 할 때마다 최신화 되는 검색 리스트가 검색바 아래에 위치한다.
▪
다시 지도뷰로 돌아가는 back 버튼이 존재한다.
▪
검색 리스트를 클릭하면 해당 위치로 지도뷰 포커스가 이동한다.
•
이때 검색 Floating view는 하단까지 내려간다.
◦
스케쥴 버튼을 누르면 스케줄 view로 전환된다.
▪
다시 지도뷰로 돌아가는 back 버튼이 존재한다.
▪
스케줄 뷰는 스크롤이 가능하다
▪
각 스케줄을 누르면 상세 스케줄 뷰로 이동한다.
◦
포커스 버튼을 누르면 지도에서 현재 내 위치로 이동한다.
▪
현재 위치로 한 후 한번 더 누르면 지도의 북쪽을 맞춰준다.
◦
지도 위에 떠 있는 미팅 뷰를 누르면 하단에서 미팅 Floating view가 올라온다.
▪
Floating view를 내리는 close 버튼이 존재한다.
▪
해당 모임에 참여할 수 있는 join 버튼이 존재한다.
•
join버튼을 누르면 스케줄에 해당 모임이 등록되고 스케줄뷰로 화면이 전환된다.
•
이때 Floating view의 상태는 변경하지 않는다(내리거나 올리지 않음)
•
스케쥴뷰는 현재 지도 위에 stack으로 view가 쌓이는 형태이다.
◦
스케쥴뷰에서 다시 이전 화면으로 돌아가는 back 버튼이 존재한다.
지도
•
줌인, 줌 아웃, 이동, 포커스온 기능이 존재한다.
•
지도에서 내 현재위치에 핀(빨간 동그라미)을 띄운다.
•
지도에서 필터에 맞는 각 모임들의 핀을 띄운다.
◦
장소 필터 : 화면 중심을 기준으로 일정 반경안에 있는 핀만 띄운다
◦
시간 필터 : 24시간 이내의 핀만 띄운다.
◦
모임 검색 필터
•
지도에서 상세 건물 이름을 띄우지 않는다.
•
지도에서 도로명을 띄우지 않는다.
•
지도에서 상세 건물 경계를 표현하지 않는다.
장소 검색
•
지도 뷰에서 검색바를 누르면 검색 Floating view가 올라온다.
◦
처음에 이전 검색 내용을 띄운다.
◦
처음에 추천 장소를 띄운다.
•
타이핑을 할 때 마다 검색 리스트를 업데이트 한다.
◦
backspace를 누르면 하나씩 지워짐
◦
x 를 누르면 전체가 지워짐
◦
검색 리스트도 초기화된다.
•
다시 지도뷰로 돌아가는 back 버튼이 존재한다.
•
검색 Floating view의 리스트 각각에는 장소 이름, 위치, 상세 주소가 표시된다.
◦
리스트를 클릭하면 해당 위치로 이동되고 Floating view는 내려간다.
모임 만들기 및 참여하기
•
지도뷰 위에서 + 버튼을 누르면 모임 만들기 floating view가 slideup 된다.
◦
제목을 적을 수 있다.
◦
모임 시간을 정할 수 있다.
▪
모임 시간은 현재 시간부터 24시간 이내이다.
◦
모이는 인원 수를 정할 수 있다.
◦
모임 위치를 정할 수 있다.
◦
모임의 상세 주소를 정할 수 있다.
◦
위 내용들을 모두 입력하면 Done 버튼이 생긴다.
▪
Done버튼을 누르면 스케줄에 등록이 된다.
▪
모임 만들기 Floating view가 내려가고 스케줄 뷰로 전환이 된다.
◦
다시 지도뷰로 돌아가는 back 버튼이 존재한다.
스케줄
•
스케줄 화면으로 넘어가는 화면 전환 효과와 함께 화면이 전환된다.
•
스케줄 뷰로 들어오면 내가 현재시간 참여할 모임들이 리스트에 출력된다.
•
뒤로가기를 누르면 화면 전환 효과가 나오고 메인화면으로 되돌아간다.
•
스케줄을 클릭하면, 모임 상세 뷰로 전환된다.
로그인 및 회원가입
•
회원 가입은 우선 소셜 로그인만 구현한다.
•
이미 로그인 되어 있으면 스플래시 뷰 이후 바로 지도 화면으로 전환 된다.
•
회원가입이 안되어 있으면 회원 가입을 진행한다.
◦
소셜 로그인이 가능하다
▪
애플 로그인(필수)
▪
카카오
▪
페이스북
설정
•
1차에선 세부 설정 없이 제작한다.
•
설정 버튼을 누르면 뷰가 전환되는 것 까지만 구현한다.
•
다시 이전 뷰로 되돌아가는 back 버튼이 존재한다.
4. External Interface Requirements
4.1) User Interfaces
•
Front-end Software : Swift UI
•
Back-end Software : Firebase