iOS

[iOS 앱 프로그래밍] 회원가입 화면 구현 - 1. H.I.G
H.I.G H.I.G : Human Interface Guideline 말 그래도 human interface를 구성할 때 참고하는 가이드라인이다. 앱을 만들 때 여러 상황과 항목에 대해서 애플이 어느 정도 지침을 만들어 놓았기 때문에 개발자나 디자이너, 기획자 등등이 참고하여 개발하면 좋다. 애플의 이런 점 덕분에 개발하는 과정에 있어 보다 효율적이다. https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/ Themes - iOS - Human Interface Guidelines - Apple Developer iOS Design Themes As an app designer, you have the oppo..

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 6. MVC
프로그래밍 디자인 패턴이란 무엇인가? 디자인 패턴의 저명한 인사들이 내린 정의이다. • GoF "특정한 상황에서 일반적 설계문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명이다." • 라만(C. Larman) "숙련된 객체지향 개발자 및 기타 소프트웨어 개발자는 소프트웨어 개발의 가이드라인이 되는 일반적인 원칙들과 관용적인 해결책들의 레퍼토리(repertoire)를 구축한다. 패턴은 이러한 원칙들과 관용적 해결책들이 문제와 해결책을 기술하는 구조적인 형태로 체계화되고 명명된 것이다." 프로그래밍 디자인 패턴은 소프트웨어를 설계할 때 특정 상황에서 자주 사용하는 패턴을 정형화한 것이며, 좋은 소프트웨어 설계를 위한 개발자들의 경험적 산물이다. 프로그래밍 디자인 패턴의 특징 경험을 ..

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 5. iOS의 View 체계
iOS는 윈도우와 뷰를 사용해 콘텐츠를 표시한다. xcode에서 직관적으로 윈도우와 뷰를 볼 수 있는 방법이 있다. 뷰 계층(View hierarchy) 뷰 계층 구조와 서브뷰 관리 뷰는 자신의 콘텐츠를 보여주는 것과 더불어, 다른 뷰를 위한 컨테이너로써의 역할도 한다. 하나의 뷰가 다른 뷰를 포함할 때, 두 뷰 사이에 부모-자식 관계가 생성된다. 해당 관계에서는 자식뷰는 서브뷰(subview)로, 부모뷰는 슈퍼뷰(superview)로 불려진다. 부모-자식 관계 형성은 애플리케이션의 시각적 모습과 동작 모두에 영향을 미친다. 뷰 계층의 생성과 관리 OS 애플리케이션에서 뷰 계층을 만드는 방법에는 인터페이스 빌더를 이용하는 방법과 코드를 작성하는 방법이 있다. 코드작성 방식을 사용할 경우 서브뷰를 부모뷰에..

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 4. 오토 레이아웃 (1)
오토 레이아웃이란? 이전의 아이폰 화면의 크기는 동일했다. 하지만 아이폰의 종류가 많아짐에 따라 화면의 크기도 다양해졌고, 어떤 화면에서라도 사이즈에 구애받지 않고 동일한 화면을 띄워야 했다. 이를 위해 오토 레이아웃이라는 개념을 이용한다. 특징 오토레이아웃은 뷰의 제약 사항을 바탕으로 뷰 체계 내의 모든 뷰의 크기와 위치를 동적으로 계산(->상대적)한다. 애플리케이션을 사용할 때 발생하는 외부 변경과 내부 변경에 동적으로 반응하는 사용자 인터페이스를 가능하게 함. 외부 변경(External Changes) 외부 변경은 슈퍼뷰의 크기나 모양이 변경될 때 발생. 각각의 변화와 함께, 사용 가능한 공간을 가장 잘 사용할 수 있도록 뷰 체계의 레이아웃을 업데이트해줘야 한다. 외부 변경이 발생하는 경우 사용자가..

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 3. Foundation과 UIKit 그리고 Cocoa Touch
Cocoa Touch Layer (코코아 터치 계층) -iOS 애플리케이션 개발 환경 토대 및 주축 - 코코아 터치의 개념과 핵심을 이해하는 일은 iOS 애플리케이션 개발할 때 큰 그림을 그릴 수 있는 바탕이 되는 중요한 일! - 애플리케이션의 다양한 기능 구현에 필요한 여러 프레임워크를 포함하는 최상위 프레임워크 계층 - '코코아' : Objective-C 런타임 기반, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용 - 코코아 계층은 macOS 애플리케이션 제작에 사용 - '코코아 터치' or '코코아' : iOS or macOS의 전반적인 기능을 활용해 애플리케이션 제작 시 사용하는 프레임워크 계층 - '코코아 터치' : 핵심 프레임워크인 UIKit, Foundation 포함 ..
[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 2. 애플리케이션 만들기 (2)
AVFoundation Apple 플랫폼에서 사운드 및 영상 미디어의 처리, 제어, 가져오기 및 내보내기 등 광범위한 기능을 제공하는 프레임워크 - 주요 기능 미디어 재생 및 편집(QuickTime 동영상 및 MPEG-4 파일 재생/생성/편집, HLS 스트림 재생) 디바이스 카메라와 마이크를 이용한 영상 녹화 및 사운드 녹음 시스템 사운드 제어 문자의 음성화 - AVAudioPlayer Class AVAudioPlayer 클래스는 파일 또는 메모리에 있는 사운드 데이터를 재생하는 기능을 제공합니다. - AVAudioPlayer 주요 기능 파일 또는 메모리에 있는 사운드 재생(네트워크에 있는 사운드 파일은 재생 불가) 파일 재생 시간 길이의 제한없이 사운드 재생 여러 개 사운드 파일 동시 재생 사운드의 재..

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 애플리케이션 만들기 (1)
에셋 카탈로그 (Asset Catalog) Xcode에서 프로젝트를 처음 생성하면 Assets.xcassets라는 폴더가 자동 생성된다. 이 폴더에서 애플리케이션에서 쓰일 다양한 에셋을 관리하며, 이를 에셋 카탈로그라고 한다. 에셋 카탈로그는 에셋과 다양한 디바이스의 속성에 대한 파일의 연결을(mapping) 통해서 애플리케이션 리소스(애플리케이션이 실행 중일 때 사용하는 이미지와 음악 파일 등)에 쉽게 접근할 수 있도록 도와준다. 여기서 말하는 속성은 디바이스의 특징, 사이즈 클래스, 주문형 리소스, 특정 타입의 정보를 포함하고 있다. 에셋 카탈로그의 3가지 타입 Folders : 에셋 카탈로그 폴더는 다른 그룹 폴더나 에셋 폴더를 포함할 수 있다. (폴더 안에 폴더 가능) 파일시스템의 폴더 이름은 대..
[iOS 프로그래밍을 위한 스위프트 기초] Ch3. 오류처리 및 고차함수 - 29. 고차함수
고차 함수 (Higher-order function) - 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수 - 스위프트의 함수(클로저)는 일급시민(일급객체)이기 때문에 함수의 전달인자로 전달할 수 있으며, 함수의 결과값으로 반환가능 - 스위프트 표준라이브러리에서 제공하는 유용한 고차함수[map, filter, reduce]에 대해 알아볼 예정 - map, filter, reduce 함수는 스위프트 표준 라이브러리의 컨테이너 타입(Array, Set, Dictionary 등)에 구현되어 있음 map map 함수는 컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너 생성 let numbers: [Int] = [0, 1, 2, 3, 4] var doubledNumbers: [Int] v..