부스트코스 35

UIKit란?

본 게시글은 edwith 부스트코스 iOS 프로그래밍 강의를 듣고 작성한 게시글 입니다. UIKit란? UIKit은 iOS 애플리케이션의 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크이다. UIKit 프레임워크는 제스처 처리, 애니메이션, 그림 그리기, 이미지 처리, 텍스트 처리 등 사용자 이벤트 처리를 위한 클래스를 포함한다. 또한 테이블뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등 애플리케이션의 화면을 구성하는 요소를 포함한다. UIKit 클래스 중 UIResponder에서 파생된 클래스나 사용자 인터페이스에 관련된 클래스는 애플리케이션의 메인 스레드(혹은 메인 디스패치 큐)에서만 사용해야 한다. UIKit은 iOS와 tvOS 플랫폼에서 사용한다. UIKit 기능별 요소 사용자 인터페이..

👩🏻‍💻/iOS 2020.07.12

Cocoa Touch 프레임워크란?

본 게시글은 edwith 부스트코스 iOS 프로그래밍 강의를 듣고 작성한 게시글 입니다. 코코아 (API) 코코아는 애플 고유의 객체 지향 응용 프로그램 환경으로 맥 OS X의 운영 체제를 위한 것이다. 맥 OS X에는 크게 카본, 이식 가능 운영 체제 인터페이스 (BSD 환경을 위함), X11, 자바의 다섯 가지 API가 있다. 코코아 터치 아이폰, 아이패드 및 아이팟 터치용 API이다. 애플이 개발하여 개발자들에게 제공하고 있다. 다른 말로, 코코아 터치 계층(Cocoa Touch Layer)이라고도 한다. 그래픽 사용자 인터페이스를 구현하는, 이벤트-구동(event-driven) 기법을 쓰는 아이폰 및 아이팟 터치용 응용 소프트웨어는 보통 코코아 터치 계층에 기반하여 작성된다. 또한, 사용자 전화번..

👩🏻‍💻/iOS 2020.07.08

AVFoundation, Timer란?

본 게시글은 edwith 부스트코스 iOS 프로그래밍 강의를 듣고 작성한 게시글 입니다. AVFoundation Objective-C 및 Swift의 API가 포함 된 멀티미디어 프레임 워크로, Apple Darwin 기반 운영 체제 (iOS, macOS, tvOS 및 watchOS)에서 시간 기반 시청각 미디어 작업을 위한 고급 서비스를 제공한다. 주요 기능 미디어 재생 및 편집(QuickTime 동영상 및 MPEG-4 파일 재생/생성/편집, HLS 스트림 재생: 재생가능 파일 목록 링크) 디바이스 카메라와 마이크를 이용한 영상 녹화 및 사운드 녹음 시스템 사운드 제어 문자의 음성화 AVAudioPlayer Class 파일 또는 메모리에 있는 사운드 데이터를 재생하는 기능을 제공 파일 또는 메모리에 있..

👩🏻‍💻/iOS 2020.07.08

UIButton, UISlider, UILabel이란?

본 게시글은 edwith 부스트코스 iOS 프로그래밍 강의를 듣고 작성한 게시글 입니다. UIButton, UISlider, UILabel 애플리케이션 화면을 구현할 때 자주 사용하는 UI요소들이다. 1. UIButton 사용자의 상호작용(터치/탭 등의 이벤트)에 반응해 미리 지정된 코드를 실행하는 컨트롤 요소 버튼 생성의 3단계 버튼을 생성하고 버튼의 유형을 선택 버튼을 나타내기 위한 문자(타이틀)을 입력하거나, 이미지를 설정한 뒤 크기를 조정 버튼에 특정 이벤트가 발생할 때 작동할 하나 이상의 메서드를 연결 버튼과 메서드 연결하는 방법 addTarget(_:action:for:) 메서드 사용 인터페이스 빌더에서 연결 (@IBAction) 이때 버튼과 연결되는 메서드 형식은 아래와 같다. func do..

👩🏻‍💻/iOS 2020.07.07

Xcode와 github 연동하기

부스트코스로 진행하고 있는 iOS 첫 프로젝트를 github에 연결해보겠다. 우선, 프로젝트 상태는 시작했을 때 아래의 Create Git repository on my Mac 을 체크한 상태이다. 1. xcode에 github 계정 연동 Xcode - preferences - Accounts 에서 왼쪽 아래 + 버튼을 누른다. github 계정 이메일과 토큰을 입력한다. (토큰은 https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token 을 참고하여 만들었다.) 그 다음 오른쪽에 있는 Source Control - git 에서 계정 정보를 입력한다. 2. git commit and push Sour..

github 2020.07.07

