 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

 Apple 72

Lecture 1 Review: Developing iOS 11 Apps with Swift

Overview 이 과정에는 iOS 어플리케이션을 개발하는 방법에 관하여 학습합니다. 전제 조건으로 객체지향 프로그래밍과 친숙해야 합니다. 상업적인 개발 플랫폼에는 데이터베이스, 그래픽스, 멀티미디어, 멀티스레딩, 애니메이션, 네트워크와 같은 CS 컨셉이 사용됩니다. 아래쪽에 위치한 layer 의 경우 하드웨어에 가까우며 위쪽으로 올라갈수록 사용자에게 가까워진다. iOS는 BSD 변형 Unix 기반의 운영체제이다. Core OS 계층에서 발생하는 대다수의 작업은 C로 이뤄지며 이 강의에서는 다루지 않는다. Core Service 계층은 객체지향적으로 구현된 계층이다. 휴대폰의 위치, 방향, 파일시스템에서 파일에 접근할 때 이 계층을 사용한다. 본래 아이폰은 아이팟으로 부터 탄생했다. 오디오, 비디오, 이..

[Challenge] iOS 13 이후의 Scene 톱아보기!

Overview Scene 은 앱의 UI 인스턴스를 동시에 여러개 관리하며 적절한 UI 인스턴스로 resources 을 연결해준다. UIKit 은 앱의 UI의 각 인스턴스를 UIWindowScene 객체를 통해 관리해준다. 하나의 scene 은 window 와 view controller 를 포함하고 있으며 UI의 한 인스턴스를 보여주기 위해서이다. 각 scene 은 상응하는 UIWindowSceneDelegate 객체를 갖고있으며 UIKit 과 앱 사이에 상호작용을 조직하기 위해 사용할 수 있다. Scene 은 서로 병렬적으로 동작하며 같은 메모리 공간과 앱의 프로세스 공간을 공유한다. 결론적으로 하나의 앱은 여러개의 scene 을 가질 수 있으며 scene delegate 객체는 동시에 활성화된다. ..

[iOS - Laboratory] iOS 앱의 Life Cycle 추적해보기 (iOS 12와 이전 버전)

Overview Managing Your App's Life Cycle 아티클을 읽어보고자 한다. 앞서 포스팅한 글에서 앱이 실행된 후 종료되기까지 다양한 상태를 가질 수 수 있으머 상태 변환은 앱이 종료되거나, 전화가 오는 등의 interruption 이 발생하면 발생될 수 있다는 점을 알 수 있었다. 이 아티클에서는 앱이 foreground 혹은 background 상태에 있을때 시스템의 Notification 에 응답하고 다른 중요한 시스템 관련 이벤트가 있을 때 처리하는 내용이 언급된다. 앱의 현재 상태는 어느 시점에 할 수 있는 일과 할 수 없는 일에 관하여 결정해준다. 예를 들어 foreground 앱은 사용자의 주목을 받있으며 CPU 같은 시스템 자원을 할당받는데 우선순위를 갖는다. 반대로 ..

[iOS - Laboratory] iOS 앱의 실행 흐름 추적해보기

Overview UIKit은 앱에 필요한 다양한 핵심적인 객체를 제공한다. 그 중에는 System과 상호 작용하는 객체, 앱의 main 이벤트 loop에서 동작하는 객체, 컨텐츠를 화면에 보여주는 객체가 포함되어있다. 개발자는 위 객체들 다수를 그냥 사용하거나 약간의 수정을 거쳐 사용할 수 있다. 어느 객체를 수정할 수 있으며 언제 객체들을 수정할 수 있는지 아는 것은 앱을 구현함에 있어서 중요한 요소이다. UIKit app 의 구조는 Model-View-Controller (MVC) 디자인 패턴에 기반하고 있으며 위에서 언급된 객체들은 디자인 패턴에 맞춰서 목적에 알맞게 나뉘어지게 된다. 대표적으로 ViewController 와 app delegate 객체는 데이터 객체와 UIKit View 사이에서 ..

[Swift] 공식문서 씹어먹기: Automatic Reference Counting

Overview Swift는어플리케이션의 메모리 사용을 추적하고 관리하기 위해 Automatic Reference Counting (ARC) 를 사용한다. 대부분의 경우에서 ARC는 Swift에서 메모리 관리가 "Just Works" 한다는 의미이다. 따라서 개발자는 스스로 메모리 관리에 대해서 신경쓸 필요가 없다. ARC 는 클래스 인스턴스가 사용했던 메모리를 자동으로 해제시켜주며 이 과정은 해당 인스턴스가 불필요해지는 시점에서 이뤄진다. 하지만 일부 경우에서 ARC가 메모리를 관리하기위해 코드 사이의 관계에 대한 더 많은 정보를 더 요구하는 경우가 있다. 이 chapter 에서는 위과 같은 상황을 묘사하며 어떻게 ARC가 어플리케이션의 메모리를 관리하고 있는지 설명해준다. Swift 에서 ARC 를 ..

반응형