본문 바로가기

iOS 앱 개발자 프로젝트/iOS 숙련

[iOS] Kickboard App 프로젝트 회고

많은 화면을 담당하지 않았지만 2주라는 짧은 시간을 꽉 채운 프로젝트입니다.

 

똑똑하고 선한 동익님, 야무진 분위기 메이커 미림님, 조용하지만 강한 낭중지추 희라님, 그리고 배려 넘치는 팀장 중권님..

앞으로가 더 기대되는 분들을 만나서 행운이었어요. 

 

기능 개발과는 별개로 다인종 머머리 스타일을 선보인 팀이었기에 왠지 뿌듯했달까요..

 

 

 

코드에 대한 내용도 일부 선별하여 넣으려고 했지만.. 화면이 무지하게 많았던 관계로..

 

KPT와 ReadMe로 대신하겠습니다. 

코드가 궁금하신 분들은 아래 GitHub 링크를 참고해주세요.|•'-'•)و✧

 

 

GitHub - NY-Chae/bean-scooter-pjt: This is a kickboard app project I participated in.

This is a kickboard app project I participated in. - NY-Chae/bean-scooter-pjt

github.com


Keep

  • 용기내서 GitHub으로 협업 
  • 편안하게 대화하며 의견 공유
  • 피그마, 화면 공유, 노션 등을 사용한 비주얼 커뮤니케이션

Problem

  • 그래도 merge는 혼자 하기 두려움
  • VC이 많아지면 혼란스러움
  • 난이도 있는 기능 구현 로직은 아직 이해하기 힘듦 

Try

  • 코드 컨벤션 (개발 시작 전 상세히 협의)
  • 싱글톤 패턴 (장단점을 미리 파악하고 시도)
  • cell identifier static
  • cell 자체의 func을 만들어 cellForRowAt을 줄이자 (튜터님 피드백 중)

Table of Contents

  1. Description
  2. Timeline
  3. Demo
  4. Features
  5. Requirements
  6. Stacks
  7. ProjectStructure
  8. Developer

Bean Mobility Korea

킥보드 렌탈이 가능한 Bean App!

Description

주변에 대여 가능한 킥보드를 확인하고, 대여까지! 간편한 결제 방식과 그 외에 여러 기능들을 경험해보세요!

Timeline

24.04.22
● Project 아이디어 회의
    ○ 컨셉, 역할 분담, 와이어프레임
● 로그인 페이지 구현
    
24.04.23
● 회원가입 페이지 구현
●  지도 생성
    ○ SearchBar 생성 및 기능 구현
        
24.04.24
● 계정정보 저장 기능 구현
● 마이페이지 생성
● 킥보드 거리 계산 로직 구현
● 킥보드 데이터 구성
    
24.04.25
● 내 정보 수정 페이지 생성
● 로그아웃 기능 구현
● Annotation 생성
● 결제 페이지 생성
   
24.04.26
● 친구 초대 페이지 생성
● 주행 가이드 페이지 생성
● 앱 런치 애니메이션 생성
● 쿠폰 페이지 생성
● 유저 주행 기록 관리 로직 구현
● 킥보드 관련 DummyData 생성
   
24.04.27
● 관리자 계정 페이지 구현
   
24.04.28
● 최종 점검
● ReadMe 작성
   

Demo

Features

로그인

  • 회원 정보 가입을 통해 로그인

지도

  • 유저의 현재 위치와 주변 킥보드 확인

킥보드 대여

  • 대여 가능한 거리(150m)에 위치한 킥보드 대여
  • 대여 후 반납

결제

  • 주행한 거리만큼 가격을 지불

마이페이지

  • 회원 정보 수정
  • 주행 기록
  • 주행 가이드
  • 친구 추천
  • 쿠폰 등록
  • 로그아웃

관리자 계정을 통한 관리

  • admin으로 로그인 할 시 별도의 Manage 페이지를 통해 킥보드 등록 / 삭제 관리

Requirements

  • App requires iOS 17.4 or above

Stacks

  • Environment
  • Language
  • API
  • Communication

Project Structure

Bean
├── Singleton
│   ├── RecordSingleton
│   └── SavedPinSingleton
│
├── Service
│   ├── CoordGenerator
│   └── MapManager
│
├── Model
│   ├── AccountInfo
│   ├── AcountModel
│   ├── CouponModel
│   ├── GuideModel
│   ├── MapModel
│   ├── ProfileModel
│   ├── RecordModel
│   └── PinModel.xcdatamodeld
│
├── View
│   ├── CouponCollectionViewCell
│   ├── GuideTableViewCell
│   ├── ProfileTableViewCell
│   ├── RecordTableViewCell
│   ├── ScooterManagerTableViewCell
│   ├── LaunchScreen.storyboard
│   └── Main.storyboard
│
├── Controller
│   ├── CouponViewController
│   ├── EditProfileViewController
│   ├── GuideViewController
│   ├── InviteFriendsViewController
│   ├── LaunchViewController
│   ├── MapViewController
│   ├── ModalViewController
│   ├── ProfileViewController
│   ├── RecordTableViewController
│   ├── ScooterManageViewController
│   ├── SignInViewController
│   ├── SignupViewController
│   ├── TabbarViewController
│   └── PayViewController
│
├── Assets
└ 

Developer

  • 박중권 (jungkweon93)
    • 애플 지도 생성
    • 현재 위치 이동 기능
    • Launch Screen 기능 구현
    • 쿠폰 페이지 구현
  • 박미림 (moremirim)
    • Project Merge 구현
    • 대여 기능 구현
    • 전체적인 UI Design
    • 결제 페이지 구현
  • 송동익 (Haroldfromk)
    • 반납 기능 구현
    • Annotation Pin 구현
    • 거리 계산 로직 구현
    • 관리자 페이지 구현
    • Coredata를 사용한 킥보드 정보 저장
  • 조희라 (Heather-Cho)
    • 로그인, 회원가입 페이지 구현
    • 회원정보 수정 페이지 구현
    • Userdefault를 사용한 회원 정보 저장
    • 친구초대 페이지 구현
  • 채나연 (Nayeon Chae)
    • 마이페이지 구현
    • 주행가이드 페이지 구현
    • 로그아웃 기능 구현
    • 프로젝트내 필요한 이미지 구성