Design Patterns: MVVM, MVVM-C, MVP, Clean Architecture
·
iOS/Swift
디자인 패턴은 앱의 규모와 요구사항에 따라 선택할 수 있으며, 단순한 앱에서는 MVP나 MVVM, 복잡한 네비게이션이 포함된 앱에서는 MVVM-C를 선호할 수 있다. 유지 보수를 위해 가독성이 좋고 의존성을 줄이고자 사용하는 것이기 때문에 누구나 알기 쉽게 작성하는 데 중점을 두어야 하고, 디자인 패턴을 위해 코드가 복잡해지는 것은 바람직하지 않다.참고로 Apple에서 권장하는 디자인패턴은 Swift는 MVC, SwiftUI는 MVVM이라고 한다.  1. MVP (Model-View-Presenter)Model, View, Presenter로 구성된 디자인 패턴으로, View와 Model을 분리하여 코드의 유지보수성을 높이는 구조이다.Model: 애플리케이션의 비즈니스 로직과 데이터 관리 부분을 담당한다..
iOS 앱 개발자를 위한 RESTful API 실전 적용과 WebSocket
·
iOS/Swift
1. RESTful API 설계와 특징RESTful API는 서버와 클라이언트 간의 통신을 효율적으로 설계하기 위해 널리 사용되는 방식이다.RESTful API 설계의 주요 원칙리소스를 나타내는 명사형 URI:GET /users: 유저 목록 읽기POST /users: 새로운 유저 생성Stateless 통신:클라이언트는 매 요청 시 필요한 모든 정보를 포함하여 서버에 전달한다. 서버는 이전 요청 상태를 기억하지 않는다.RESTful하지 않은 API 란모든 요청을 POST로 처리URI에 리소스 대신 동작을 나타내는 동사가 포함된 경우 (예: /students/update)2. RESTful API를 위한 서버 - 클라이언트 협업앱 개발에서 가장 기본이 되는 RESTful API는 화면의 데이터 제공이다. 특..
Swift) 값 타입과 참조 타입 그리고 클래스와 구조체 (Value type & Reference type, Class & Struct)
·
iOS/Swift
값 타입과 참조 타입 값 타입 변수를 할당하면 스택 영역에 값이 저장된다. 변수를 복사한 후 복사본을 변경하더라도 원본에 영향을 주지 않는다. 힙 영역을 사용하지 않고 레퍼런스 카운팅이 필요하지 않다. 참조 타입 스택 영역에는 포인터(레퍼런스)만 할당되고 실제 데이터는 힙 영역에서 할당된다. 변수를 복사하더라도 하나의 값을 가리키고 있기 때문에 복사본과 원본이 모두 같은 값을 갖는다. 변수를 복사하더라도 레퍼런스 카운트만 +1되고 실제 값이 복사되지는 않는다. Swift의 Class와 Struct는 생김새와 사용법이 유사하다. 구조체는 1. 값 타입이다. 2. 상속이 불가능하다. 3. 생성자를 구현하지 않아도 default initializer를 사용할 수 있다. struct Car { var name ..
Swift 앱의 생명주기와 헷갈리는 UI 관련 개념 정리
·
iOS/Swift
* 생명주기 1. ViewController 생명 주기 2. App 생명 주기 3. Scene 생명 주기 * UI 관련 개념 1. UIWindow - The backdrop for your app’s user interface and the object that dispatches events to your views. - UIView를 상속받은 객체로 유저 인터페이스의 배경으로서 UIView들에게 이벤트(터치, 드래그 등)를 전달하는 역할을 한다. 2. Frame과 Bounds - 두 가지 모두 UIView의 위치와 크기를 가진 프로퍼티이다. - 두 가지 모두 CGRect형으로 나타난다. - Frame은 SuperView내에서의 절대적인 위치 좌표를 가지고 Bounds는 상대적인 위치 좌표를 갖는다. ..
Swift 중요한 용어와 개념
·
iOS/Swift
프로그래밍 언어 공통 1. 라이브러리와 프레임워크 - 라이브러리는 재사용이 가능하도록 미리 만들어둔 최소 기능 단위이다. 보통 라이브러리는 API를 제공한다. 크게 표준 라이브러리와 사용자 라이브러리가 있는데 표준 라이브러리는 언어에서 제공해주는 것(ex. printf 함수)이고 사용자 라이브러리는 보통 표준 라이브러리를 이용하여 만들어진다. - 프레임워크란 라이브러리들과 또다른 프레임워크들을 모두 포함한다. 자바를 편하게 쓸 수 있도록 만든 스프링, 파이썬을 편하게 쓸 수 있도록 만든 장고 등을 예로 들 수 있다. - 라이브러리와 프레임워크 모두 편리하고 개발시간을 단축시키는데 도움이 되며, 재사용이 가능하다는 장점이 있다. 또 여러 사람이 사용하기 때문에 대부분 신뢰할 수 있다. - 라이브러리의 경우..
Swift 클로저와 일급 함수
·
iOS/Swift
일급 시민(함수 or 객체) 1. 변수나 데이터 구조(컬렉션) 안에 담을 수 있다. 2. 파라미터로 전달할 수 있다. 3. 리턴값으로 사용할 수 있다. Swift 클로저 let add: (Int, Int) -> Int = { (a: Int, b: Int) in return a + b } let res: Int = add(1, 2) print(res) // 3 swift의 함수는 일급함수가 아니다. swift의 클로저는 일급함수이다. 함수가 일급함수인 경우 : javascript, kotlin, python .. javascript는 함수를 변수 안에 담고, 리턴값으로 사용할 수 있다. function calculator(mode){ var options = { '+' : function(left, rig..