Skip to content

사용자가 다양한 지역의 관광 명소를 여행하면서 재미있는 미션을 수행하고, 이로 인해 특별한 경험과 보상을 얻을 수 있는 앱

Notifications You must be signed in to change notification settings

APP-iOS3rd/PJ2T4_DoTrip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

✈️ 특별한 여행, 미션 클리어하고 다양한 혜택 받는 스마트 여행 앱 README

PJ2T4_DoTrip

특별한 여행, 다양한 혜택

목차


팀원 구성


팀장 : 이현호


팀원 : 김강혁


팀원 : 백종현


팀원 : 신희선


팀원 : 유지인


팀원 : 김혜란


1. 앱소개

💡 사용자가 다양한 지역의 관광 명소를 여행하면서 재미있는 미션을 수행하고, 특별한 경험과 보상을 얻을 수 있는 앱

2. 개발 환경

  • 개발: SwiftUI, API
  • 버전관리: Github
  • 협업툴: Notion, Discord
  • 디자인: Figma

3. 개발 기술

  • Tour API, RestAPI 활용
  • Navigation Path, Navigation Manager 활용
  • MapKit, Map annotation 활용
  • Json Decoding
  • ImagePicker를 활용한 카메라 기능
  • 정규식을 이용한 문자열 패턴 정리
  • ModalView
  • AppStorage 활용

4. 역할 분담

  • 🙋‍♂️이현호
    • MY탭 : 마이페이지 뷰, 프로필 수정, 자주 묻는 질문, 이메일 문의
    • 상점탭 : 상점 뷰, 카테고리, 구매 디테일 뷰

  • 🙋🏻‍♂️김강혁
    • 홈탭 : 메인페이지 뷰, 날짜선택, 지역선택
    • 상점탭 : 상점 뷰, 카테고리, 구매 디테일 뷰

  • 🙋🏼‍♂️백종현
    • 홈탭 : 맵킷을 활용한 맵뷰, 맵 마커 기능, 검색 뷰

  • 🙋‍♀️김혜란
    • 행사 상세 뷰

  • 🙋🏻‍♀️신희선
    • 마이포인트 사용내역/획득내역 뷰, URLSession API 통신 및 데이터 전달,
    • 상점탭 : 상점 뷰, 카테고리, 구매 디테일 뷰

  • 🙋🏼‍♀️유지인
    • 미션리스트 페이지, 미션수행페이지 (카메라 기능 이용)

5. 개발 기간

  • 전체 개발 기간 : 2023-12-07 ~ 2023-12-14
  • UI 구현 : 2023-12-08 ~ 2023-12-09
  • 기능 구현 : 2023-12-10 ~ 2023-12-14

6. 페이지별 기능

[메인 페이지 뷰]

  • 출발일자, 복귀일자, 지역선택은 필수 선택사항이며, 미입력 시 알림창이 뜹니다.
  • 출발일자는 현재일자보다 이전 시점을 선택할 수 없으며, 복귀일자는 출발일자보다 이전 시점을 선택할 수 없습니다.
  • 지역선택은 각 시,군,구 별로 분류되어 있으며, 전체선택도 가능합니다.
  • 검색 버튼을 클릭하면 지도로 이동합니다.
메인 페이지 뷰
메인페이지뷰

[맵 뷰]

  • 지역을 선택하면 해당 지역에 맞는 지도가 표시됩니다.
  • 지도에는 마커 기능이 있으며 마커를 클릭하면 해당 마커와 관련된 미션과 행사 정보가 표시됩니다.
  • 미션과 행사정보는 모달창 내의 탭 버튼으로 구성 되어있습니다.
맵 뷰
맵뷰

[행사 상세 뷰]

  • 행사 항목을 클릭하면 행사 개요 및 행사 상세 정보를 확인할 수 있습니다.
  • 행사 개요의 행사 정보 확인 버튼을 클릭하면 행사 상세 정보로 이동합니다.
  • 행사 상세 정보에는 행사 설명이 있으며 더보기를 클릭하여 가려진 정보를 확인 할 수 있습니다.
  • 행사 상세 정보 하단의 미션 하러 가기 버튼을 클릭하면 해당 행사와 관련된 미션을 할 수 있습니다
행사 상세 뷰
행사상세뷰

