iOS Development(16)
-
[RxSwift] RxSwift에 대해서 알아보기
RxSwift의 3가지 구성요소에 대해서 알아보자. Observable = Observable Sequence = Sequence Observable 개념 iOS에서 기본적으로 제공하는 Sequence 타입과 동일(배열과 같이 개별 요소들을 하나씩 순회 가능) T 형태의 데이터 snapshot을 전달할 수 있는 일련의 이벤트를 비동기적으로 생성하는 기능 일정 기간 동안 계속해서 이벤트 생성(emit)할 수 있기 때문에 다른 클래스에서 만든 값을 시간에 따라서 읽을 수 있는 기능 구현 가능 하나 이상의 Observers(Observable을 바라보는 관찰자)가 실시간으로 어떤 이벤트에 반응하므로 UI 처리에 활용 가능 세 가지 유형의 이벤트만 방출 enum Event { case next(Element) ..
2024.04.12 -
[RxSwift] RxSwift를 사용해야 하는 이유?
배경 앱 개발 시 외부 이벤트에 대한 응답을 작성하는 코드가 많아질수록 전반적인 코드를 복잡하게 만듦 외부 이벤트에 대한 응답 코드 예시 사용자의 컨트롤 조작에 대해 반응하기 위한 IBAction 핸들러 키보드 위치 변경을 감지하기 위한 Notification 관찰 URLSession이 데이터를 수신할 때 실행할 클로저 KVO를 사용해서 변수의 변경 사항을 감지 따라서 응답 코드에 대한 일관적인 시스템의 요구가 커짐 애플의 비동기 API 애플이 iOS SDK 내에서 비동기식 코드를 작성할 수 있도록 제공하는 다양한 API Notification Center, Delegate Pattern, Grand Central Dispatch(GCD), Closure 등 일반적으로 대부분의 클래스들은 비동기적으로 작..
2024.04.12 -
[iOS] Xcode 프로젝트를 GitHub에 Push 하기 전 API Key 숨기기
대부분의 앱들은 네트워크 통신으로 데이터를 받아서 앱에 활용하는데 API 콜을 하기 위해서는 당연히 API Key가 필요하다. API Key는 외부에 노출되면 안 되기 때문에 보안적인 측면에서 GitHub의 Remote Repository에 Push 하기 전에 Key를 외부에 보이지 않도록 관리해주는 작업이 필요하다. (Public Repository는 더욱 주의가 필요하다!) 따라서 다음과 같이 Xcode 내에서 API Key를 숨겨보는 작업을 진행해 보자. 1. xcconfig 파일 생성 프로젝트 바로 하위에 위치하도록 'Configuration Settings File' 파일을 추가한다. xcconfig 파일에 API 키를 맵핑시켜 준다. API_KEY = {실제 API Key 입력} 2. [프로젝..
2024.03.12 -
[Swift] #6 - Class
** 객체지향 프로그래밍 객체로 프로그램을 구성 객체: 정보(변수) + 동작(함수) 객체를 만들 때는 클래스라는 설계도를 이용해서 만듬 ** 객체지향의 용어 객체: 데이터, 행위, 아이덴티티를 가지고 있는 것 클래스: 객체를 생성하는 틀 캡슐화: 행위와 상태를 포장하고 외부에 노출할 것과 감출 것을 결정하는 것 상속: 코드의 재사용성과 계층구조의 표현 다형성: 캡슐화, 상속과 함께 동작함으로써 객체-지향 프로그램의 흐름 제어를 단순화하는 것 ** 클래스 정의 프로퍼티 = 멤버 변수 = 속성 // Class // '사용자 정의 타입' // 클래스 정의 class SimpleClass { var name = "SimpleClass" var count = 0 } // 객체 생성 var simpleClass =..
2021.09.03 -
[Swift] #5 - 함수
** 함수 프로그램의 기본적인 구성요소로, 어떤 작업을 수행하는 문장의 그룹을 의미함 ex) 레고 블럭 가독성의 증대, 유지관리가 쉬움 재사용 가능한 코드블럭 ** 함수 정의 // 함수 정의 func sayHello(name: String) -> String { return "Hello \(name)" } // 함수 호출 print(sayHello(name: "미지")) func multipl(dan: Int) { for j in 1...9 { print("\(dan) X \(j) = \(dan * j)") } } multipl(dan: 5) ** 함수의 매개변수 매개변수의 개수: 제한이 있긴 하지만 크게 신경 쓸 필요가 없음 반환값의 개수: 1개만 가능 / 여러개의 데이터를 전달하고 싶으면 Collec..
2021.09.01 -
[Swift] #4 - Collections
** Collections, 집단 자료형 서로 관련이 있는 데이터끼리 모아서 관리 다데이터를 그룹단위로 묶을 수 있으므로 다량의 데이터를 다룰 때 편리함 배열(Array): 일련번호로 구분되는 순서에 따라 데이터가 정렬된 목록 형태의 자료형 집합(Set): 중복되지 않은 데이터을 모은 집합 형태의 자료형 튜플(Tuple): 종류에 상관없이 데이터들을 모은 자료형, 수정 및 삭제를 할 수 없음(Immutable) 딕셔너리(Dictionary): 키(key)-값(value) 쌍으로 연관된 데이터들을 순서 없이 모은 자료형 ** Array 선언과 초기화 // 선언 + 초기화O var bts1 = ["진", "슈가", "제이홉", "RM", "지민", "V", "정국"] let bts2 = ["진", "슈가",..
2021.08.30