Skip to content

GaeMeee/Fence_App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

679 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FenceApp

프로젝트 개요

앱 소개


반려동물을 일어버리셨나요? 혹은 길 잃은 반려동물을 찾으셨나요?

"찾아줄개" 커뮤니티 앱을 통해 반려동물을 찾아보세요!

반려동물을 잃어버렸을 때 글을 작성하실 수 있으며, 길을 가다가 길 잃은 반려동물을 발견했을 때 사진 촬영 한 번으로 손 쉽게 글을 작성하실 수 있습니다.

"위치 기반 서비스" 를 이용하여 사용자 위치 주변의 잃어버린 반려동물, 길 잃은 반려동물들의 글들을 지도를 통해 쉽게 확인해 볼 수 있습니다. 잃어버린 반려동물, 발견한 길 잃은 반려동물 게시글들을 각 게시판에서 리스트로 확인해볼 수 있으며, 사용자의 위치에서 거리에 따른 기능 및 날짜 선택을 통해 언제부터 어디까지 작성된 글들을 필터 기능을 통해 원하시는 정보들도 보실 수 있습니다.

본인의 페이지에서 본인이 작성한 게시글들 및 닉네임, 프로필 이미지를 수정할 수 있으며, 로그아웃 및 회원탈퇴 기능들도 준비되어 있습니다.


이미지


라이브러리 & 프레임워크

  • SnapKit
    • 효율적으로 포르젝트를 진행하기 위해 SnapKit을 채택해 전보다 코드량을 확실히 줄였습니다.
  • MapKit, Core Location
    • 프로젝트에서 유저의 위치정보를 통해 Map을 활용하여 Mark(핀)을 보여주는 것이 **'주'**기능이기 떄문에 채택하였습니다.
  • Kingfisher
    • Firebase에 Image가 url 방시긍로 저장되기 때문에 이미지 파일을 다운로드 및 캐싱을 자동적으로 처리해주는 편리성이 좋아 채택하게 되었습니다.
  • MessageUI
    • 게시글, 댓글 신고 및 앱 피드백(이메일 작성)을 통해 사용자와 개발자간의 소통이 가능하고 앱 품질 향상을 위해 채택했습니다.
  • WebKit
    • 개인정보 처리방침 및 서비스 이용약관 제공의 페이지는 노션을 활용하였기에 좀 더 사용자가 쉽게 접근하여 보실 수 있게 하여 채택했습니다.
  • FirebaseCloudMessaging
    • 사용자의 게시글에 댓글이 달렸을 경우 실시간으로 알림 기능을 구현하기 위해 채택했습니다.

구현 기능

  • Login

    • 전화번호를 통한 회원가입
    • Firebase를 통한 로그인, 이메일 형식의 아이디로 비밀번호 찾기
  • MapView

    • 사용자가 작성한 게시글의 이미지와 위치 정보를 활용하여 Map에 Mark(핀)을 생성
    • 거리와 날짜를 이용하여 필터된 데이터들을 바탕으로 Mark(핀)을 업데이트
      • 사용자의 위치의 정보를 가지고 현재 위치에서 반경 km까지 게시글를 필터링
      • 시작, 끝 날짜를 바탕으로 게시글의 작성된 날짜 필터링
  • LostView

    • 잃어버린 반려동물의 게시글을 TableView로 보여줌
    • 잃어버린 반려동물의 정보를 바탕으로 게시글 작성
    • 거리와 날짜를 이용하여 필터된 데이터들을 바탕으로 Mark(핀)을 업데이트
      • 사용자의 위치의 정보를 가지고 현재 위치에서 반경 km까지 게시글를 필터링
      • 시작, 끝 날짜를 바탕으로 게시글의 작성된 날짜 필터링
    • pagenation을 통한 무한 스크롤
  • Camera

    • 사진을 촬영시 현재 사용자의 위치와 촬영된 이미지를 바탕으로 발견한 반려동물 게시글 생성
  • FoundView

    • 발견한 반려동물의 게시글을 CollectionView로 보여줌
    • 거리와 날짜를 이용하여 필터된 데이터들을 바탕으로 Mark(핀)을 업데이트
      • 사용자의 위치의 정보를 가지고 현재 위치에서 반경 km까지 게시글를 필터링
      • 시작, 끝 날짜를 바탕으로 게시글의 작성된 날짜 필터링
  • DetailView

    • 잃어버린 반려동물 게시글 및 발견한 반려동물의 게시글을 바탕으로 상세 페이지를 보여줌
    • 작성자일 경우 게시글 삭제, 수정 기능, 아닐경우 신고 기능
    • 댓글 기능
      • 게시글 작성자에게 실시간으로 알림
      • 삭제, 수정, 신고 기능
  • MyInfo

    • 프로필 이미지 및 닉네임 수정
    • 사용자가 작성한 게시글 CollectionView로 보여줌
    • 앱 피드백, 회원탈퇴, 로그아웃, 개인정보 처리방침 및 서비스 이용약관 구현

Flow Chart

트러블 슈팅

  • 게시글 및 댓글을 작성 또는 수정할 때, '작성' 버튼을 여러 번 누르면 중복 등록되는 오류가 발생합니다.
    • 이 문제를 해결하기 위해 등록 버튼 클릭 시에 비활성화 또는 플래그 사용 등 다양한 방법이 있었지만, 사용자 관점에서 등록 후 알림이 없어 오류가 났을 수 있다는 고려로 AlertController를 활용하여 '작성 중입니다'라는 명확한 알림을 제공하도록 하였습니다.
  • 잦은 API 호출 문제
    • 데이터 정보를 객체에 따라 분리를 하면 API를 여러 번 호출하는 문제가 있을 수 있고, 데이터를 한 곳에 집중하면 API는 한 번만 호출하지만 필요없는ㄷ 데이터도 다 가져와야 하는 문제가 생길 수 있습니다. 그래서 유저의 사용 방식과 앱 구동 방식을 고려하여 필요한 데이터가 조금씩 중첩되도록 모델을 설계하였습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages