 Apple Lover Developer & Artist

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

반응형

 Apple/iOS Dev Challenges 34

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 2부 - MVC 디자인 패러다임

Overview 어떤 클래스나 구조체를 생성할지 어떻게 결정하는가? 어떤 속성들을 가져야 하는가? 어느 객체가 다른 객체들의 함수를 호출해야 하는가? 소프트웨어 개발자들은 수십 년간 이 질문에 답할 수 있는 패러다임을 고민해 왔다. MVC MVC는 오브젝트에 Model View Controller로 책임을 분류하여 할당하고 오브젝트 간의 소통 방식을 정의하는데 도움을 준다. 다음의 그림은 3가지 타입의 오브젝트가 서로 어떤 관계를 맺어서 동작하는지에 관한 Apple 방식의 조감도를 보여준다. 구체적인 소통 메커니즘을 이해하기 위해 개별 타입들이 어떤 책임을 갖고 있는지 살펴본다. Models Model Objects Encapsulate Data and Basic Behaviors 모델은 아이템이나 개념..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 1부 - 조감도

Overview 앱의 설계 과정에서 과거의 유산과 현대의 개발 패러다임에 대한 필자 스타일의 퓨전 장르를 만들어보는 것이 목표이다. Fusion Fusion, 서로 다른 사물이 융합되는 것을 의미하는 명사이다. 우리는 주변에서 서로 다른 양식의 문화가 결합된 퓨전 요리 혹은 퓨전 음악을 찾아볼 수 있다. 기술의 세계에도 퓨전 양식은 존재한다. 예를 들어 애플의 적용 사례가 있다. 2012년 아이맥을 공개하며 컴퓨터의 보조기억장치인 HDD와 SSD를 macOS 상에서 논리적으로 묶어 하나의 저장장치로 사용하는 기능이었다. 사용자가 데이터의 저장 위치를 직접 제어하지 않도록 도와준 이 기능은 "Fusion Drive" 기술로 불렸다. iOS가 출시된 지 약 16년이 지나면서 소프트웨어 개발 도구는 진화해 왔..

[Challenge] Cocoa Pods

Overview 코코아팟은 Swift 및 Objective-C 코코아 프로젝트의 종속 관리자입니다. 87,000개 이상의 라이브러리가 있으며 3백만 개 이상의 앱에서 사용되고 있습니다. 코코아팟은 당신의 프로젝트를 우아하게 확장하는데 도움을 줄 수 있습니다. Install 코코아팟은 루비로 제작되었으며 맥OS에 기본적으로 내장되어있는 루비를 사용하여 설치할 수 있습니다. 기본 루비를 사용하는 것을 추천합니다. 기본 루비 설치를 사용하려면 gem을 설치할 때 관리자 권한을 사용해야 합니다. 코코아팟 사용해보기! 원하는 경로에 iOS 프로젝트를 생성합니다. 프로젝트를 생성한 디렉토리에서 pod init을 진행하면 Podfile 이 생성됩니다. 사용하고 싶은 의존성 라이브러이 이름과 버전을 다음과 같이 명시해..

[Challenge] GCD

Overview 스레드는 실행중인 코드의 흐름을 관리해준다. 과거의 컴퓨팅 환경에서는 모든 코드가 단일 스레드 환경에서 실행되었지만 iOS와 같은 현대적인 운영체제에서는 여러가지 스레드가 여러 코드의 흐름을 동시에 실행시킬 수 있도록 지원해준다. (더군다나 오늘날의 멀티 코어 프로세서를 사용하면 스레드는 서로 다른 코어에서 실행될 수 있으나, 현재 사용하고 있는 컴퓨터가 싱글 코어일지라도 CPU 가상화를 통해 마치 동시에 실행되는 것처럼 보이는 환상을 준다) iOS 에서는 모든 사용자 인터페이스와 연관된 코드를 실행시킬 때에 main 스레드를 활용한다. Grand Central Dispatch (GCD) Grand Central Dispatch (GCD)는 iOS에서 제공하는 기술이며 시스템 큐에서 di..

[Challenge] 간단한 네트워크 통신에 대해 탐구해보자!

Overview 휴대폰에 설치되어있는 어플리케이션을 살펴보면 모두 네트워크 통신을 사용한다. 네트워크 통신 중에는 여러가지 외적인 변수가 개입될 수 있다. 예를 들어 iOS 앱이 서버에 무언가를 요청했는데 서버가 조금 늦게 처리해서 응답해줄 수도 있고 네트워크 환경에 따라 처리된 결과가 늦게 아이폰으로 도착할 수도 있을 것이다. 데이터를 송수신하는 것을 처리하는동안 사용자가 어플리케이션에 아무런 조작도 할 수 없고 기다려야 한다면.... 한국인으로써 매우 유감스러운 상황이 발생하게 될 것이다. 오늘은 iOS 상에서 간단한 네트워크 통신을 다뤄보며 병행성을 다뤄보는 것이 목표이다. Basic 앱에서 네트워크 기능을 구현하기 전에 간단하게 네트워크가 동작하는 컨셉에 대하여 살펴볼 필요가 있다. HTTP롸 H..

반응형