iOS 포트폴리오 | 포토 다이어리 앱

내일배움캠프 7기 앱 개발 과정 iOS 트랙 수료생 최종 프로젝트 '포다'를 소개합니다.
Mar 07, 2024
iOS 포트폴리오 | 포토 다이어리 앱
 
 
💁
about PODA

오프라인 포토부스에서 찍은 사진을 꾸미고 보관할 수 있는 어플리케이션입니다.

 
문제점:
  1. 오프라인 포토부스에서 찍은 사진들이 여러 장 모이게 되면 관리하기 힘들다.
  1. 종이로 보관된 사진들은 잊혀져서 다시 꺼내보기 힘들다.
  1. 개인적인 감성과 추억을 담은 사진들을 특별한 방식으로 기록하고 싶은 욕구가 있다.
  1. 포토부스 지도 검색의 번거로움이 있다.
 
솔루션:
  1. 앱을 통해 포토부스 사진들을 다이어리 형식으로 관리할 수 있다.
  1. 앱 내에서 쉽게 사진들을 조회하고 회상할 수 있다.
  1. 사용자 맞춤 스티커와 다양한 꾸미기 도구를 제공하여, 다이어리를 만들 수 있게 한다.
  1. 브랜드별 포토부스를 한번에 보여주는 지도 제공
 
 

☁️ 시연 영상

Video preview
 
notion image
 

☁️ 페이지별 주요 기능

notion image
 
notion image
notion image
notion image

온보딩 페이지
  • 앱 소개 페이지
로그인 페이지
 
회원가입 페이지
  • smtp 메일 발송
  • 이메일, 비밀번호 유효성 검사
 
메인 페이지
  • 오늘의 타임 캡슐 : 랜덤한 추억 조각을 띄워줘서 추억 회상 가능하도록
  • 나의 추억 현황: 추억조각과 다이어리의 개수 안내
  • 추억조각과 다이어리 목록
 
다이어리 만들기 페이지
  • 속지 배경 색상 선택 기능
  • 추억 조각 스티커
  • 앨범에서 사진 가져오기
  • 텍스트 추가 기능, 폰트 / 색상 / 크기 조절
  • 사진 및 텍스트 회전 / 축소 / 삭제 / 맨앞으로가져오기 기능
 
QR 코드 스캐너
  • QR코드 스캔하면 해당하는 url 사파리 로드
다이어리 상세 페이지
  • 하단에는 사진 설명, 날짜 및 공유 해당자들의 목록이 뜨도록
  • 다이어리 페이지 사진 다운로드 (갤러리 저장)
 
추억조각 등록하기
  • 날짜 지정
  • 앨범에서 사진 등록
 
추억 조각 더보기 페이지
  • 등록한 추억조각을 한눈에 볼 수 있음
  • 최신순/ 오래된 순 정렬
  • 내맘대로 섞어보기 기능 (6개 이상 등록시 해지할 수 있는 비밀 기능)
 
정보 페이지
  • 로그인된 계정 및 버전 정보 조회 가능
  • 개인정보처리방침 및 서비스 이용 약관
  • 공지사항 (서버 연동으로 실시간 업데이트 가능)
  • 문의하기 (공식 계정으로 메일 보내기 가능)
  • 로그아웃
  • 탈퇴하기

 

☁️ Service Architecture

notion image
 

☁️ 기술 스택 소개 및 채택 이유

Firebase
  • 서버 없는 개발: 서버 유지 관리에 시간을 투자하지 않고도 앱의 핵심 기능에 집중 가능 → 앱을 빠르게 개발하고 출시 가능
  • 비용 효율성: 무료로 사용 가능
  • 방대한 레퍼런스: 구글에서 제공하는 서비스이고 많은 개발자들이 쓰기 때문에 이슈에 빠르게 대응 가능
  • 데이터 분산: 로컬의 사진 데이터가 많아질 경우 디바이스의 용량이 커지고 무거워짐 이를 분산하기위해 사용
 
Realm
  • 성능: 빠른 데이터 처리 속도 제공 → 앱의 반응성 향상 + 사용자 경험 향상
  • 데이터 모델링: 직관적이고 간단한 데이터 모델링 및 스키마 관리
 
Snapkit
  • 간결한 코드: 직관적이고 간결한 문법 → 복잡한 UI를 더 쉽게 구성 가능
  • 가독성: 코드의 의도가 명확하게 보이고, 협업과 유지보수에 유리
 
SwiftSMTP
  • 표준 프로토콜: 인터넷 표준 프로토콜 중 하나로, 대부분의 이메일 서버와 호환 가능
  • 커스터마이징: 이메일 템플릿, 발신자 주소, 이메일 내용등을 자유롭게 조정 가능
 
Then
  • 간결한 코드: 객체 초기화와 설정 코드를 간결하게 작성 가능
  • 일관된 코드: 모든 팀원이 비슷한 코드 패턴을 사용하여 가독성 및 유지보수에 용이
 
NVActivityIndicator
  • 간편한 사용: 간단한 코드 몇줄로 로딩 인디케이터 구현
  • 다양한 애니메이션: 유저에게 직관적인 로딩 상태를 전달
  • 가볍고 빠른 성능: 유저의 앱 사용성 향상
 

☁️ 팀원소개

notion image
 
Share article
Subscribe to our newsletter
RSSPowered by inblog