profile
 iOS Developer 좋아하는 것만 해도 부족한 시간
post-thumbnail

[iOS] hitTest 란?

나의 터치 이벤트에 반응한 뷰가 누구인지 알아보기 위해 필요한 것이 hitTest!hitTest의 목적은 터치 이벤트가 발생한 최상단의 뷰를 찾기 위함이다. point를 포함하고 있는 View에서 가장 멀리 떨어진 View(= 최상단의 뷰)를 반환한다.여기서 말하는 최

2022년 8월 4일
·
0개의 댓글
·
post-thumbnail

[iOS] 뷰의 계층 구조

윈도우는 디바이스의 스크린을 빈틈없이 채우기 위한 객체로, 항상 유저 인터페이스 표현 계층의 최상위에 위치한다. View의 일종이지만, 직접 콘텐츠를 가지고 있지는 않는다. 콘텐츠를 가진 View를 내부에 배치하여 화면에 출력하는 역할을 한다.

2022년 8월 4일
·
0개의 댓글
·
post-thumbnail

ABI란?

ABI의 안전성을 계속해서 염두해 두어야 한다. ABI의 안전성을 유지한다는 것은 함수의 인터페이스(return type, number, types, order of arguements), 데이터 타입 정의, 데이터 구조 등을 변경하는 것을 의미하는 것이 아니다.

2022년 3월 16일
·
1개의 댓글
·
post-thumbnail

어댑터 패턴(Adapter/Wrapper Pattern)

한 크래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 어댑터를 이용하여 인터페이스 호환성문제를 해결할 수 있다. 어댑터를 이용하면 호환되지 않는 충전기도 사용할 수 있다.이처럼

2022년 3월 14일
·
0개의 댓글
·
post-thumbnail

UI Diffable Data Source란?

추가적인 코드작업 없이도, 퀄리티 있는 에니메이션 적용이 가능하다. 개선된 Data Source 매커니즘은 완벽하게 동기적인 버그나, 예외, 충돌 상황들을 피할 수 있게 해준다. UI 데이터의 동기화 부분 대신 앱의 동적인 데이터와 내용에 집중할 수 있다.

2021년 10월 12일
·
2개의 댓글
·
post-thumbnail

ARC VS GC

객체의 Life Cycle을 관리하기 위한 방법으로 두가지가 있다.GC(Garbage Collection)ARC(Automatic Reference Counting)보통 JAVA로 개발하면 GC가 알아서 메모리 관리를 해주기 때문에 순환 참조 같은 문제는 고려할 필요가

2021년 10월 6일
·
0개의 댓글
·
post-thumbnail

Dictionary → JSON으로 내보내기

JSONDecoder를 이용하면 내가 생성한 객체를 쉽게 JSON 형식으로 내보낼 수 있다. 그런데 만약 Codable(Encodable, Decodable)을 채택 할 수 없는 객체의 경우 어떻게 JSON으로 내보 낼 수 있을까?

2021년 7월 24일
·
2개의 댓글
·
post-thumbnail

[iOS] swift 파일 CRUD의 모든 것

Foundation 에서 제공하는 FileManager 클래스를 이용하여 파일을 관리 할 수 있다.파일 매니저 클래스는 싱글톤 객체(FileManager.default)를 이용하여 파일과 관련된 모든 작업을 수행한다. 파일 생성, 복사, 이동 등 여러가지의 작업이 가능

2021년 7월 24일
·
0개의 댓글
·
post-thumbnail

[iOS] whose view is not in the window hierarchy 오류 해결

컴파일 에러는 없지만, 앱을 실행한 뒤 console에 "whose view is not in the window hierarchy" 로그가 있다. 해당 오류는 UIViewController의 override 함수인 viewDidLoad()에서 모달 뷰를 띄울 때 발생

2021년 7월 7일
·
0개의 댓글
·
post-thumbnail

Coordinator Pattern

Coordinator 패턴의 시작 Coordinator란 화면전환을 위한 delegate이다. Stack 방식으로 새로운 화면을 push하고, 이전화면으로 돌아가가기 위해 pop한다. 가장 첫 화면을 기준으로 새로운 화면으로 넘어갈때

