Neph's Blog

「Neph의 iOS 공부일지」

ScrollView를 터치하면 키보드가 내려가게 하기

UIScrollView 이번 프로젝트를 진행하다 collectionView의 cell안에 들어간 textView의 editing을 중지하기 위해 textView 바깥 영역을 터치하면 키보드가 내려가도록 하는 로직을 구현하기 위해 공부하던중 UIScrollView의 프로퍼티에서 그 답을 찾았다. onDrag는 scrollView를 드래그하...

Clean Architecture 예제 프로젝트 분석 3 - Input/Output & Action

Input/Output Input 1 2 3 4 5 6 7 8 9 protocol MoviesListViewModelInput { func viewDidLoad() func didLoadNextPage() func didSearch(query: String) func didCancelSearch() func sh...

Clean Architecture 예제 프로젝트 분석 2 - UseCase & Repository

UseCase SearchMoviesUseCase 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 protocol SearchMoviesUseCase { func execute(requestValue: SearchMov...

[번역] Clean Architecture and MVVM on iOS

본 글은 개인 학습목적으로 해당글을 번역한 글입니다. (의역 다수 존재, 삭제된 부분 존재) 개요 개발을 할때 디자인 패턴만큼이나 중요한 것이 아키텍쳐 패턴(architectural patterns)입니다. 개발 분야에는 다양한 아키텍쳐 패턴들이 존재하며 모바일 소프트웨어 엔지니어링에서는 MVVM, 클린 아키텍쳐, Redux 패턴이 가장 널리...

Clean Architecture 예제 프로젝트 분석 1 - Coordinator 패턴

Coordinator Pattern Coordinator: [한 계통의 각 움직임을] 조정[통합, 일원화]하다; [행동 등을] 조정하다 단어의 의미에서 알 수 있듯 Coordinator는 움직임을 조정하는 역할을 합니다. Khanlou: Massive View Controller의 가장 큰 문제 중 하나는 flow logic 및 bus...

Xcode 오른쪽 코드 미리보기 영역의 이름

Minimap Xcode 오른쪽의 코드 미리보기 영역의 이름을 몰라서 크기 조절, on/off 관련해 검색하기도 어려웠는데 여기에 이름이 나와있었다. 참고로 저 부분의 크기만 따로 조절하는 방법은 없고 cmd +, cmd -를 통해서 간접적으로 크기를 조절할 수 있었다. 난 잘 쓰지 않는 기능이라 그냥 끄기로 했다.

rethrow는 무슨 기능일까?

Rethrow 가끔 코드들을 보다보면 함수뒤에 rethrows라는 키워드가 달려있는 경우를 볼 수 있다. 처음에는 단순히 함수 내에서 throw메서드를 사용한 경우 do-catch문의 사용없이도 error catch가 일어난 경우 이 에러를 자동으로 throw한다는 뜻인가 싶었는데 이와는 전혀 다른 사용방법이 존재했다. 요약 함수 A가 ...

[Swift] multipart/form-data 트러블 슈팅

Multipart/form-data Multipart/form-data는 파일을 포함한 데이터를 전송할때 사용하는 데이터 형식이다. Content-Type 헤더(키)에 값으로 multipart/form-data; boundary={uuid}를 지정하고 1 2 3 4 5 6 7 8 9 10 11 12 Content-Type: multipart/f...

PHPicker itemProvider loadObject 트러블슈팅

loadObject 1 2 3 4 5 6 7 8 9 10 11 12 13 14 let images = results .map { $0.itemProvider } .map { item in let name = item.suggestedName var i...

URL Components 트러블 슈팅

URL Components URL Components의 url 연산프로퍼티의 설명을 보면 path는 “/”로 시작하거나 빈 스트링이여야 한다고 나와있다 시작할때 “/”로 시작해주지 않아서 에러가 생겼었다.