Skip to content

커플을 대상으로 한 위치 공유 기반 iOS 앱입니다.

Notifications You must be signed in to change notification settings

TeamMeloMeter/MeloMeter_Dev

Repository files navigation

coord MeloMeter App(*iOS 15.0)

멜로미터 - 커플 위치 공유 서비스

coord

👨‍👩‍👧‍👦 팀 구성

  • iOS Developer[2]
  • UI/UX Designer [2]

❣️ 프로젝트 소개

우리가 사랑하는 방법 🩷, MeloMeter

🥲 수많은 커플 앱 이용에 지치셨나요?

MeloMeter 하나로 연인과 위치를 공유하고, 기념일을 챙기고, 채팅과 백문백답도 즐겨보세요!

🫵 전화번호만 있다면 누구나 이용할 수 있습니다.

전화번호 인증을 통해 발급된 초대코드로, 상대방과 연결할 수 있습니다.

✨ 주요 기능


📲 전화번호 인증과 초대코드 입력으로, 상대방과 연결 후 시작할 수 있어요! 내 초대코드를 상대방에게 카카오톡으로 공유할 수 있어요!

coord coord coord

📍 상대방과 위치를 실시간으로 확인할 수 있어요.    💬 상대와 둘만 있는 공간에서 채팅할 수 있어요.

   coord            coord

💌 하루 한번, 질문을 받고 답변을 상대방과 공유할 수 있어요.

coord coord coord

👀 기념일을 확인하고, 새로운 날짜를 추가할 수 있어요.

coord coord

✍️ 다양한 나의 정보를 변경할 수 있어요.

coord coord

🛠️ 주요 사용 기술

➜ MVVM

도입 이유

  • 초기 MVC 패턴 구조로 개발하던 중, 기능을 추가하며 컨트롤러 비중이 높아져 가독성, 디버깅, 결합도 측면 문제가 발생했습니다. Extension을 사용해 코드를 분리하기 위해 노력했지만 부족했습니다.
  • 사용자 입력 및 뷰의 로직과 비즈니스에 관련된 로직을 분리하고 싶었습니다.
  • View의 Event로 부터 UI작업까지 단방향으로 관리할 수 있는 장점이 있었습니다.

성과

  • Input, Output으로 나누어 ViewModel에 전달받을 값과, 전달할 값을 직관적으로 인식할 수 있었습니다.
  • ViewController가 ViewModel의 프로퍼티를 참조하는 의존성을 해결하고, 비중을 효과적으로 줄일 수 있었습니다.

➜ RxSwift

도입 이유

  • Firebase를 사용하면서 중첩된 비동기 처리가 많아졌고, Completion Handler를 이용해 처리하던 중 코드 가독성이 저하됐고, 실수가 잦아진 문제를 해결하고자 했습니다.
  • 대안으로 Combine이 있었지만, 출시일이 빠른 RxSwift가 더 넓은 범위 버전까지 지원하고 레퍼런스가 많아 선택했습니다.

성과

  • Escaping Closure가 아닌 RxSwift의 Operator를 활용하여 코드 양이 감소해 깔끔해지고 실수를 방지할 수 있었습니다.
  • 비동기 코드(DispatchQueue, OperationQueue)를 직접적으로 사용하지 않아 일관성 있는 비동기 코드로 작성할 수 있었습니다.

➜ Coordinator 패턴

도입 이유

  • 코드 베이스로 UI를 작성하면서 StoryBoard로 UI를 작성할 때 보다 View들의 계층과 Flow를 파악하기가 힘들다는 문제가 있었습니다.
  • ViewController의 화면 전환 및 의존성을 주입하는 역할을 분리하고, 한눈에 보기 위해 적용했습니다.

성과

  • 동일한 인스턴스의 중복 생성을 막아 메모리 낭비를 막을 수 있었습니다.
  • View의 계층과 Flow 및 의존성을 주입에 대한 정보를 한 눈에 파악할 수 있었습니다.

➜ Firebase

도입 이유

  • 사용자 인증, 사용자 정보 저장, 실시간 채팅, 실시간 위치 공유, 백문백답, 기념일 등의 기능 구현을 위해 별도의 서버 구현없이 빠르게 개발하기 위해 사용하였습니다.

성과

  • Firebase Authentication을 사용하여 전화번호 인증 로그인을 구현했습니다.
  • Firebase Firestore를 사용하여 사용자 데이터, 채팅 정보, 위치 정보, 백문백답, 공지사항 등을 저장했습니다.
  • Firebase Storage를 사용하여 프로필 사진, 채팅 이미지를 저장했습니다.
  • FireStore의 채팅 데이터, 위치 데이터를 옵저빙하여 변경되는 데이터를 앱에서 실시간으로 업데이트 할 수 있었습니다.

About

커플을 대상으로 한 위치 공유 기반 iOS 앱입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages