본문 바로가기

분류 전체보기

(54)
[iOS] 디자인 패턴 | MVC MVC 패턴 (Model - View - Controller) MVC 디자인 패턴은 애플리케이션의 객체를 모델, 뷰, 컨트롤러의 세 가지 역할 중 하나로 할당한다. 이 패턴은 앱 내에서 객체가 수행하는 역할 뿐만 아니라 객체가 서로 통신하는 방식을 정의한다. 세 유형의 객체는 각각 추상적인 경계에 의해 다른 객체와 구분되며, 그 경계를 넘어 다른 유형의 객체와 통신한다. 각각의 역할을 분리하여, 개발과 유지보수를 편리하게 한다. 모델 (Model) 프로그램이 하는 일 자체를 의미한다. 애플리케이션과 관련된 데이터를 캡슐화하고, 해당 데이터를 조작하고 처리하는 로직과 계산을 정의한다. ex. 게임 속 캐릭터의 정보, 주소록의 연락처 뷰 (View) 사용자와 상호작용하는 interface 애플리케이션 내에서..
[iOS] Foundation Foundation Framework Access essential data types, collections, and operating-system services to define the base layer of functionality for your app. 원시 데이터 타입(String, Int, Double), 컬렉션 타입(Array, Dictionary, Set) 및 운영체제 서비스를 사용해 애플리케이션의 기본적인 기능을 관리하는 프레임워크이다. Foundation 프레임워크는 데이터 타입, 날짜 및 시간 계산, 필터 및 정렬, 네트워킹 등의 기본 기능을 제공한다. Foundation 프레임워크에서 정의한 클래스, 프로토콜 및 데이터 타입은 iOS, macOS 등 모든 애플 SDK에서 사용된..
[iOS] UIKit 기초가 모자라도 너무 모자라 ~~ ㅠ UIKit Framework Construct and manage a graphical, event-driven user interface for your iOS or tvOS app. iOS 애플리케이션의 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크 UIKit은 Cocoa Touch Framework 에 포함되어 있다. UIKit UIKit은 iOS와 tvOS 플랫폼에서 사용한다. UIKit 프레임워크는 제스처 처리, 애니메이션, 그림 그리기, 이미지 및 텍스트 처리 등 사용자 이벤트 처리를 위한 클래스를 포함한다. 테이블 뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등 앱의 화면을 구성하는 요소 또한 포함한다. UIKit 클래스 중 UIRespond..
[iOS] 내비게이션 인터페이스 Navigation Interface 내비게이션 인터페이스 (Navigation Interface) 란? iOS에서 내비게이션 인터페이스는 주로 계층적 구조의 화면전환을 위해 사용되는 드릴 다운 인터페이스(drill-down interface)이다. 드릴 다운 인터페이스란 아래 그림과 같이 각 선택할 수 있는 항목에 대한 세부항목이 존재하는 인터페이스이다. 내비게이션 인터페이스는 내비게이션 컨트롤러를 통해 구현한다. 내비게이션 컨트롤러 (Navigation Controller) 내비게이션 컨트롤러는 컨테이너 뷰 컨트롤러로써, 내비게이션 스택을 사용하여 다른 뷰 컨트롤러를 관리한다. 내비게이션 스택에 담겨서 컨텐츠를 보여주는 뷰 컨트롤러들을 컨텐츠 뷰 컨트롤러라고 한다. 내비게이션 컨트롤러는 두 개의 뷰를..
[swift] 데이터 타입 | Any, AnyObject Any 스위프트의 모든 데이터 타입을 사용할 수 있다는 뜻 변수, 상수의 데이터 타입이 Any로 지정되어 있으면 이 변수, 상수에는 어떤 종류의 데이터 타입이든지 상관없이 할당할 수 있다. AnyObject Any보다는 한정된 의미로, 클래스의 인스턴스만 할당할 수 있다. 하지만 Any, AnyObject는 사용하지 않는 것을 추천한다. 타입에 엄격한 스위프트 특성 상 Any, AnyObject로 선언된 변수의 값을 가져다 쓰려면 매번 타입 확인 및 변환을 해줘야 한다. 또한 예기치 못한 오류가 발생할 위험이 증가한다. 그래서 타입은 웬만하면 명시하는 것이 좋습니다~ ~
[swift] 스위프트의 언어적 특성 2. 함수형 함수형 프로그래밍 주요 조작 단위가 클래스나 구조체의 인스턴스가 아니라, 함수이다. 장점 여러 가지 연산 처리 작업이 동시에 일어나는 프로그램을 만들기 쉽다. 멀티 코어 혹은 여러 개의 연산 프로세서를 사용하는 시스템에서 효율적인 프로그램을 만들기 쉽다. 상태변화에 따른 부작용에서 자유로워지므로 순수하게 기능 구현에 초점을 맞추어 설계할 수 있다. 특징 함수 자체를 일급 객체로 다룬다. 함수 자체가 전달인자(Argument)로 전달된다. return 값으로 함수를 사용할 수 있다. 아직 이해가 잘 안 되는구나 .. 조금 더 공부해보기
[swift] 스위프트의 언어적 특성 1. 객체지향 객체지향 프로그래밍 (Object-Oriented Programming) 객체지향 프로그래밍 : 프로그램을 여러 개의 독립된 단위인 객체의 모임으로 파악 각 객체는 서로 메시지를 주고 받고 데이터를 처리할 수 있다. 장점 프로그램을 유연하고 쉽게 변경할 수 있도록 작성할 수 있어서 대규모 소프트웨어 개발에 많이 사용된다. 소프트웨어 개발과 유지보수를 간편하게 할 수 있다. 직관적으로 코드를 분석할 수 있다. 클래스에 하나의 문제 해결을 위한 데이터와 메소드를 모아놓은 방식으로 응집력을 강화하고, 각 클래스가 독립적이도록 디자인해 결합력을 약화한다. 주요 특징 추상화 상속 다형성 동적 바인딩 객체 클래스의 인스턴스(실제로 메모리에 할당되어 동작하는 모양을 갖춘 것) 객체는 자신 고유의 속성이 있으며 클래스..
[iOS] Photos - Requesting changes to the Photo Library PhotoKit > PHPhotoLibrary PHPhotoLibrary A shared object that manages access and changes to the user’s shared photo library : 사용자의 사진 라이브러리에 대한 접근 및 변경을 관리하는 공유 객체 class PHPhotoLibrary : NSObject 사용자의 애플리케이션이 Photos 컨텐츠에 접근해도 될 지 허가 를 받거나, 확인 에셋 또는 컬렉션을 변경 ex. 새로운 에셋 삽입, 컬렉션의 구성 변경 library 에서 변경 사항이 생기면 전송되는 update 메시지를 등록 func performChanges(_ changeBlock: @escaping () -> Void, completionHandle..