notes
IOS - 구조
iOS 앱 구조·프로젝트 구성과 화면·이벤트 흐름 기본 메모.
- 프로젝트 아키텍처:
- MVC 패턴 기반 구조
- 주요 구성요소:
- ViewControllers: UI 로직 처리
- Network: API 통신
- Utils: 유틸리티 클래스들
- Resources: 리소스 파일들
- 주요 기능 모듈:
- 네트워크 통신:
- HttpClient.swift: Alamofire 기반의 HTTP 통신
- 이미지 업로드 기능 구현
- 쿠키 관리 기능
- 유틸리티:
- Constants.swift: 앱 전반에서 사용되는 상수 정의
- LocationService.swift: 위치 서비스
- PaymentApp.swift: 결제 관련 기능
- DeviceInfo.swift: 디바이스 정보 관리
- ProgressIndicator.swift: 로딩 인디케이터
- UIImage+Resize.swift: 이미지 리사이징 기능
- UI 구성:
- Storyboard 기반 UI 구현
- 주요 화면:
- Launch Screen.storyboard: 런치 스크린
- VCLaunch.storyboard: 메인 런치 화면
- Splash.storyboard: 스플래시 화면
- WebView 기반 UI (CustomWKWebView)
- 외부 라이브러리 통합:
- Firebase (Analytics, Messaging)
- Alamofire (네트워킹)
- BSImagePicker (이미지 선택)
- YoutubePlayer (유튜브 재생)
- PermissionsKit (권한 관리)
- 보안 및 권한:
- 위치 정보 접근 권한
- 카메라 접근 권한
- 사진 라이브러리 접근 권한
- FaceID 권한
- 특이사항:
- Objective-C와 Swift 혼용 (Bridging Header 사용)
- WebView 기반의 하이브리드 앱 구조
- 다양한 결제 시스템 연동 (LSApplicationQueriesSchemes에 정의된 여러 결제 앱)
- 푸시 알림 지원
- 리소스 관리:
- 커스텀 폰트 사용 (NotoSansCJKkr 시리즈)
- 다국어 지원 준비 (Base.lproj)
- Assets 관리
- 앱 설정:
- iOS 13.0 이상 타겟팅
- 세로 모드만 지원 (iPhone)
- iPad는 모든 방향 지원
- Firebase 분석 및 푸시 알림 설정