[미션 뷰]

  • 내미션 탭에서는 현재 진행중인 미션 정보 및 미션의 개수를 확인 할 수 있습니다.
  • 미션을 클릭하면 미션에 대한 상세 정보가 나오며 미션을 시작할 수 있습니다.
  • 미션 시작하기 버튼을 클릭하면 사진찍기, 앨범에서 사진 불러오기 등 미션에 필요한 활동이 가능합니다.
  • 미션을 포기할 수 있으며, 미션 완료하기 버튼을 클릭하면 진행중인 미션에서 완료한 미션으로 미션 리스트가 이동합니다.
미션 뷰
미션뷰

[상점 뷰]

  • 상점 탭에서 현재 보유 포인트를 확인할 수 있으며, 포인트 내역을 클릭하면 포인트 사용 내역 및 획득 내역을 기간 별로 확인 할 수 있습니다.
  • 각 카테고리에는 포인트로 구매가 가능한 상품 및 쿠폰 리스트가 있으며, 구매하기 버튼을 클릭하면 포인트가 차감됩니다.
  • 상품 리스트를 클릭하면 상품사진 및 상품 상세 정보를 확인 할 수 있습니다.
상점 뷰
상점 뷰

[마이페이지 뷰]

  • 마이페이지 탭에서는 프로필 정보를 볼 수 있으며, 프로필 이미지, 닉네임 등 수정을 할 수 있습니다.
  • 설정 버튼을 클릭하면 앨범을 통해 프로필 이미지를 변경할 수 있으며, 닉네임 변경을 할 수 있습니다.
  • 마이페이지에서도 포인트 사용 내역 및 포인트 교환이 가능합니다.
  • 고객센터 섹션에서 Q&A 및 이메일 문의가 가능합니다.
  • 로그아웃 및 탈퇴하기 버튼이 마이페이지 하단에 버튼으로 구성되어 있으며, 클릭하면 재확인 알림창이 나옵니다.
마이페이지 뷰
마이페이지뷰

