포티(photi)는 Photo + Post-it에서 온 이름의 인증형 소셜 챌린지 앱입니다.
하루 한 번의 즉석 인증으로 기록을 가볍게 쌓고, 해시태그/검색·파티·댓글/좋아요로 동기부여를 강화합니다.
작고 단순한 규칙으로 습관 형성을 돕고, 공개/초대 코드 챌린지와 외부 공유를 지원합니다.
| 챌린지 생성 | 챌린지 인증 | 챌린지 공유 | 파티원과 함께 도전 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
기능 상세 소개
하루 한 번, 정해진 시간 안에 즉석 사진으로 인증해요.
매일 쌓이는 기록이 다음 도전을 만드는 동력이 됩니다.
목표·인증 시간·간단한 규칙만 정하면 바로 시작! 초대 코드를 활용해 친구들과 프라이빗 챌린지도 즐길 수 있어요.
해시태그/검색으로 취향에 맞는 챌린지를 발견하세요. 인기 챌린지로 요즘 유행 중인 도전도 한눈에 확인!
파티원과 사진을 공유하고 좋아요/댓글로 응원해요. 나만의 목표 메모를 남겨 서로 동기부여를 높여보세요.
인스타그램 등 소셜로 나의 챌린지 기록을 손쉽게 공유하고, 더 많은 사람들과 도전의 즐거움을 나눠보세요.
App 🚀
앱의 엔트리 포인트이자, DI Composition Root 역할을 하는 계층/모듈
Presentation 🎨
각 서비스(도메인) 별로 모듈을 분리하여, App 혹은 Presentation 내부에서 조합해 쓰는 UI 계층
Domain 🧠
Entity, UseCase로 구성된 비즈니스 로직의 핵심 계층
- Entity: 앱 비즈니스 모델 정의하는 모듈
- UseCase: 시나리오 단위 도메인 로직을 구현한 모듈
Data 🌐
Domain에서 정의한 계약(Repository 인터페이스)을 구현하는 데이터 접근 계층
- Repository: Domain UseCase가 의존하는 인터페이스 구현체를 담은 모듈
- DataMapper: DTO ↔ Entity 변환 담당하는 모듈
- PhotiNetwork: 외부 라이브러리 없이
URLSession을 추상화한 Endpoint 중심 네트워크 모듈- 다양한 HTTP 메서드를 일관된 방식으로 제공
- Access Token 만료 시 Refresh Token을 통한 자동 재발급 & 원 요청 재시도 처리
Core 🧰
앱 전역에서 재사용되는 Util·Extension 모음
DesignSystem 🧩
앱 내 사용하는 폰트, 컬러, 이미지 등의 에셋과 공통 디자인 컴포넌트가 있는 모듈
패턴: MVVM + Coordinator
- Coordinator: 화면 전환 및 라우팅 책임을 분리한 구조
- 현재는 별도 SPM 패키지로 분리하여 관리
- 👉 Coordinator SPM 바로가기



