iOS

·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다. 오늘은 공식문서를 바탕으로 디자인 패턴 중 싱글톤에 관해 정리해 보겠습니다.바로 시작하겠습니다.Singleton(싱글톤) 싱글톤패턴은 하나의 클래스에서 오직 하나의 인스턴스만 가지는 디자인 패턴으로 클래스의 전역적으로 접근 가능한 공유 인스턴스를 제공하기 위해 사용됩니다. 앱 전반에서 공유되는 리소스나 서비스를 통합적으로 관리하기 위해 직접 싱글톤을 생성할 수 있습니다.예를 들어, 효과음을 재생하는 오디오 채널이나 HTTP 요청을 처리하는 네트워크 매니저를 싱글톤으로 구현할 수 있습니다. 이해가 가시나요? 조금 더 자세히 설명해 보도록 하겠습니다. 인스턴스를 생성하는 데는 생각보다 많은 비용이 드는데요. 이게 단순 작업보다는 I/O 바운드 경우를 확연하게 두드러집..
·iOS/UIKit
안녕하세요, iOS 개발하는 루피입니다. 오늘은 공식문서를 바탕으로 VC의 계층에 대해 정리해보는 시간을 가져보겠습니다.바로 시작하겠습니다.VC의 계층구조는 앱의 VC들 간의 관계를 정의하며, 각 VC가 수행해야 할 동작을 결정합니다. UIKit은 VC를 특정 방식으로 사용하도록 요구하며, 올바른 VC 관계를 유지해야 필요한 자동 동작이 적잘한 VC에 전달 됩니다. 만약 정해진 Containment 와 Presentation 관계를 깨뜨리면, 앱의 일부 기능이 의도한 대로 작동하지 않을 수 있다.자동 동작 : 화면 전환, View 업데이트 등Containment : VC 간의 부모-자식 관계를 설정하여 하나의 VC가 다른 VC를 포함하도록 하는 구조Presentation : 한 VC가 다른 VC를 모달 ..
·iOS/Swift
안녕하세요, 루피입니다. 저번 글에서는 함수형 프로그래밍의 의미에 대해 알아보았는데요. 오늘은 저번에 말씀 들렸던 거처럼 함수형 프로그래밍의 특징과 명령형 프로그래밍과의 차이점에 대해 살펴보겠습니다. 바로 시작합니다.함수형 프로그래밍 특징순수 함수 : 동일한 입력 값에 대해 항상 동일한 출력값을 반환하며, 외부 상태를 변경하지 않는 함수. (저번 글에서 수학적 함수랑 같은 의미라고 말씀 들렸습니다.불변성 : 데이터는 한 번 생성되면 변경되지 않습니다. (저번 글에서 원본 데이터를 변경하기보다는 하나의 데이터를 새로 생성하는 방식을 의미하는 것 같습니다.)고차 함수 : 함수를 인자로 받거나 반환값으로 사용하는 함수입니다. (일급 함수의 개념입니다.)참조 투명성: 동일한 입력값에 대해 항상 동일한 결과를 반..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 함수형 프로그래밍에 대해 정리해보려고 합니다. 바로 시작합니다.함수형 프로그래밍수학적 함수의 계산을 기반으로 상태 변화와 가변 데이터를 최소화하는 프로그래밍 패러다임이다.처음부터 어려운 단어들이 나열 되는 군요 .... 수학적 함수,, 상태 변화,, 가변 데이터 너무 어렵습니다 ㅠㅠ. 단어의 의미들을 우선 정리해보겠습니다.수학적 함수란?수학에서 함수는 입력값을 받아서 항상 동일한 출력값을 반환하는 규칙입니다. 이는 곧 같은 입력값에 대해 항상 같은 결과를 반환한다는 것인데요. 예를 들어.. f(x) = x+2 이면, f(2) = 4, f(3) = 5 가 될것입니다. 이런 경우 f(2) 는 항상 4가 되고, 외부 환경이나 다른 요인에 영향을 받지 않는다고 볼 수 있는거죠! ..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 저번 시간에 이어 클로저 문법 경량화(최적화)에 대해 정리해 보도록 하겠습니다. 바로 시작하겠습니다.클로저의 문법 경량화클로저 문법 사용 방식을 최적화하여 간단하게 코드를 작성하는 방식을 말합니다. 쉽게 이해할 수 있도록 몇 개의 단계로 나누어 순차적으로 말씀드리겠습니다. 한번 아래의 형식을 경량화해보겠습니다. 예시는 공식문서에 나와 있는 filter(:_)를 가지고 왔습니다!! let arr[1,2,3,4,5,6,7,8,9] arr.filter(isIncluded: (Int) throws -> Bool) arr.filter({ (num: Int) -> Bool in return num.isMultiple(of: 2) }) print(result) ..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 클로저에 대해 공부하고 정리해 보겠습니다. 바로 시작하겠습니다.1. 클로저란?클로저는 코드 블록으로 특정 작업을 수행하는 기능을 캡슐화한 것입니다. 클로저는 함수와 유사한데요, 사실은 함수 역시 클로저의 일부분입니다. 무슨 말인지 바로 말씀드리겠습니다.클로저는 크게 named closure과 unnamed closure로 나뉘는데요.named closure : 우리가 흔히 부르는 함수unnamed closure : 우리가 흔히 부르는 클로저이름이 나뉘는 데는 이유가 있겠죠?? 사용 목적이 다르기 때문입니다. named closure는 반복하여 사용할 수 있는 코드블록으로 이때, 강조되는 부분은 반복이라는 부분입니다.반복적으로 호출하기 위해서는 명확한 이름을 가지고 명확한 ..
·iOS/Swift
접근 제어자란..?코드를 작성하는 한 파일에서 다른 파일에 있는 코드에 대한 접근을 명시적으로 작성하여 이를 관리하는 것입니다.이를 이용해 우리는 module과 source file에 따라 다른 접근을 할 수 있게 됩니다.Module하나의 프레임워크를 의미하여 코드 상에서 import 키워드로 추가되는 것들이 바로 module이다. 대표적으로 UIKit, Foundation 등이 module에 해당하며, 프로젝트 하위에 있는 각각의 target들도 하나의 module에 속합니다.Source File각 module 안에 있는 파일들을 말한다. 예를 들어, viewContoller.swift 같은 파일들이 하나의 source file에 해당됩니다.Swift의 5가지 접근 제어자특정 접근 제어자가 적용되는 대..
·iOS/UIKit
안녕하세요, 루피입니다! 오늘은 Container View Controller에 대해 공부하고 정리해 보는 시간을 갖도록 하겠습니다. 바로 시작합니다.Content ViewController기본적으로 뷰 컨트롤러에게 기대하는 역할(앱 내 데이터를 화면에 보여주는 등)을 수행한다고 합니다. 일반적으로 UIViewController를 서브클래싱하여 커스텀해서 사용하는 경우가 이에 해당 하겠죠..?Container ViewController여러 요소를 조합한 인터페이스를 구성하여, 보통 직접 무언가를 보여주는 역할은 하지 않고 뷰 컨트롤러 사이 부모-자식 관계를 형성하여 자식을 관리하는 역할을 하는 뷰 컨트롤러입니다. 쉽게 생각하면 Container ViewController들이 Content ViewCont..
·iOS/UIKit
안녕하세요, iOS 개발하는 루피입니다! 오늘은 ViewController의 Life cycle에 대해 공부하고 정리해 보는 시간을 갖도록 하겠습니다.자 그러면 바로 들어가 보도록 하겠습니다!ViewController의 Life cycle 이란?ViewController에서의 생명주기는 보였다 사라지는 것과 같은 주기라고 할 수 있습니다. 일반적으로 앱들은 하나 이상의 화면을 가지며, 각각의 ViewController는 생명주기를 갖고 있는데요. 실제로 ViewController는 다음과 같은 생명주기를 갖는다고 합니다.!loadView컨트롤러가 관리하는 view를 만드는 역할을 한다고 합니다.따라서 loadView가 뷰를 만들고 메모리에 올린 후 viewDidLoad가 호출된다고 할 수 있습니다.vie..
·iOS/UIKit
안녕하세요, iOS 개발하는 루피입니다! 오늘은 저번 글에 작성했던 참고 자료를 정리해 보는 시간을 가져보려고 합니다. 크게 Background와 Foreground에서 앱 실행을 준비하는 자료가 있었는데요, 오늘은 Foreground에서 준비를 해야 하는 내용에 관해 의역하며, 정리해 보려고 합니다. 그러면 시작해 보겠습니다.화면에 앱을 띄우기 위해 설정합시다.OverviewForeground 전환을 사용하여 앱의 UI가 화면에 표시될 준비를 하세요. 앱이 Foreground로 전환되는 것은 일반적으로 사용자의 액션에 대한 응답으로 이루어집니다. 예를 들어사용자가 앱 아이콘을 탭 하면 시스템이 앱을 실행하고 Foreground로 가져옵니다. 이 과정에서 Foreground 전환을 활용해 앱의 UI를 업..
kimsangjunzzang
'iOS' 카테고리의 글 목록 (5 Page)