2021년 6월 15일
·
2개의 댓글
·
post-thumbnail

REST API란, HTTP Method

REST란? 웹에 존재하는 모든 자원(이미지, 동영상, DB)에 고유한 URL을 부여하여 활용하는 것을 의미한다. 자원을 정의하고 자원에 대한 주소를 지정하는 방법론이다. 자원의 이름(자원의 표

2021년 5월 15일
·
2개의 댓글
·
post-thumbnail

프로토콜 지향 프로그래밍

스위프트는 프로토콜 지향 언어(Protocol-Oriented Language)이다. 스위프트는 대부분 구조체로 기본 타입이 구현되어있다. String, Int, Float, Date, URL 등등 익히 사용하고 있는 데이터 타입은 모두 구조체 이며, Array, Se

2021년 5월 5일
·
1개의 댓글
·
post-thumbnail

Strong, Weak, Unowned

특정 주소값을 참조하고 있는 객체의 카운트를 세는 역할을 한다. 참조 카운트는 참조 타입에만 해당된다. 구조체나, 열거형과 같은 Value Type에는 해당하지 않는다. 클래스의 인스턴스가 생성되면 Heap에 메모리가 할당된다. 초기 인스턴스의 RC값은

2021년 5월 1일
·
0개의 댓글
·
post-thumbnail

Dependency Injection 의존성 주입

생성시점을 분리한다. RaceCarEngine의 인스턴스를 먼저 생성한후, Vehicle을 생성한다. 외부에서 engine을 생성하고 Viechine에 프로퍼티에 대입하게 된다. 이것이 의존성 주입이다. 두 클래스는 여전히 서로 의존하고 있지만, 더 이상 강한 결합은

2021년 5월 1일
·
2개의 댓글
·
post-thumbnail

MVVM이란?

MVVM을 한마디로 정의하자면, Model의 데이터를 가공하는 ViewModel과, 그 ViewModel을 보여주는 View로 이루어진 패턴이라고 정의할 수 있다. View는 일반적으로 ViewModel과 1:1 관계를 가진다. 하지만 N:1 관계

2021년 4월 24일
·
1개의 댓글
·
post-thumbnail

App Architecture

UIKit Framework에서는 iOS와 tvOS를 위한 핵심 객체들을 제공해 준다. 이러한 객체들을 사용하여 스크린에 내용을 보여주고, 내용간에 상호작용을 하며, 관리를 할 수 있게 된다. App은 기본적인 행위를 하기위해 UIKit

2021년 3월 27일
·
0개의 댓글
·
post-thumbnail

Observer Pattern

Observer Pattern이 왜 필요할까? Customer와 Store 두 가지 객체가 있다고 상상해보자. Customer는 곧 출시를 앞둔 특정 상품에 매우 관심이 있다(예를 들자면 iPhone13..ㅎㅎ). 고객은 매일 스토어에 방문할 수 있다. 하지만 여전히

2021년 3월 27일
·
0개의 댓글
·
post-thumbnail

DataSource

1. UITableViewDataSource 란? data source 객체는 다음과 같은 역할을 한다. - 테이블의 section과 row의 수를 보고한다. - 테이블의 각 행에 대한 셀을 제공한다. - section의 header와 footer를 위한 title

2021년 3월 27일
·
0개의 댓글
·
post-thumbnail

JSON Parser using JSONSerialization or JSONDecoder in Swift

(1) API를 호출해서 (2) JSON 객체를 받아 온 후, (3) Swift data type으로 저장하기 swift에서 JSON객체를 받아와서 Parsing할 수 있는 방법은 3가지가 있다. JSONSerialization, JSONDecoder, SwiftyJS

2021년 3월 27일
·
0개의 댓글
·
post-thumbnail

앱의 상태 변화 (App LifeCycle)

Not Running : 앱이 시작되지 않은 상태 Inactive : 앱이 foreground 상태로 변경 되는 중. 이벤트를 처리할 수 없음 Active : 앱이 foreground 상태로 변경 됨. 이벤트 처리 가능 Background : 앱이 background상

2021년 3월 13일
·
0개의 댓글
·