Skip to content

IF-TG/iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

여가: 여행을 가다

image

프로젝트 소개

먼저 다녀온 여행객의 여행 기록을 후기로 공유하고 국내 소외 관광지를 활성화 하기 위한 서비스 입니다.

👉 개발 동기

많은 현대인이 SNS 광고와 알고리즘에 의존해 여행지를 선택하면서, 일부 국내 여행지들이 소외되고 있습니다. 이 문제를 해결하기 위해, 한국관광공사 공공데이터를 활용한 여행 커뮤니티 앱 서비스를 개발하여 숨겨진 여행지를 발굴하고 공유할 수 있는 플렛폼을 마련했습니다🤩


🧑🏻‍💻 팀 소개

BE: 임경완 iOS: 띵킹 iOS: 김석현 Design: 오수민
MoonDooo SHcommit letusHyun OhSumin

🎯 동료와의 목표

  • UI 구현시 되도록 외부 라이브러리 사용하지 않기
  • 기능 구현하다 막히거나 오류 해결이 어려운 경우 동료와 의논하며 해결하기
  • 컨벤션 준수하기
  • PullRequest할 때, 자신이 구현한 기능 자세히 소개 및 새롭게 알게된 개념 소개 및 참고했던 포스트 링크 남기기
  • 중복 코드를 줄이기. 객체와의 의존성은 줄이고 결합도는 높이는 객체 설계 및 구현하기

💡 '여가' 스토리가 담긴 공간


사용 기술 및 라이브러리

1st party

  • UIKit, AutoLayout
  • Combine, GCD
  • XCTest
  • Photos
  • LinkPresentation
  • NotificationCenter

3rd party

  • Swinject
  • Alamofire, Firebase, GoogleSignIn
  • AppsFlyer
  • Snapkit, Swiftlint

Etc

  • Figma, SwiftPM, Github project kanban

개발 환경

  • Minimum deployment target: iOS 13.0

Project Architecture & System Flow

image
  • Clean Architecture
  • Input/Output binding ( in MVVM )
  • Coordinator

각각의 layer 마다 객체들은 protocol을 통해 의존성을 낮추어 서로 협력합니다. 이때 DIP를 지키고자 노력했습니다. 또한 layer 별로 Assembly에서 객체를 등록해, 객체의 의존성 주입에 필요한 로직을 해당 Layer의 Assembly에서 한정할 수 있었습니다.


어플리케이션 기능

죄송합니다.

Application 각 flow별 동작 gif는 크롬 브라우저에서 원활하게 동작됩니다. (사파리에서는 gif가 동작되지 않는 현상을 발견했습니다😭.) GIF 용량이 있어서 때문에 일부 화면은 로딩 지연이 걸립니다.

[ 로그인 화면 ]

로그인 화면 구글+파이어스토어로긴 gif3
로그인 화면 구글 로그인 연동 애플 로그인 연동

[ 피드 여행 후기 포스트 화면 ]

제목+글 추가 기본 이미지 연속 추가 이미지 추가 -> 글 추가 -> 이미지 삭제 -> 글 제거
카테고리 화면 초기->선택완료까지 카테고리 화면 대분류 전환 카테고리 화면 소분류 다중 선택 카테고리 화면 다중 선택한 소분류 취소
피드 페이징 및 리프레싱 피드 카테고리 테마 전환 상세화면 이동

[ 공유하기 로직 ]

공유하기 로직 앱이 백그라운드 상태일 때 실행되지 않은 앱일 때 링크 클릭 유효하지 않은 포스트일 때
공유하기 로직 앱이 백그라운드 상태일 때 링크 클릭 실행되지 않은 앱일 때 링크 클릭 유효하지 않은 포스트일 때

[ 피드 여행 후기 포스트 화면 ]

테마별 소팅 포스트 차단 후 페이징 피드 하트 취소 피드 하트 후 포스트화면 연동
피드 대표적 계절, 지역 테마 및 서브 카테고리 소팅 피드 포스트 그만보기 및 스크롤 피드 포스트 하트 취소 피드에서 포스트 하트 후 상세화면 연동

[ 여행 후기 포스트 상세화면 ]

 상세화면 스크롤 네비바 애니  카테고리 편집하기
상세화면 스크롤 자연스러운 네비바 애니메이션 카테고리 화면 상세화면 -> 편집화면 이동

[ 댓글과 대댓글의 기능은 동일하게 동작해서 댓글의 동작 과정은 생략했습니다. ]

대댓글 작성 대댓글 업데이트 대댓글 삭제 대댓글 하트 do, undo
상세 화면 포스트 대댓글 추가 포스트 대댓글 업데이트 포스트 대댓글 삭제 대댓글 하트 do, undo

[타인의 댓글, 대댓글 옵션 선택하는 경우 #1, #2, #3]

대댓글 차단 #1 댓글 차단(대댓글 존재(O))#2 댓글 차단상태-> 마지막 대댓글 차단#3

[ 알림센터 Flow ]

알림 화면. 알림 전부 제거, 리프레시 Firestore 기반 공지사항 화면

[ 검색 Flow ]

  • 검색에 관련된 모든것

  • 검색 메인화면, 검색 메인화면 에서 특정 상세화면, 검색 메인 화면에서 더보기 누를 경우 (gif4개)

  • keyboard 상호작용되는 검색 화면, 최근 검색 기록 하나 제거 및 전부 제거, 검색 결과 후 화면, 검색 결과 후 카테고리 선정시 소팅 되는 과정 (gif4개)

  • 검색 결과 후 상세보기 화면, 페이징 (gif 1개 )

[ 찜 Flow ]

  • 찜 디렉터리 추가 및 제거 및 디렉터리 이름 수정 찜 상세화면 피드 탭 및 여행 후기 탭 (gif3개)
  • 찜 디렉터리 안에서 피드 화면 클릭할 경우 진입 및 비어있는 경우 (gif2개)

[ 설정 Flow ]

[ 설정 메인 화면, 내 정보 화면 ]

설정메인 카메라로 이미지 추가 닉네임 변경 프로필,이미지 수정 후 저장
설정 메인 화면 내 정보화면. 카메라로 프로필 이미지 추가 내 정보화면. 닉네임 변경 내 정보화면. 프로필 수정 및 이미지 수정 후 저장

[ 이용 안내 화면, 메일 문의 화면 flow ]

이용 안내 화면 메일 문의화면 -> 메일 전송 flow 여가팀 메일함 메일 상세내용

Releases

No releases published

Packages

No packages published

Languages