IBOutlet, IBAction이란?

쉽게 말해, IBOutlet은 코드에 정의된 변수와 화면의 객체를 연결하는 것이고 IBAction은 Event가 일어난 경우 호출되는 Action을 정의해둔 것이다. IBOutlet이나 IBAction 태그를 통해 StoryBoard와의 연결고리를 담당한다. 변수나 함수를 정의할 때 앞에 @IBOutlet 또는 @IBAction 키워드를 작성해 StoryBoard에서 버튼이나 레이블같은 컴포넌트와 연결이 가능하다.

👩🏻‍💻/iOS 2020.06.26

에셋 카탈로그란?

본 게시글은 edwith 부스트코스 iOS 프로그래밍 강의를 듣고 작성한 게시글 입니다. 에셋 카탈로그란? Xcode에서 프로젝트를 처음 생성하면 Asstes.xcassets 이라는 폴더가 자동으로 생성되는데, 이 폴더에서 애플리케이션에 사용될 다양한 에셋을 관리하며, 이를 에셋 카탈로그라고 한다. 에셋 카탈로그는 에셋과 다양한 디바이스의 속성에 대한 파일의 연결을(mapping) 통해서 애플리케이션 리소스에 쉽게 접근할 수 있도록 도와준다. (리소스는 애플리케이션이 실행 중일 때 사용하는 이미지와 음악 파일 등이다.) 여기서 말하는 속성은 디바이스의 특징, 사이즈 클래스, 주문형 리소스, 특정 타입의 정보를 포함하고 있다. Asset: 에셋은 한 가지 타입의 관련된 속성과 파일들의 집합 에셋 이름: 에..

👩🏻‍💻/iOS 2020.06.26

부스트코스 - iOS 프로그래밍을 위한 스위프트 기초 강의 수료 및 후기

iOS 공부를 하기로 마음 먹고 첫걸음으로 듣기 시작한 첫 강의를 수강완료했다. 이 강의에서 권장한 수강 기간은 약 2달 정도인데 일주일 조금 넘게동안 조금은 빠르게 수료 해버렸다. 생각보다 강의 양도 많지 않았고, 기초이기 때문에 다른 언어에서 공부했던 문법이나 내용과 비슷한 부분이 많아서 어렵지 않게 공부할 수 있었다. 물론 스위프트에는 강의에서 들은 내용 뿐 아니라 훨~~씬 더 많은 기능들이 있겠지만, 프로젝트를 하며 공부를 하면 괜찮을 거라는 생각을 했다. 워낙 이론 위주로 공부를 하면 잘 안들어오는 타입이기도 하고, 학부때부터 느꼈지만 직접 구현하면서 스스로 찾고 공부하는게 기억에 더 잘 남는다. 동영상 강의 하나하나가 길지 않다. 오히려 짧다고 하면 매우 짧다. 3분~10분 사이로 이루어져 있..

잡담 2020.06.24

28. 고차 함수 - iOS 프로그래밍을 위한 스위프트 기초

- 고차 함수 고차 함수(Higher-order function)는 '다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수'를 뜻한다. 스위프트의 함수(클로저)는 일급시민(일급객체)이기 때문에 함수의 전달인자로 전달할 수 있으며, 함수의 결과값으로 반환할 수 있다. 이번 파트에서는 스위프트 표준라이브러리에서 제공하는 유용한 고차함수[map, filter, reduce]에 대해 알아본다. map, filter, reduce 함수는 스위프트 표준 라이브러리의 컨테이너 타입(Array, Set, Dictionary 등)에 구현되어 있다. - map map함수는 컨테이너 내부의 기존 데이터를 변형(transform)하여 새로운 컨테이너를 생성한다. - filter filter함수는 컨테이너 내부..

27. 오류 처리 - iOS 프로그래밍을 위한 스위프트 기초

- 오류 처리 스위프트에서 오류(Error)는 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현된다. Error 프로토콜은 사실상 요구사항이 없는 빈 프로토콜일 뿐이지만, 오류를 표현하기 위한 타입(주로 열거형)은 이 프로토콜을 채택한다. 스위프트의 열거형은 오류의 종류를 나타내기에 아주 적합한 기능이다. 연관 값을 통해 오류에 관한 부가 정보를 제공할 수도 있다. 이번 예제에는 프로그램 내에서 자판기를 작동시키려고 할 때 발생하는 오류상황을 구현해 보았다. - 오류 표현 Error 프로토콜과 (주로)열거형을 통해서 오류를 표현한다. 자판기 동작 오류의 종류를 표현한 VendingMachineError 열거형 - 함수에서 발생한 오류 던지기 자판기 동작 도중 발생한 오류를 던지는 메서드를 구현해본..