IOS란 애플사가 만든 모바일 운영체제로 아이폰, 아이패드에 사용되는 운영체제이다.
IOS 개발언어
- 스위프트
- 객체지향 언어로 애플에서 개발한 현대적인 범용 프로그래밍 언어를 의미
- 장점
- 코드를 간결하게 구현할 수 있다.
- 객체 지향 개념을 사용하여 유연하게 개발이 가능하다
- 멀티 플랫폼 개발이 지원되고 개발시간이 짧다.
- 다양한 사용자 인터페이스 기능을 제공한다
- 단점
- 상대적으로 오브젝티브-C보다 속도가 느리다.
- 장점
- 객체지향 언어로 애플에서 개발한 현대적인 범용 프로그래밍 언어를 의미
- 오브젝티브 - C
- 객체지향언어로 스위프트가 출시되기 전에 IOS개발에 주로 사용되는 프로그래밍 언어
- 장점
- 스위프트보다 더 빠르다
- 상대적으로 더 안정적이다
- 더 많은 엔진이 구현되어 있다
- 엔터프라이즈 레벨 앱 개발이 가능하다
- 단점
- 간단한 작업을 수행하기 위해서는 많은 코드가 필요하다
- 러닝커브가 높다
- 디버깅을 하는데 어려움이 있다
- 장점
- 객체지향언어로 스위프트가 출시되기 전에 IOS개발에 주로 사용되는 프로그래밍 언어
IOS아키텍처 패턴
- mvc패턴
- 모델, 뷰, 컨트롤러를 사용하여 개발하는 패턴
- 모델 : 데이터를 저장하고 업데이트 하는 역할을 수행
- 뷰 : 데이터를 사용자에게 보여주고 사용자의 입력을 받은 역할, 뷰는 컨트롤러에게 사용자의 입력을 전달
- 컨트롤러 : 모델로부터 데이터를 받아 뷰에 보여주거나, 뷰로부터 데이터를 받아 모델에 업데이트
- mvp패턴
- 모델, 뷰, 프레젠터를 사용하는 개발패턴
- 모델 : 데이터를 저장하고 업데이트
- 뷰 : 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할, 뷰는 프레젠터에게 사용자의 입력을 전달
- 프레젠터 : 모델로부터 데이터를 받아 뷰에 보여주거나 뷰로부터 데이터를 받아 모델에 업데이트
- mvvm패턴
- 모델, 뷰, 뷰모델을 사용하여 개발하는 패턴
- 모델 : 데이터를 저장하고 업데이트
- 뷰 : 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할, 뷰는 뷰 모델에게 사용자의 입력을 전달
- 뷰모델: 모델로부터 데이터를 받아 뷰에 보여주거나 뷰로부터 데이터를 받아 모델에 업데이트한다. 뷰모델은 뷰와 모델의 데이터를 변환하고 변환된 데이터를 뷰에 보여주기 위해 사용된다.
- viper패턴
- 뷰, 인터랙터, 프레젠터, 엔티티, 라우터 사용
- 뷰 : 데이터를 사용자에게 보여주고 사용자의 입력을 받는 역할
- 인터랙터 : 인터랜터는 모델로부터 데이터를 받아 뷰에 보여주거나 뷰로부터 데이터를 받아 모델에 업데이트
- 프레젠터: 뷰와 인터랙터 사이의 데이터를 변환하고 변환된 데이터를 뷰에 보여주기 위해 사용
- 라우터 : 뷰 간의 전환을 관리하는 역할, 엔티티는 데이터를 저장하고 업데이트
아키텍처 패턴 장점 단점
mvc | 코드를 간결하게 작성하기 쉽고, 개발속도가 빠름 | 코드관리가 어렵고, 뷰를 수정하면 모델도 변경해야 한다. |
mvp | 구조가 명확하고 코드관리가 용이 | 개발속도가느리고, 코드를 작성하기 복잡 |
mvvm | 뷰를 업데이트할 때 모델업데이트를 하지 않아도 된다. | 비동기로 동작하기 때문에 코드를 작성하기가 복잡 |
viper | 코드관리가 용이하고 뷰를 수정할 때 모델 변경이 필요하지 않다. | 개발속도가 느리고 코드를 작성하기 복잡 |
IOS 주요 프레임워크
- CocoaPods스위프트 패키지 매니저는 다양한 종류의 프레임워크를 관리하고 업데이트할 수 있는 도구로 앱과 프레임워크 간의 연결을 쉽게 관리해준다. 해당 프레임워크는 IOS내에 이미 포함되어 있다.
- CocoaPods는 애플의 오브젝티브-C or Swift언어를 사용하여 개발한 IOS 및 macOS앱의 의존성 관리를 위한 프레임 워크이다. CocoaPods는 앱이 필요로 하는 라이브러리들을 관리하고 업데이트 할 수 있게 해준다. 또한 스위프트 패키지 매니저를 사용해 의존성을 관리할 수도 있다.
- Cocoa Touch는 Apple의 프레임워크 중 하나로, IOS앱 제작을 위한 기능을 제공한다. IOS기기의 메뉴 및 화면 구성, 사용자 인터페이스 제작 등의 기능을 제공해준다. 해당 프레임워크는 IOS내에 이미 포함되어있다.
Cocoa Touch Framework 설명
UIKit | Apple이 제공하는 코코아터치 프레임워크 중 하나로, 앱 인터페이스를 개발할 때 필요한 다양한 기능들을 제공한다. UIKit은 앱의 뷰와 뷰 컨트롤러, 이벤트 등을 개발할 때 사용된다. |
CoreData | 애플이 제공하는 코코아터치 프레임워크 중 하나로, 데이터를 저장하고 관리하기 위한 엔티티들과 속성들을 모델링하고 관리할 수 있는 기능을 제공한다. |
CoreGraphics | 애플이 제공하는 코코아터치 프레임워크 중 하나로, 2D그래픽 작업을 수행하기 위한 기능들을 제공, 이미지처리와 그래픽작업, 도형 등과 같은 다양한 그래픽 작업을 수행할 수 있게 해준다. |
CoreAnimation | 애플이 제공하는 코코아터치 프레임워크 중 하나로, 2D 및 3D애니메이션을 만들기 위한 기능을 제공. 뷰를 이동하거나 사이즈를 변경하거나 회전하거나 역할을 수행하는 등의 애니메이션 기능을 제공 |
CoreText | 애플이 제공하는 코코아터치 프레임워크 중 하나로, 텍스트 렌더링을 수행하기 위한 기능을 제공, CoreText는 텍스트 스타일, 글꼴, 폰트 등과 같은 텍스트 관련 기능을 제공. |
- Foundation Framework
apple의 foundation 프레임워크는 기본적인 자료구조, 스트링처리, 메모리 관리 및 성능 등의 기능을 제공한다. 또한 네트워크 요청과 응답, 데이터 저장 등의 기능도 제공한다. 해당프레임워크는 IOS내에 이미 포함이 되어있다.
Foundation Framework 설명
NSURLSession | Apple이 제공하는 Foundation 프레임워크 중 하나로, 네트워크 요청과 응답을 수행하기 위한 기능을 제공, 네트워크 요청이나 다운로드, 업로드 등의 네트워크 작업을 수행할 수 있게 해준다. |
NSCache | 애플이 제공하는 Foundation 프레임워크 중 하나로, 메모리 관리를 수행하기 위한 기능을 제공한다. 메모리 관리를 보다 쉽게 해주고, 메무리가 부족할 경우 더이상 사용하지 않는 것들을 자동으로 제거해주는 기능도 제공한다. |
728x90
'개발일기 > IOS' 카테고리의 다른 글
[Swift] - WebView(웹뷰) 사용할 때 인터넷 허용 (0) | 2024.03.15 |
---|---|
[Swift] - Lottie 애니메이션 실습 삽질정리(feat. sandbox) (0) | 2024.03.15 |
[Swift] - Notification 정리 (0) | 2024.03.15 |
[Swift] - UIGestureRecognizer (0) | 2024.03.15 |
[Swift] - View의 Cycle (0) | 2024.03.15 |