Skip to content

alloon-project/photi-ios

Repository files navigation

photi logo  포티 - photi

UIKit Tuist Clean Architecture RxSwift Fastlane

포티(photi)는 Photo + Post-it에서 온 이름의 인증형 소셜 챌린지 앱입니다.
하루 한 번의 즉석 인증으로 기록을 가볍게 쌓고, 해시태그/검색·파티·댓글/좋아요로 동기부여를 강화합니다.
작고 단순한 규칙으로 습관 형성을 돕고, 공개/초대 코드 챌린지와 외부 공유를 지원합니다.

기능 소개

챌린지 생성 챌린지 인증 챌린지 공유 파티원과 함께 도전
기능 상세 소개

1일 1인증 📷

하루 한 번, 정해진 시간 안에 즉석 사진으로 인증해요.
매일 쌓이는 기록이 다음 도전을 만드는 동력이 됩니다.

챌린지 만들기 🧩

목표·인증 시간·간단한 규칙만 정하면 바로 시작! 초대 코드를 활용해 친구들과 프라이빗 챌린지도 즐길 수 있어요.

다양한 챌린지 탐색 🔎

해시태그/검색으로 취향에 맞는 챌린지를 발견하세요. 인기 챌린지로 요즘 유행 중인 도전도 한눈에 확인!

파티원과 함께 도전하기 👯‍♀️

파티원과 사진을 공유하고 좋아요/댓글로 응원해요. 나만의 목표 메모를 남겨 서로 동기부여를 높여보세요.

인증 사진 공유하기 📲

인스타그램 등 소셜로 나의 챌린지 기록을 손쉽게 공유하고, 더 많은 사람들과 도전의 즐거움을 나눠보세요.

아키텍쳐

프로젝트 구성

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 🧩
앱 내 사용하는 폰트, 컬러, 이미지 등의 에셋과 공통 디자인 컴포넌트가 있는 모듈

Presentation 구조도

패턴: MVVM + Coordinator

  • Coordinator: 화면 전환 및 라우팅 책임을 분리한 구조
Image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages