[프로젝트 소개] 공유 킥보드 앱 만들기 - Animality

2026. 3. 9. 13:00·내일배움캠프/Kickboard - Animality

내일배움캠프 9주차 팀프로젝트로 공유 킥보드 앱을 구현했습니다.

 

 

GitHub - mastarTrack/team2_Animality

Contribute to mastarTrack/team2_Animality development by creating an account on GitHub.

github.com

 

1. 프로젝트 개요

🎯 프로젝트 명 - Animality

: Animal + Mobility의 합성어로, '환상의 동물' 대여 서비스를 제공하는 어플리케이션

→ 지도에서의 동물 탐색 및 대여 기능, 이용 내역 관리 기능 탑재

 

→ 공동의 재화를 공유하고 빌려쓴다는 점에서 과제 구현의 재미를 더하기 위해 단순한 이동 수단이 아닌 환상의 동물들을 대여할 수 있다는 설정을 추가

 

→ 학습을 위한 프로젝트이므로 공동의 재화(동물)을 제공하는 서버를 별도로 두지 않고 '사용자 = 운영자'의 형태로 재화 등록 및 삭제 기능 제공

 

🗓️ 프로젝트 기간: 2026.02.26 ~ 03.06.

 

🛠️ 기술 스택

개발 언어 Swift  
Architecture MVVM  
Local Storage UserDefaults, CoreData  
API 네이버 지도, 네이버 검색(지역, 이미지)  
Library SnapKit, Then UI
Alamofire, Kingfisher Network
NMapsMAp, NMapsGeometry API SDK
협업 도구 Github  

 

🙋🏻‍♀️ 담당 분야

<로그인 화면 / 회원가입 화면>

- UI 구성

- 회원가입 이메일 형식 유효성 검사 로직

 

<지도 화면>

- UI 구성

- 네이버 지도 API 활용

- 동물 등록 / 삭제 기능에 따른 동물 마커 생성 및 제거 로직 연동

- 주소 검색 기능 구현

- 지도 위치 이동 기능 구현

 

2. 화면 설명

1) LoginView / UserRegisterView

 

1️⃣ LoginView

: 로그인 성공 시 메인 화면 진입

: 로그인 기록 존재시 기본값 설정

 

2️⃣ RegisterView

: 이메일 형식 유효성 검증 기능

: 가입 성공 시 알림 팝업 노출 및 UserDefaults에 유저 정보 저장

 

2) MapView - Main

 

1️⃣ 검색 및 필터링 기능

: 키워드 입력을 통한 주소 검색 기능

: 검색 결과 선택 시 해당 위치로의 지도 이동

 

2️⃣ 현재 위치 이동 기능

: 원형 버튼 클릭 시 현재 위치로 지도 이동

 

3️⃣ 마커 표시 기능

: 등록된 동물 마커 표시 기능

: 마커 클릭 시 해당 좌표의 동물 목록 시트 뷰 노출

 

3) MapView - Sheet

 

1️⃣ 좌표별(마커별) 동물 목록 표시

: 해당 좌표에 등록된 동물 목록 표시

: 대여 가능 동물을 상단에 표시

 

2️⃣ 결제 화면으로의 이동

: 동물 셀 선택 시 결제 화면 이동

: 결제 시 동물 상태 업데이트 - 시트에 표시되는 동물 목록 갱신

 

3) PaymentView

 

1️⃣ 대여 시간 선택 / 계산

: UIDatePicker를 활용한 시작 / 종료 시간 선택

: 분 단위는 올림하여 시간으로 계산 - 1시간 10분 → 2시간으로 적용

 

2️⃣ 결제 완료 처리

: 영수증 생성

: 동물 상태 '대여중' 변경

: 결제 완료 팝업

 

4) RegisterView

 

1️⃣ 동물 정보 입력

: 모든 입력값 검증 시 등록 버튼 활성화

 

2️⃣ 동물 정보 저장

: 등록 성공 시 CordData에 정보 저장

 

5) MyPageView

 

1️⃣ 이용 내역

: 사용자의 이용 내역 표시

 

2️⃣ 사용자 정보

: 사용자 정보 표시 및 수정 기능

: 상단 로그아웃 기능

: 등록 동물 삭제 기능

 

3. 시연 영상

 

 

'내일배움캠프 > Kickboard - Animality' 카테고리의 다른 글

[트러블 슈팅] UICollectionView 상단에 여백 주기  (0) 2026.03.11
[트러블 슈팅] UICollectionView Cell deque시 NSAttributedString 생성 불가 현상  (0) 2026.03.11
[트러블 슈팅] UIButton의 isHighlighted 미해제  (0) 2026.03.10
[의사결정 기록] API Key 은닉화 방법 선택하기  (0) 2026.03.10
[의사결정 기록] 아키텍처 패턴 선정하기  (0) 2026.03.10
'내일배움캠프/Kickboard - Animality' 카테고리의 다른 글
  • [트러블 슈팅] UICollectionView Cell deque시 NSAttributedString 생성 불가 현상
  • [트러블 슈팅] UIButton의 isHighlighted 미해제
  • [의사결정 기록] API Key 은닉화 방법 선택하기
  • [의사결정 기록] 아키텍처 패턴 선정하기
devbambu
devbambu
devbambu 님의 블로그 입니다.
  • devbambu
    devbambu 님의 블로그
    devbambu
  • 전체
    오늘
    어제
    • devBambu (21)
      • WWDC (1)
      • Swift Github (1)
        • Algorithms (1)
      • 내일배움캠프 (19)
        • Kiosk - Gacha! (4)
        • 환율 계산기 - 개인 프로젝트 (6)
        • Kickboard - Animality (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
devbambu
[프로젝트 소개] 공유 킥보드 앱 만들기 - Animality
상단으로

티스토리툴바