본문 바로가기

개발

(14)
[iOS] Coordinator Pattern ⛴ 개념1️⃣ 서론Coordinator 의미 : 움직임을 조정하는 사람Coordinator Pattern은 2015년, Soroush Khanlou가 The Coordinator라는 글을 쓰면서 소개됩니다.Khanlou는 ViewController가 flow로직, view로직, business로직등 너무 많은 역할을 한다고 생각하였습니다.따라서 flow로직을 담당하는 객체를 만들었고 이 객체를 Coordinator 또는 Directors라고 지칭합니다.💡 Coordinator패턴은 ViewController의 flow logic(흐름 로직)을 분리하기 위한 목적 2️⃣ 장점화면이 많아지게 되면, 화면전환을 담당하는 UINavigationController 를 사용하기가 버거워집니다. 왜냐하면 화면전환을..
[iOS] Clean Architecture for iOS 🤔 탄생한 이유? 그 동안 여러 시스템 아키텍처가 존재해왔습니다.Hexagonal ArchitectureOnion ArchitectureScreaming ArchitectureDCIBCE이런 여러한 아키텍처들은 세부사항들은 다르지만 동일한 목표를 가지고 있는데 그것은 관심사의 분리라는 목표입니다. 해당 아키텍처들은 소프트웨어를 여러 레이어(layer)로 나누어 목표를 달성합니다.레이어 종류에는 비즈니스 규칙 레이어가 하나이상 존재하고 인터페이스용 레이어가 존재합니다. 각각의 아키텍처들의 생산성프레임워크에 독립적입니다.아키텍처는 기능이 포함된 소프트웨어 라이브러리의 존재 여부에 의존하지 않습니다. 이를 통해 시스템을 제한된 제약 조건에 가두는 대신 이러한 프레임워크를 도구로 사용할 수 있습니다.테스트가 ..
[iOS] URL및 endpoint관리하기 1️⃣ URL extension활용하기URL extension을 활용하여 필요한 URL마다 추가하는 방법파라미터가 필요하다면 함수로 작성💡  이 방법은 편리하지만 enum을 활용하면 좀 더 Endpoint들을 한눈에 파악하기 편리합니다.extension URL { static var recommendations: URL { makeForEndpoint("recommendations") } static func article(withID id: Article.ID) -> URL { makeForEndpoint("articles/\\(id)") }}private extension URL { static func makeForEndpoint(_ endpoi..
[iOS] iOS 14이상에서 UICollectionView 사용하기 iOS 14이상부터 UICollectionView를 구현하기 위해서 다양한 API를 제공하는데 해당 API들을 사용하면 장점들을 활용할 수 있습니다.iOS 14이전방식으로 예시화면을 UICollectionView구현한 코드를 살펴보고 새로운 API들을 하나씩 적용하여 변경하면서 살펴보겠습니다.👨🏻‍🏫 예제코드 설명해당 예제코드를 살펴보기전에 레이아웃은 SnapKit 라이브러리를 활용하였고, Then 라이브러리를 활용하여 UIComponent을 구성하였습니다.파일명은 iOS14이전으로 구현한 코드들은 앞에 Previous를 붙여주고 iOS 14이상방식으로 구현한 코드들은 New로 명명합니다.아래 이미지를 참고하여 UICollectionView를 구현할 예정입니다.  전체코드 : iOS 14이상에서 U..
[iOS] Preview (실시간 미리보기) 1️⃣ Preview란?Previews in Xcode 공식문서PreviewProvider 공식문서Mastering Xcode Previews - WWDC 2019Structure your app for SwiftUI previews - WWDC 2020Xcode에서는 실제 기기 및 시뮬레이터를 사용하지 않고 최신 상태의 뷰 콘텐츠를 표시할 수 있는 Preview 기능이 있습니다. 해당 기능을 사용하면 화면개발을 할 때 시간을 단축할 수 있도록 도움을 줍니다. 1-1. Preview의 동작원리기본적으로 SwiftUI 프로젝트를 생성하면 하단의 Preview를 표시하는 코드가 생성됩니다.struct ContentView_Previews: PreviewProvider { static var previe..
[iOS] Atributika 라이브러리 (HTML to NSAttributedString) 1️⃣ 소개 Atributika 라이브러리란? GitHub - psharanda/Atributika: Convert text with HTML tags, links, hashtags, mentions into NSAttributedString. Make them clickabConvert text with HTML tags, links, hashtags, mentions into NSAttributedString. Make them clickable with UILabel drop-in replacement. - psharanda/Atributikagithub.com Atributika는 HTML 태그, 링크, 전화번호, 해쉬태그(#), 멘션(@) 등이 포함된 텍스트를 NSAttributedString으..