7. 회고

  • 🙋‍♂️이현호
    • 역할 : 상점 카테고리 뷰, 마이페이지 뷰
    • 느낀점
      • 깊이 있고, 심도 있는 작업보다는 주로 뷰와 간단한 데이터 통신 및 메서드 등을 활용했지만 뷰를 어떻게 그려 나가야 할 지 어느 정도 감을 잡은 것 같아 유익한 시간이었습니다.
      • 정말 일주일 동안 시간가는줄 모르고 코딩에 전념했던 것 같습니다.
      • 코딩 실력도 중요하지만 협업 능력도 상당히 중요하다는 것을 깨달았고, 협업 능력에 대해 많은 것을 배웠던 시간이었습니다.
    • 산출물의 품질
      • 아이디어부터 개발까지 참여하다보니 더욱 꼼꼼하게 보려다보니, 시간의 부족함을 깨달았습니다. 개발 실력도 중요하지만 제한된 시간 내에 얼마나 완성도 있는 결과물을 이끌어내는 것도 중요하다는 것을 배워갑니다.
      • 아직 많이 미흡하고 완성도가 있지는 않지만, 처음부터 완성도 있는 앱이 만들어지진 않는다고 생각합니다. 하지만 앱을 만들어봤다는 것, 앱을 만들면서 공부한 것들에 더 큰 의미와 가치를 두고 싶습니다.
    • 프로세스
      • 앱 자체는 계획한 대로 만들긴 했고, 결과물 또한 생각했던 그대로 입니다.
      • 하지만 그 과정은 계획대로 된 것이 하나도 없었습니다.
      • 많은 시행착오들이 있었고, 그것들이 시간의 지연을 발생하게 했고, 결과물에도 영향이 갔습니다.
      • 이러한 시행착오들은 몸소 겪고 나니, 다음 프로젝트에는 어떻게 진행해야 될 지 알 것 같습니다.
    • 앞에서 만든 것들에 많은 것들이 바뀌어야 한다고 생각합니다. 시장에 나와 있는 영향력 있는 앱들도 초기에는 별 볼일이 없었을 것이라 생각합니다.
    • 자간, 정렬, 사진크기, 디자인패턴, 데이터구조, 동작해야하는 것들, 로그인 기능 등 하고 싶은 것들이 많습니다. 기대가 됩니다.

  • 🙋🏻‍♂️김강혁
    • 산출물 품질

      • 개인적으로 생각할 때 여유롭지 않은 시간동안 최대한의 결과물을 만들었다고 생각합니다. 다만, 디테일한 부분을 더 챙기지 못한 것이 아쉽습니다.
    • 계획

      • 계획자체는 신속하게 수립이 되었다고 생각을 하고, 계획했던 파트들이 잘 구현되었다고 생각합니다.
    • 프로세스(일하는 방식)

      • 추가적으로 정해야했었던 몇가지를 제외하고, 잘 계획되었다고 생각하고, 예상했던 것보다는 구현하는데 시간이 좀 더 걸린듯 합니다.
      • 생각보다 더 걸렸습니다.
      • 생각했던 것과 90%정도 일치하는 듯 합니다.
      • 시스템이 잘돌아간다고 생각합니다.
    • 앞에서 완료한 작업 중에 바꿔야할 것을 찾아내는 단계

      • 당연하게도 동의했던 것을 만들었습니다.
      • 수정하고 싶은 것이 있다면, 검색 후의 지도상에 더 많은 데이터를 제공할 수 있었으면 좋겠고, 시간이 여유롭게 주어진다면 더 기발하고
      • 창의적인 미션 아이디어를 생각해서 적용하고 싶습니다.

  • 🙋🏼‍♂️백종현
    • 주제 : 여행 추천 및 포인트 적립 앱

    • 역할 : 저는 메인페이지에서 검색뷰로 넘어가는 맵뷰를 제작했습니다.

    • 맵킷을 이용해 맵을 구현했습니다.

    • api에서 받아온 정보에 맞게 모달뷰와 마커를 만들었습니다.

    • 느낀점 : 깃 사용과 각자 만든 뷰들과 연결을 하는 과정에서 어려움을 느꼈습니다. 그렇기에 조금더 탄탄한 기획이 필요함을 느꼈습니다. 또한 협업 경험이 없던 저에게 큰 경험이 된 시간이었습니다.

    • 아직 아쉬운게 많습니다. 더 기간이 주어진다면 앱을 완성하고 리팩토링까지 해보고 싶습니다.

    • 계획은 사실 미흡했던것 같아요. 완전하지 않은 디자인과 데이터 구조를 정하지 않고 시작했고 그렇기에 트러블이 많이 발생했습니다. 하지만 그럼에도 각자 맡은 뷰는 최선을 다해 만들었기에 순조롭게 개발이 진행되었다고 생각합니다.

    • 완전하진 않지만 기획 배경에서 크게 벗어나지 않고 만들었다고 생각합니다. 아직 부족한 부분이 많고 데이터 구조는 확실히 다시 잡아야하는 부분일 것이고 또한 로그인, 결제, 예약 시스템까지 추가로 넣을수 있다면 아주 훌륭한 결과물이 될것이라 생각합니다.


  • 🙋‍♀️김혜란
    • 역할 : 행사 세부내역을 구현했습니다.

    • 느낀점 : json 구조를 파악하여 바인딩을 통해 실시간으로 데이터를 뷰에 표현하는 법을 배울 수 있었습니다.

    • 산출물 품질 : 목표한걸 다 구현하긴 했지만 전반적으로 실 사용 어플보다는 디자인이 많이 부족하다고 생각합니다.

    • 계획: 목표의 50%정도 완성했습니다.. 데이터를 잡고 갔다면 왠만한 부분은 더 정확하고 빠르게 구현할 수 있었을것 같은데 데이터의 흐름을 잡지 못하고 시작한게 많이 아쉬웠습니다.

    • 프로세스 : 조장님 중심으로 원활하게 진행되었습니다. 아침저녁으로 간단한 회의를 진행해서 해야할것, 얼마나했는지 등을 서로 공유하는 중요함을 알게되었습니다.

    • 우리가 만들기로 동의했던 것을 만들었는가? : 네 서로 원하는 부분을 잘 맞추어 구현하려고 노력했다고 생각합니다.

    • 우리가 만들기로 동의했던 것이 맞다면 어느 부분을 수정해야 하는가? 앱의 기능 부분에 대해서 조금 더 깊은 고민이 필요할것 같습니다. (강사님이 말했던 포인트 넘겨주기의 기능 혹은 단체여행으로 많은 포인트를 얻을 수 있는 기회 등등)


  • 🙋🏻‍♀️신희선
    • 역할 : URLSession을 통한 API 통신 및 데이터 전달

    • 느낀점 : 이번에 데이터 통신을 하면서 동기/비동기 처리와 데이터 모델을 짜고 데이터 넘겨주고 받는게 너무 어려웠습니다. 뭔가 많이 열심히 했는데 막상 나온 결과가 별로 없는 것 같아서 아쉽습니다. 데이터는 너무 어렵습니다

    • 산출물 품질 : 나름 열심히 만들었지만 실제로 배포되어 있는 앱들과 비교하면 상당히 품질이 떨어진다 생각하지만 새로운걸 많이 배우고 코드를 짜봐서 유익한 시간이였습니다.

    • 계획: 목표의 40%정도 완료 한 것 같습니다. 기획할 때에도 난이도가 상당히 있을거라 생각했지만 생각보다 더 어려웠던 것 같습니다. 깃에서 충돌이 많이나서 일주일 중 3일은 시간을 버린 것 같아서 마음이 아픕니다…

    • 프로세스 : 계획은 중간중간 모여서 푸쉬하고 머지해서 합쳐보는 등 효과적이였다고 생각합니다. 하지만 자잘한 디자인을 건드리는데에 시간이 많이 소요된 것 같습니다. 생각했던 기능이나 구동이 완벽하게 구현 되진 않았지만 나름 잘 작동하고 새로운 기능들을 구현해봐서 아주 유익했습니다.

    • 우리가 만들기로 동의했던 것을 만들었는가? : 네 만들기로 했지만 너무 어렵거나 시간이 모자란 경우 패스했습니다.

    • 우리가 만들기로 동의했던 것이 맞다면 어느 부분을 수정해야 하는가? : 잘 모르겠습니다(질문의 의도를 모르겠음)


  • 🙋🏼‍♀️유지인
    • 미션 여행 앱 역할: 미션 리스트 뷰 파트 담당(메인 기능: ImagePicker 를 이용한 미션 수행)

    • 다른 분들의 비해 기초가 많이 부족하여 많은 도움이 되지 못 한게 아쉽습니다.

    • 혼자서 했다면 짧은 기간에 이렇게 많은 시간을 할애하기 어려웠을 것 같습니다.

    • 많은 분량이 아닌데도 계속 문제가 발생해 찾아보고, 물어보고 하면서 기초에 대해 더욱 더 중요성을 느꼈습니다.

    • 수업이 수료 이후에 기초 문법등 더 많이 투자해야 할 것 같습니다.

    • 산출물 품질 : 일주일정도의 프로젝트를 진행했는데 그것보다 더 많은 것이 만들어져서 대단하다고 느꼈습니다.

    • 계획: 피그마에서 저희가 생각한 부분 이상을 작업하면서 만들어서 기획의 시간이 좀 더 충분 했으면 좋았을 것 같다고 느꼈습니다. 속도는 조금 빠르다고 느꼈습니다.(그건 모르는 부분이 많아서 당연한 일이라고 생각합니다.)

    • 프로세스(방식):

    • 기획을 위한 시간이 좀 더 많았으면 개발 중간 ,중간에 결정하지 않고 개발에 시간을 더 투자할 수 있었을 것 같습니다.

    • 피그마에서 기획한 것과 같게 만든 것 같습니다.

    • 생각보다 더 늦게 끝났어서 조금 아쉬웠습니다.

    • 결과물은 예상한 것 그대로지만 시간이 더 많았으면 또는 처음부터 코드를 고려하고 만들었으면 좋았을 것 같습니다.

    • 잘 작동하지만, 시간이 더 많았으면 좀 더 좋은 코드로 수정할 수있었을 것 같습니다.

    • 팀원분들이나 팀장분이 계속해서 중간 체크하고 체크 해주셔서 좋았던 것 같습니다.

    • 앞에서 완료한 작업 중에 바꿔 야 할 것을 찾아내는 단계

      • 여행을 하면서 미션을 수행해서 여행을 더 즐겁게 만들었다고 생각합니다
      • 수행할 수 있는 미션을 더욱 다양하게 만들고, 미션을 통해서 사람들이 경쟁할 수 있는 기능도 있으면 좋겠습니다. (카카오 톡에서 나와 비슷한 사용자의 한달 지출금액을 비교하고 적게 쓰면 일정의 금액을 성공한 사람들끼리 쉐어 합니다.)
      • 완료한 미션을 다른 친구들과 공유하고 공유받은 친구가 추천

8. 참고 링크


About

사용자가 다양한 지역의 관광 명소를 여행하면서 재미있는 미션을 수행하고, 이로 인해 특별한 경험과 보상을 얻을 수 있는 앱

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages