Thanks to visit codestin.com
Credit goes to github.com

Skip to content

letusHyun/Fresh-Note

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍃 Fresh Note - 신선함을 담는 메모장

iOS 16.0 Xcode 16.1 Swift 5.0

유통기한과 레시피를 한 눈에, 신선한 식재료 관리를 위한 솔루션

식재료 관리부터 레시피 추천까지, 당신의 냉장고를 스마트하게



📱 Fresh Note 화면


로그인 화면

날짜설정 화면

홈 화면

제품등록 화면

사진 상세 화면

사진 전체 화면

검색 화면

캘린더 화면

핀 화면

카테고리 화면

로그아웃 화면

회원탈퇴 화면


🧱 아키텍처

Clean Architecture + MVVM-C

아키텍처
  • Coordinator 패턴으로 화면 전환 로직을 분리하여 View Controller의 책임 감소

  • Repository 패턴을 활용한 Data Layer를 통해 데이터 소스 추상화

  • Use Case를 통한 비즈니스 로직 분리로 ViewModel 복잡도 감소

  • Protocol 기반 의존성 주입으로 테스트 용이성 확보

🛠️ 기술 스택

Firebase

  • Authentication, Firestore, Storage를 활용한 서버리스 아키텍처 구현
  • 별도의 백엔드 서버 없이 데이터 동기화 및 사용자 인증 구현
  • Cloud Functions를 통한 Refresh Token 발급/회수 처리

Combine

  • 데이터 바인딩과 비동기 이벤트 처리를 위한 Combine 프레임워크 활용
  • 비동기 네트워크 요청 및 DB 작업에 Swift Concurrency 적용
  • 상호 운용성 확보를 위한 연결 레이어 구현

CoreData & Keychain

  • 캐싱 데이터를 사용하기 위한 CoreData 활용
  • 민감한 인증 정보를 안전하게 저장하기 위한 Keychain Services 구현
  • Firebase와 Local DB 간 데이터 동기화 메커니즘 구현

📋 구현 내용

1. 애플 로그인 구현

  • JWT 생성을 서버가 아닌 클라이언트에서 직접 처리하는 보안 아키텍처 구현
  • Keychain을 활용한 Refresh Token 저장으로 사용자 재로그인 필요성 최소화
  • Firebase와의 통합을 통한 자동 로그인 구현

2. 맥락별 푸시 알림 복원 전략

  • 앱 삭제/재설치 시나리오에서도 사용자 설정 기반 푸시 알림 복원
  • Keychain을 활용한 상태 정보 보존으로 일관된 사용자 경험 제공
  • 12가지 사용자 시나리오 분석 및 대응 로직 구현

3. Firestore 비용 최적화

  • 로컬 캐싱 우선 전략을 통한 Firestore 읽기 비용 절감
  • 캐싱 속도를 통한 데이터 읽기 속도 개선
📑 문서 노션

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published