Swift
-
[iOS] Coordinator with Clean Architecture DiContaineriOS 2025. 3. 6. 15:44
저번에 Tuist로 clean architecture를 적용시키다가 coordinator에 대해 미숙한채로 적용하다 보니 따로 공부 하기 위해 여기 작성해본다. 우선 coordinator는 직역하자면 조정하다 뭐 이런 뜻이고 화면 이동에 관한 것들을 관리하는 디자인 패턴이다.ViewController에서 Push나 Pop을 해주면 ViewController자체에서 하는일이 너무 많아 지고 그것은 결국 전체적인 코드 파악에 영향을 준다. 우선 먼저 Coordinator에 기본적인 부분부터 예시를 따라해보겠다.Coordinator를 여러가지로 살펴보다 보니 Delegate와 거의 동일 했다 ViewController에서는 Coordinator로 이벤트 전달하고 Coordinator는 다시 전체 AppCoor..
-
Tuist Clean Architecture 적용기 - 2iOS 2025. 2. 25. 15:03
저번 게시물에서 Tuist의 기초에 대해 다뤘다면 지금은 그걸 토대로 Clean Architecture를 적용하는 과정동안 고민하면서 적용 시켰던 과정을 끄적여 보겠습니다. 우선 간단하게 Clean Architecture는 시스템을 계층화 하여 보수성과 확장성을 높이는것을 목표로 하고 의존성 역전 원칙을 중심으로 비즈니스 로직을 외부 프레임 워크나 UI로 부터 독립적으로 유지하는 것입니다. 독립적, 보수성, 확장성이 Tuist와 잘 어울릴거 같습니다. 우선 제가 생각한 구조는 위 그림과 같습니다.Clean Architecture에서는 Domain Layer는 Data Layer와 Presentation Layer만 보고 있어야 하고 Domain은 어떠한 의존성도 가지고 있으면 안됩니다. 또한 의존성 주입..
-
Tuist Clean Architecture 적용기 - 1iOS 2025. 2. 24. 15:34
어느날 회사 프로젝트의 리빌드의 베이스 작업을 맡게 되어서 Tuist에 Clean Architecture을 적용해보기로 생각했다.일단 Tuist가 뭔지 정확히 몰라 이것저것 둘러 보면서 공부하고 내용을 끄적여 본다. Tuist란? Xcode 프로젝트를 관리 할 수 있는 툴 장점- 모듈화를 통해 의존성을 낮추고 재활용성을 높임- 유지보수가 쉬워짐- 빌드속도가 향상됨 단점- 프로젝트 초기 설정에 시간이 오래걸림- CocoaPod을 지원하지 않음 저는 Tuist 4.21.0을 사용했고 Tuist는 버전에 따라 바뀌는 내용이 많은것 같아서..버전 타겟팅이 중요해 보인다.Tuist 설치과정은 생략.. 먼저 설치하고 Tuist 프로젝트를 만들고 싶은 폴더를 만들어 터미널로 해당 폴더 위치로 이동한다. tuist ..
-
<Swift>Skeleton 사용하기iOS/개념정리 2022. 10. 31. 21:54
앱을 사용하다보면 위와 같은 로딩 뷰를 본적이 있을텐데 오늘은 위와 같은 로딩 뷰 skeleton 사용법을 알아보자! 프로젝트를 새로 생성 후 해당 경로에 pod init 후에 podfile에 아래 명령어를 삽입해서 Skeleton을 설치 합니다. pod 'SkeletonView' 사용할 ViewController에 가서 "import SkeletonView"를 상단에 넣어 줍니다. 그리고 이제 storyboard를 만들어 줄껀데. 저는 다음과 같이 만들었습니다 4개 view 다른 효과를 줄 껍니다. ( 뒷 배경은 위 캡쳐화면을 위해서 잠시 검정색으로 해서 4개 view가 잘 보이게 작성했습니다.) 그리고 각 뷰마다 설정을 해주어야 하는데. 먼저 스토리 보드를 이용하면 위와 같이 뷰를 선택하여 Attri..
-
<Swift> Kingfisher 사용하기iOS/개념정리 2022. 10. 14. 16:00
Kingfisher란? Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. - 웹에서 이미지를 다운로드 하고 캐싱하기 위한 강력하고 순수한 라이브러리 입니다. 특징으로는 Asynchronous image downloading and caching. Loading image from either URLSession-based networking or local provided data. Useful image processors and filters provided. Multiple-layer hybrid cache for both memory and disk. Fine control on ..
-
<Swift> 로컬 푸쉬 - Local NotificationiOS/개념정리 2022. 8. 17. 10:29
푸쉬 종류 - 서버로 부터 푸쉬앱을 띄우는 remote notification - 로컬 앱으로 부터 푸쉬앱을 띄우는 local notification 우선 Local Notification을 사용 하려면 UNUserNotificationCenter에 대해서 알아야 한다. Apple document에 따르면 해석 하자면 "앱 또는 앱 확장에 대한 알림 관련 활동을 관리하기 위한 중앙 개체입니다" 라는 뜻이다.알림에 관한 기능을 하는 클래스라고 생각하면 될 것 같다. 우선 UNUserNotificationCenter을 사용하기 위해선 import UserNotifications를 상단에 해줍니다. 다른앱을 이용하다 보면 아래 이미지와 같이 권한 요청하는 과정을 거쳐야 합니다. completionHandler..
-
<Swift>PHPicker - 사진앱 이용하기iOS/개념정리 2022. 8. 5. 14:17
앱에서 프로필 사진 등록이나 게시물에 사진을 올릴때 사진앱에서 사진을 가져올때 우리는 PHPicker를 이용해서 가져올 수 있습니다. 사진 앱을 이용하기 위해선 우선 PHPickerConfiguration 과 PHPickerViewController를 알아야 합니다. Apple Document를 살펴보면 PHPickerConfiguration An object that contains information about how to configure a picker view controller. -> Pikcer 보기 컨트롤러를 구성하는 방법에 대한 정보가 포함된 개체입니다. PHPickerViewController A view controller that provides the user interface ..
-
<Swift> iOS 건강 데이터 사용하기- HealthKitiOS/개념정리 2022. 3. 18. 16:50
iOS에서 건강 데이터를 사용하기 위해서는 HealthKit을 사용해야 합니다. HealthKit은 Apple document에서는 다음과 같이 설명 되어 있습니다. "Access and share health and fitness data while maintaining the user’s privacy and control." -> 사용자의 개인 정보 및 제어를 유지하면서 건강 및 피트니스 데이터에 엑세스 하고 공유합니다. HealthKit 데이터 유형은 크게 5개가 있습니다. 1. Characteristic data (특성 데이터) - 생년월일, 혈액형, 성별, 피부유형과 같이 일반적으로 변경 되지 않는 항목을 나타냅니다. 2. Sample data (샘플 데이터) - 대부분의 사용자 건강 데이터 ..